![]() |
Статья про защиту от SQL-inj
Статья про защиту от SQL-inj
Что такое SQL-inj? Сам знаешь. Иначе бы не читал. Так что сиди и читай дальше ;) Как проводятся SQL-inj? Вбивай в гугл и ищи статьи всяких разных хакеров. Если искать не умеешь - то дальше не читай, все равно не поймешь. Как защититься? Что, нагуглил статей? Может и про защиту написано? Какие-нибудь леменги вроде Михуила Фленова. фильтровать советуют? Шли нах. Ничего, повторяю еще раз для альтернативно-одаренных: НИЧЕГО фильтровать не надо. СУБД - на то она и СУБД, а не херня какая-то, чтобы нормально любые данные принимать. Наша задача - просто правильно эти данные преподнести. Защищаться надо так(применительно к PHP и mysql): 1) Если поле в базе числовое, то: (int) (ну или intval()). Можно по модулю взять при использовании в LIMIT, но это не секурити-дырка. 2) Если текстовое, то просто mysql_real_escape_string() 3) Всякие magic quotes и подобные затычки отключены. Кто не отключил - ССЗБ(что это означает - смотрите на LOR'е) И ВСЕ! Больше ничего не надо. Ибо запрос испортить левыми данными нельзя. Повторю еще раз: НИКАКИХ ФИЛЬТРАЦИЙ. LIKE/RLIKE/AGAINST/etc - это частный случай, и рассматривается отдельно. Примера не будет. Если не понял - значит это тебе не надо. ORM Что это такое, написано здесь: http://ru.wikipedia.org/wiki/ORM Защита от SQL-inj - это побочный результат применения данной технологии. Что касательно защиты от XSS, то никаким образом к БД это не относится. Так что те, кто хотел это все объединить в 1 функцию(да к тому же и с проверкой) - идите лесом. Это кардинально разные вещи и они друг к другу не относятся. И да пребудет с вами сила(не со всеми)! nerezus, 5.01.07-2.01.08 |
хм довольно странный, даже не статья, а пост.
В защиту magic quotes скажу что если ставишь двиг, не собственно ручно написаный, смысла отключать не вижу, больше риск. |
Я сначала хотел что-то из строчек восьми написать )
Но написал больше. Причина - тема http://forum.antichat.ru/thread30506.html Ну а чтьо касается magic quotes - то нефиг юзать кривые движки ;) |
intval() например при -12 выводит -12. Это не дырка? А вот насчет mysql_real_escape_string() это ты в точку! Нхрена писать невпупенные функции когда можно одной строчкой обойтись.
|
Цитата:
"Можно по модулю взять в LIMIT, но это не секурити-дырка." |
Извини, пойду лучше учебник по скулю почитаю.
|
Цитата:
|
Это все ясно, только ты не раскрыл тему=) Например при Selectе с Like надо экранировать еще пару символов, хотя логика очень здравая и самому ни раз мысль такая приходила при прочтении описаний разного рода фильтраций =)
|
А если админы эту статью прочитают ведь все sql иньекции закроют?
Статью в приват! |
2[ cash ], тебя как самого умного в подполье работать на сопротивление.
|
| Время: 15:27 |