ПредишенСледващото

Характеристики на SQL-заявки, които да гарантират сигурността в контекста на такива характеристики като магическите кавички PHP, специални знаци, автоматично въвеждане на щит. Опции почивни магия цитат.

"Данните трябва да се съхраняват в база данни" - по мое мнение, е един от принципите очевидните програмиране. Защо изобретяваме колелото, и родилни болки, ако умните хора са се погрижили, че ние не се напрегна? Ние можем да се грижим само за сигурността на SQL-заявка, като: скрининг специални знаци.

Тъй като това ще бъде за една база данни, като MySQL, на най-подходящия и удобен за използване mysql_real_escape_string () функцията. който произвежда съединението с екраниране на специални символи, кодиращи. например:

$ Link = mysql_connect ( "Localhost", "корен", "парола") или да умрат (mysql_error ());
$ Query = sprintf ( "SELECT * FROM потребители, когато потребител = '% S' и парола = '% S'",
mysql_real_escape_string ($ потребител),
mysql_real_escape_string ($ парола));

Специални знаци променливи $ потребителски и $ парола ще бъде избягали и заместени в низа на заявката присвоява на променливата заявката за $.

Въпреки това, всички тези текстове. Въпросът става все по-интересно, когато става въпрос за функции, като например PHP магически кавички.

Магически кавички - задължителна проверка на входящите данни, стойностите на глобални променливи (на английски език магически кавички.): $ _REQUEST. $ _GET. $ _POST и $ _COOKIE. да се гарантира безопасността на работа с SQL-заявки.

Такава сигурност изглежда, че е доста съмнително. Тази функция на PHP е се счита за остарял и 6-ти версия на него ще бъдат унищожени. В същото време, е необходимо да се помисли за това доста често е част от по-старите версии на PHP и направи предварителна почистване на стойности на глобалните променливи на допълнително наклонена черта (\), като се използва една и съща функция stripslashes (). пример

$ Потребителят = $ _POST [ 'потребител'];
$ Парола = $ _POST [ 'парола'];
ако (get_magic_quotes_gpc ()) $ потребителското = stripslashes ($ потребител);
$ Парола = stripslashes ($ парола);
>

Както можете да видите, този вариант е доста неудобно. Разбира се, с включването на магическите кавички. можете да заместите стойността на променливите директно в SQL-заявка. Въпреки това, за да се покаже стойността в същата форма, ще трябва да бъдат проверени и ако е необходимо, почистете линия.

Най-лесният и най-добрият вариант тук може да бъде в състояние да деактивирате магически кавички. Това може да стане по следните начини:

  1. В php.ini файл, за да зададете променлива стойност Off magic_quotes_gpc. например:
magic_quotes_gpc = Изключено
  • Файлът .htaccess трябва да съдържа низа: php_flag magic_quotes_gpc Off
  • Говори се, че там е функция set_magic_quotes_gpc (). Документацията на PHP не е описан, а аз не работя. Най-вероятно това е фалшив.
  • Ако нито един от вариантите не е за вас, можете да използвате "патерици", които дават възможност, ако е необходимо, почистете съответните променливи. например:

    ако (get_magic_quotes_gpc ()) $ _REQUEST = array_map ( "stripslashes", $ _REQUEST);
    $ _GET = array_map ( "stripslashes", $ _GET);
    $ _POST = array_map ( "stripslashes", $ _POST);
    $ _COOKIE = array_map ( "stripslashes", $ _COOKIE);
    >

    Салони за красота в своя град на SPA-център. Тайните пука.

    Подкрепете проекта - споделете линка, благодаря!