Siirry pääsisältöön

Production Hardening

Avaa ChatGPT:ssä

webforJ:n palvelinohjattu malli ja sisäänrakennetut suojausmekanismit yleisiä uhkia vastaan kattavat paljon, mutta turvallinen käyttöönotto riippuu silti siitä, kuinka sovellusta käytetään. Alla olevat vaiheet täydentävät kuvaa.

Salaa jokainen yhteys

Aja tuotantoliikenne vain HTTPS:n yli. Lopeta TLS asti säiliössä, väylässä tai kuormantasaimessa sovelluksen edessä, ja ohjaa kaikki tavallisella HTTP:llä tehdyt pyynnöt niiden turvallisiin vastineisiin, jotta käyttäjätunnukset ja istuntotunnukset eivät koskaan kulje salattomana.

Älä luota mihinkään selaimesta

Manipuloitu asiakas voi lähettää mitä tahansa. Tarkista jokainen arvo, jonka koodisi vastaanottaa, jopa arvot, joita käyttöliittymäsi on jo rajoittanut, ennen kuin tallennat tai toimit niiden perusteella. Asiakas/Palvelin vuorovaikutus -artikkeli selittää, miksi palvelin on ainoa paikka, jossa sääntö voi todella pitää.

webforJ:n tietosidonta ja validointi auttaa tässä: koska sidonta tapahtuu Javassa palvelimella, mallit, joihin liität rajoituksia, mukaan lukien Jakarta validointi, pannaan täytäntöön palvelinpuolella eikä vain selaimessa. Käsittele tätä eheytesi kerroksena, ei puolustuksena injektio- tai merkintähyökkäyksiä vastaan, jotka tarvitsevat silti käsittelyn, joka on kuvattu Yleisissä uhissa.

Poistettu ja piilotettu ei ole turvallisuutta

setEnabled(false) ja setVisible(false) ovat käyttöliittymän vihjeitä, eivät pääsynvalvontaa. webforJ peilaa ohjaimen poistettua tilaa asiakkaalle, mutta se ei estä manipuloitua asiakasta palauttamasta ohjainta takaisin toimintakuntoon ja aktivoimasta sen toimintoa. Älä koskaan luota poistettuun tai piilotettuun ohjaimeen estämään jotain tapahtumasta.

Aseta todellinen sääntö palvelinpuolen käsittelijään: varmista, että käyttäjällä on lupa ja ennakkoedellytykset täyttyvät ennen toiminnan suorittamista, aivan kuten tekisit, jos ohjain olisi ollut koko ajan käytössä. Poistettu tila ohjaa rehellisiä käyttäjiä; palvelinpuolen sääntö pysäyttää epärehelliset.

Rajoita näkymiäsi

Rajoita näkymiä reittiturvalla, jotta jokainen niistä vaatii oikean autentikoinnin ja roolit. Anna ihmisille kapein pääsy, joka mahdollistaa työn tekemisen, ja suosii oletusarvoista turvallista lähestymistapaa, jossa merkitsemätön reitti vaatii silti kirjautumisen.

Pidä salaisuudet ulkopuolisina

Käyttäjätunnukset, avaimet ja tunnukset eivät kuulu koodiin tai varastoon. Ota ne sijainnista tai ulkoisesta lähteestä, kuten on esitetty Salaisuuksien hallinnassa.

Pysy ajan tasalla riippuvuuksista

Kirjastot, joita käytät, ovat suurempi riski kuin oma koodisi. Seuraa tiedotteita, päivitä webforJ ja muut riippuvuudet säännöllisesti, ja kun korjattu versio siirtyy siirtokirjastosta ennen kirjastoa, joka ottaa sen käyttöön, valitse korjattu versio pom.xml-tiedostossasi.

Epäonnistu hiljaa

Älä anna pinojäljitteiden, tiedostopolkujen tai sisäisten tunnisteiden näkyä loppukäyttäjille. Tallenna yksityiskohdat palvelinlokisi, ja esitä käyttöliittymässä pelkkä, yleinen viesti. Rekisteröi mukautettu käsittelijä webforJ:n virheiden käsittelyyn, jotta käsittelemättömät poikkeukset tuottavat hallitun sivun raakojen diagnoosien sijaan.

Paljasta vastuullisesti

Löysitkö mahdollisen virheen webforJ:stä? Ilmoita siitä yksityisesti GitHubin yksityisen haavoittuvuuden raportoinnin kautta sen sijaan, että avaat julkisen ongelman tai vetopyynnön, jotta korjaus voidaan saada käyttöön ennen kuin yksityiskohdat ovat tiedossa.