Zabezpečte svoj PHP kód

  • Je dôležité zabezpečiť bezpečné údaje od používateľov (formuláre a adresy URL) okrem serverov operačného systému a http servera hlavne z dôvodu webového útoku.
  • Na zaistenie vášho php kódu existujú 3 kategórie:

Overenie používateľov údajov

Ak stránka ponúka formuláre, ktoré umožňujú používateľom zachytiť a odoslať obsah, nepostačuje na označenie formátu záznamov (e-mailová adresa, telefónne číslo, množstvo produktov). naše očakávania. Berúc do úvahy celé čísla, konvertujte všetky údaje odoslané užívateľom:

Overte údaje z adresy URL alebo formulárov

Takmer všetky prijaté údaje pochádzajú z adresy URL alebo formulárov, ktoré nastavil správca webu. Takmer všetky parametre zobrazenia adresy URL udávajú:

/index.php?rub=25

Tento parameter by sa však nemal upravovať. Toto je však možné nasledovne:

 /index.php?rub=0 /index.php?rub= /index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+or+1 
  • Je dôležité zistiť, či sa formát prijatý prostredníctvom adresy URL alebo formulára očakáva bez ohľadu na typ údajov.
  • Na overenie môžete použiť funkciu filter_input ().
  • Ak ste napríklad dostali e-mail od používateľa vo formáte príspevku s názvom poľa ako e-mailom. Môžete ho obnoviť nasledovne:

 $ email = filter_input (INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); if ($ email) {// Zadanie e-mailovej adresy je skutočne formát poštovej adresy} 

Táto funkcia môže filtrovať mnoho vecí: IP adresu, URL atď. Pred odoslaním cez URL ako proces pomocou htmlentities () môžu existovať modifikácie ako kódovací reťazec.

  • Niekoľko filtrov možno kombinovať pomocou "|",
  • Overenie adresy IP iba ​​vo formáte Ipv4:

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

Kliknite na nasledujúci odkaz pre filtre:

//www.php.net/filter

Preskočiť zobrazený obsah adresy URL

Keď sa na obrazovke zobrazí obsah zadaný používateľom, obsahuje kód HTML alebo JavaScript, ktorý však vyžaduje ochranu.

Ak sa má obsah zobrazovať v html: musíte HTMLencode nastaviť, aby sa všetky znaky v ekvivalentných HTML entitách konvertovali. Nižšie je funkcia php na automatizáciu tohto procesu:

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

Ak by sa obsah mal zobrazovať v adrese URL: musíte obsah urlen kódovať.

PHP má dve funkcie, ako to urobiť: urlencode () a rawurlencode (). Rozdiel medzi týmito dvoma funkciami je kódovanie oblasti, ktorá v prvej funkcii udáva a poskytuje% 20 a "+" v druhom.

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

Ak by obsah mal byť uložený v databáze: je potrebné uniknúť všetkým použitým znakom v použitom databázovom serveri. Pre PHP a MySQL funkcia mysql_escape_string () robí všetky potenciálne škodlivé znaky v reťazci ako parameter.

 $ query = 'SELECT id Z matného WHERE user = "'. mysql_escape_string ($ _ REQUEST ['user']). '"'; 

Všimnite si, že server je nakonfigurovaný s voľbou PHP magic_quotes, údaje prenášané užívateľmi sú automaticky chránené spätnými lomkami (spätné lomky). Pred ochranou mysql_escape_string by ste teda mali túto základnú ochranu zrušiť :

 $ query = 'VYBRAŤ id FROM mytable WHERE user = "'. stripslashes (mysql_escape_string ($ _ REQUEST ['user'])). '"'; 
Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy