Tíz szabály a biztonságos kód írására php, php
A "Ten Security Checks for PHP" cikkek röviden bemutatják a PHP programozók 10 leggyakoribb hibáját, ami problémákat okoz a szkriptek biztonságával kapcsolatban.
Kerülje el a felhasználói adatok alapján generált változók használatát a beillesztési függvényben (beleértve, igényeljen) vagy hozzáférjen a fájlhoz (readfile, fopen, file). Például: include ($ lib_dir. "Functions.inc"); tartalmazzák ($ oldal); a $ lib_dir és a $ page változókat előzetesen ellenőrizni kell a tiltott karakterek jelenlétére vagy az érvényes értékek előre meghatározott csoportjára:
Meg kell megvédeni a veszélyes karaktereket ( „és”) a bevont változók SQL zaprosah.Naprimer, a támadó képes továbbítani egy változó típusát „jelszó = a% 27 + vagy + 1% 3Di% 271”, amely lehet használni, mint egy lekérdezést SQL „Password =„a 'vagy 1 =' 1 '"Megoldás: a magic_quotes_gpc fájlba a php.ini fájlban vagy a escape varianciákon keresztül addslashes ();
Soha nem kell megbíznia a globális változókban, ha a register_globals mód engedélyezve van a php.ini-ben, a támadó felülbírálhatja egy globális változó értékét. Használd az asszociatív tömbök $ HTTP_GET_VARS és $ HTTP_POST_VARS register_globals kikapcsol, és az elején a script kifejezetten inicializálása minden globális változó.
Megkeresi a fájlt injektált csak is_uploaded_file (), illetve a move_uploaded_file (), de nem bíznak a globális változót, az elérési utat a letöltött fájlt, amelynek értéke a támadó hamis.
Használja a htmlspecialchars (), htmlentities () függvényeket a felhasználó által kapott adatokban lévő HTML-címkék elrejtéséhez.
Helyezzen fájlokat az állományrendszeren kívül az interneten keresztül (alacsonyabb szinten, mint a htdocs vagy a "root"), vagy védje a könyvtárakat a .htaccess segítségével.
A mod_php a safe_mode módban fut.
Ellenőrizze a tiltott karakterek jelenlétét az eval, preg_replace, exec, passthru, system, popen, `` fájlokban használt változókban.
Ha nem mod_php, a CGI verzió php.cgi nem szabad elfelejteni, hogy a php.cgi érheti el abban a könyvtárban védett .htaccess, mivel a hozzáférés korlátozott ebben az esetben csak a közvetlenül kéri, de nem kéri CGI-n keresztül script php.cgi.