Saugokite savo PHP kodą

  • Labai svarbu užtikrinti, kad naudotojai (formos ir URL) būtų saugūs, išskyrus OS serverį ir http serverį, daugiausia dėl interneto atakos.
  • Yra 3 kategorijos, kad apsaugotumėte php kodą:

Duomenų naudotojų patvirtinimas

Kai svetainėje pateikiamos formos, leidžiančios vartotojams užfiksuoti ir siųsti turinį, to nepakanka norint nurodyti įrašų formatą (el. Pašto adresas, telefono numeris, produktų kiekis). įprastas mūsų lūkesčiams. Atsižvelgdami į visus skaičius, konvertuokite visus naudotojo atsiųstus duomenis:

Patvirtinkite duomenis iš URL arba formų

Beveik visi gauti duomenys yra iš URL ar formų, kurias sukūrė žiniatinklio valdytojas. Beveik visi URL rodymo parametrai, kaip nurodyta toliau:

/index.php?rub=25

Tačiau šis parametras neturėtų būti pakeistas. Tačiau tai įmanoma, kaip nurodyta toliau:

 /index.php?rub=0 /index.php?rub= /index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+or+1 
  • Labai svarbu patikrinti, ar iš URL ar formos gautas formatas yra būtinas, nepriklausomai nuo duomenų tipų.
  • Jei norite patikrinti tą patį, galite naudoti funkciją filter_input ().
  • Pavyzdžiui, jei gavote el. Laišką iš naudotojo iš formato įrašo su lauko pavadinimu kaip el. Jūs galite susigrąžinti tą:

 $ email = filter_input (INPUT_POST, „el. paštas“, FILTER_VALIDATE_EMAIL); jei ($ email) {// El. pašto adreso įrašymas iš tikrųjų yra pašto adreso formatas} 

Ši funkcija gali filtruoti daugelį dalykų: IP adresas, URL ir kt. Prieš siunčiant URL kaip procesą, gali būti modifikacijų, pvz., Kodavimo eilutės ().

  • Naudojant „|“ galima sujungti kelis filtrus. .
  • Jei norite patvirtinti IP adresą tik IP formatu:

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

Spustelėkite toliau pateiktą filtrų nuorodą:

//www.php.net/filter

Praleiskite rodomą URL turinį

Kai ekrane rodomas vartotojo įvestas turinys, jis turi HTML arba „JavaScript“ kodą, kuris apsaugo nuo privalomos apsaugos.

Jei turinys bus rodomas html: turite HTML koduoti nustatymą, kad konvertuoti visus simbolius lygiaverčiais HTML subjektais. Žemiau yra php funkcija automatizuoti šį procesą:

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

Jei turinys turėtų būti rodomas URL: turėtumėte koduoti turinį.

PHP turi dvi funkcijas: koduoti (urlencode) ir rawurlencode (). Skirtumas tarp šių dviejų funkcijų yra tos srities kodavimas, kuris pirmoje funkcijoje suteikia ir suteikia% 20 ir „+“ antroje.

 echo '//www.website?valeur='.urlencode($_REQUEST [' reikšmė ']); 

Jei turinys turėtų būti saugomas duomenų bazėje: būtina išeiti iš visų simbolių, turinčių konkretų vaidmenį naudojamame duomenų bazės serveryje. PHP ir MySQL funkcijose mysql_escape_string () visi potencialiai žalingi simboliai eilutėje perduodami kaip parametras.

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

Atkreipkite dėmesį, kad serveris yra sukonfigūruotas naudojant PHP parinktį magic_quotes, naudotojų perduodami duomenys automatiškai apsaugomi backslashes (backslash). Taigi, prieš apsaugodami „ mysql_escape_string“, turėtumėte „atšaukti“ šią pagrindinę apsaugą:

 $ query = 'SELECT id FROM Mytable WHERE user = ". stripslashes (mysql_escape_string ($ _ REQUEST [' user '])).'" '; 
Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai