Suojaa PHP-koodi

  • On tärkeää varmistaa käyttäjien (lomakkeiden ja URL-osoitteiden jne.) Turvalliset tiedot käyttöjärjestelmän palvelimen ja http-palvelimen lisäksi pääasiassa web-hyökkäyksen vuoksi.
  • Voit suojata php-koodisi kolmella luokalla:

Tietojen käyttäjien validointi

Kun sivusto tarjoaa lomakkeita, joiden avulla käyttäjät voivat kaapata ja lähettää sisältöä, tämä ei riitä ilmoittamaan merkintöjen muotoa (sähköpostiosoite, puhelinnumero, tuotteiden määrä) Palvelin on myös seurattava (esim. PHP), jos tiedot ovat tavanomainen odotuksemme mukaan. Muuntamalla kaikki käyttäjän lähettämät tiedot:

Vahvista URL-osoitteiden tai lomakkeiden tiedot

Lähes kaikki vastaanotetut tiedot ovat URL-osoitteesta tai lomakkeista, jotka webmaster on asettanut. Lähes kaikki URL-osoitteen parametrit määrittävät alla olevan:

/index.php?rub=25

Tätä parametria ei kuitenkaan pitäisi muuttaa. Tämä on kuitenkin mahdollista seuraavasti:

 /index.php?rub=0 /index.php?rub= /index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+or+1 
  • On tärkeää tarkistaa, odotetaanko URL-osoitteen tai lomakkeen kautta vastaanotettua muotoa riippumatta tietotyypeistä.
  • Voit käyttää toimintoa filter_input () tarkistaaksesi saman.
  • Esimerkiksi, jos olet saanut sähköpostiviestin sähköpostin muodossa olevalta käyttäjältä, joka on muotoilutiedostossa. Voit palauttaa sen seuraavasti:

 $ email = filter_input (INPUT_POST, sähköposti, FILTER_VALIDATE_EMAIL); jos ($ email) {// Sähköpostiosoite on todellakin sähköpostiosoitteen muoto} 

Tämä toiminto voi suodattaa monia asioita: IP-osoite, URL-osoite jne. Ennen URL-osoitteen lähettämistä prosessina htmlentities (): lla voi olla muutoksia, kuten koodausmerkkijono.

  • Useita suodattimia voidaan yhdistää käyttämällä | | .
  • Vahvista IP-osoite vain IPv4-muodossa:

$ ip = filter_input (INPUT_GET, 'ip', FILTER_VALIDATE_IP | FILTER_FLAG_IPV4);

Napsauta seuraavaa linkkiä suodattimille:

//www.php.net/filter

Ohita URL-osoitteen sisältö

Kun käyttäjän syöttämä sisältö näkyy näytössä, se sisältää HTML- tai JavaScript-koodin, joka kuitenkin tekee suojan pakolliseksi.

Jos sisältö näytetään html: ssä, sinun on HTMLen koodattava asetus muuntaaksesi kaikki merkit vastaavilla HTML-yksiköillä. Alla on php-toiminto tämän prosessin automatisoimiseksi:

echo htmlentities ($ _ REQUEST ['content']);

Jos sisältö on näytettävä URL-osoitteessa, sinun on pakotettava sisältö.

PHP: llä on kaksi tehtävää tämän koodauksen suorittamiseksi: urlencode () ja rawurlencode (). Näiden kahden funktion välinen ero on sellaisen alueen koodaus, joka ensimmäisessä funktiossa antaa ja antaa% 20 ja "+" toisessa.

 echo '//www.website?valeur='.urlencode($_REQUEST [' value ']); 

Jos sisältö on tallennettava tietokantaan, on välttämätöntä välttää kaikki merkit, joilla on tietty rooli tietokantapalvelimessa. PHP: llä ja MySQL: llä funktio mysql_escape_string () tekee kaikista mahdollisesti haitallisista merkkijonoista merkkijonoina parametrina.

 $ query = 'SELECT id FROM matable WHERE user = "'. mysql_escape_string ($ _ REQUEST ['user']). '"'; 

Huomaa, että palvelin on konfiguroitu PHP-optiolla magic_quotes, käyttäjien lähettämät tiedot suojataan automaattisesti taaksepäin (backslash). Siksi ennen kuin suojaat mysql_escape_stringin, sinun pitäisi peruuttaa tämä perussuoja:

 $ query = 'SELECT id FROM mytable WHERE user = "'. stripslashes (mysql_escape_string ($ _ REQUEST ['user'])). '"'; 
Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä