Mágikus idézi szűrésére speciális szimbólumok bevitele php
Jellemzői SQL-lekérdezések biztonságának biztosítása keretében olyan funkciók, mint a PHP magic quotes, speciális karakterek automatikusan bekerülnek pajzs. Opciók ki mágikus idézet.
„Az adatok között kell tárolni az adatbázisban” - véleményem szerint az egyik nyilvánvaló programozási elveket. Miért újra feltalálni a kereket, és a fájdalom a szülés, ha az intelligens emberek gondoskodott, hogy nem vagyunk feszült? Mi csak vigyázni a biztonsági SQL-lekérdezés, mint például: szűrés speciális karaktereket.
Mivel ez lesz körülbelül egy adatbázist, a MySQL, a legmegfelelőbb és kényelmes a használata mysql_real_escape_string () függvényt. amely bemutatja a árnyékolás vegyületet a speciális karakterek kódoló. például:
$ Link = mysql_connect ( 'localhost', 'root', 'jelszó') or die (mysql_error ());
$ Query = sprintf ( "SELECT * FROM felhasználók WHERE user = '% s' AND password = '% s'",
mysql_real_escape_string ($ user)
mysql_real_escape_string ($ password));
Különleges karakterek változókat $ user és a $ jelszót megszökött, és helyette a query string rendelt változó $ query.
Mindez azonban lyrics. A kérdés az, hogy sokkal érdekesebb, amikor a funkciók, mint például a PHP magic quotes.
Mágikus idézetek (. Angol magic idézetek) - kötelező szűrés a bejövő adatokat, az értékeket a globális változók: $ _REQUEST. $ _GET. $ _POST és $ _COOKIE. biztonsága érdekében a dolgozó SQL-lekérdezések.
Ezek a biztonsági tűnik, hogy meglehetősen kétséges. Ez a funkció a PHP tekinthető elavult és 6. változata is el fog tűnni. Ugyanakkor meg kell vizsgálni ezt a meglehetősen gyakori jellemzője régebbi verziói PHP, és előzetes tisztítási értékeinek globális változók extra perjel (\), ugyanazt a funkciót stripslashes (). példa
$ User = a $ _POST [ 'user'];
$ Password = a $ _POST [ 'password'];
if (get_magic_quotes_gpc ()) $ user = stripslashes ($ user);
$ Password = stripslashes ($ password);
>
Mint látható, ez a lehetőség nagyon kényelmetlen. Természetesen a felvétel a magic quotes. helyettesítheti az értéke a változók közvetlenül az SQL-lekérdezést. Ahhoz azonban, hogy jelenítse meg az értéket ugyanabban a formában kellene ellenőrizni, és ha szükséges, tisztítsa meg a vonalat.
A legegyszerűbb és legjobb megoldás itt lehet, hogy tiltsa magic idézetek. Ezt meg lehet tenni az alábbi módokon:
- A php.ini fájlt rendelni egy változó értékét Off magic_quotes_gpc. például:
Ha egyik lehetőség sem nem tetszik, akkor a „mankó”, amelyek lehetővé teszik, ha szükséges, tisztítsa meg a releváns változók. például:
if (get_magic_quotes_gpc ()) $ _REQUEST = array_map (stripslashes ', $ _REQUEST);
$ _GET = array_map ( 'stripslashes', $ _GET);
$ _POST = array_map ( 'stripslashes', $ _POST);
$ _COOKIE = array_map ( 'stripslashes', $ _COOKIE);
>
Szépségszalonok a városban a SPA-központban. Titkok érdekel.