Как грамотно защититься от SQL injection

123
SE
На сайте с 11.02.2007
Offline
13
#11
Timen:
в url строке, например site.com/?a=1&b=2. ?

а если вот так ..a=1data&b=2data где дата может быть и числом и буквами

Обмен ссылками Авто-Мото, Пишу PHP скрипты любой сложности, Продажа Запчастей на Японские Авто и Спецтехнику
scazy
На сайте с 03.10.2006
Offline
17
#12

проверять тип значений, например is_int($_GET[id])

пользоваться htmlspecialchars, например htmlspecialchars($_POST[text])

пользоваться ModRewrite - перезаписывать запросы например RewriteRule ^(\d+).html$ ./index.php?id=$1

strip_tags - удалять все тэги из вводимого пользователем текста

Социальный сервис нового поколения Dropp (http://dropp.ru)
SE
На сайте с 11.02.2007
Offline
13
#13
Yukko:
http://phpfaq.ru/slashes

Скажите а обязательно фильтровать ( и ) ?

Y
На сайте с 02.01.2006
Offline
138
#14

S.E.O, прочитайте документацию ;) ФИЛЬТРОВАТЬ НИЧЕГО НЕ НАДО!

SE
На сайте с 11.02.2007
Offline
13
#15

Ну яно.....а кто обьяснить мне такую функцию в Mysql char() ??

Y
На сайте с 02.01.2006
Offline
138
#16
I
На сайте с 11.01.2007
Offline
16
Irh
#17

Спасибо за поправки.

Почему же, для всех скриптов, использующих что-нибудь из квори_стринг со связью с бд заглушка окажется полезной. Это первичный фильтр, перед анализом самого query к базе. Если вредные запросы срезаются из квори заранее - чем это плохо?

Можно использовать mysql_real_escape_string($парметр) :)

Еще можно использовать sql_placeholder'ы, если большое желание имеется.

dkameleon
На сайте с 09.12.2005
Offline
386
#18
Irh:
Можно использовать mysql_real_escape_string($парметр)

не можно, а НУЖНО! практически единственно правильное решение.

А все эти ваши .... даже не знаю как назвать, на первой странице - банально стыдно за таких программистов.

Дизайн интерьера (http://balabukha.com/)
Колпин
На сайте с 28.09.2006
Offline
126
#19

Говорят, что если скрипт распространённый, то в качестве защиты от инъекции помогает смена префикса базы данных на нестандартный. Это правда?

Для тех кто не программист это самое простое решение. ;)

Мои домены на Телдери. (http://www.telderi.ru/ru/search?pid=e91586#user_id=28728)
dkameleon
На сайте с 09.12.2005
Offline
386
#20
Колпин:
то в качестве защиты от инъекции помогает смена префикса базы данных на нестандартный. Это правда?

не спасает.

Первым шагом в таком случае является формирование некорректного запроса и получения сообщения об ошибке, из которого и будет получен префикс.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий