Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Статья про анти sql-inj (https://forum.antichat.xyz/showthread.php?t=30641)

nerezus 05.01.2007 20:01

Статья про защиту от 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

max_pain89 05.01.2007 20:22

хм довольно странный, даже не статья, а пост.

В защиту magic quotes скажу что если ставишь двиг, не собственно ручно написаный, смысла отключать не вижу, больше риск.

nerezus 05.01.2007 21:06

Я сначала хотел что-то из строчек восьми написать )
Но написал больше.
Причина - тема http://forum.antichat.ru/thread30506.html

Ну а чтьо касается magic quotes - то нефиг юзать кривые движки ;)

blaga 05.01.2007 21:28

intval() например при -12 выводит -12. Это не дырка? А вот насчет mysql_real_escape_string() это ты в точку! Нхрена писать невпупенные функции когда можно одной строчкой обойтись.

nerezus 05.01.2007 21:39

Цитата:

intval() например при -12 выводит -12. Это не дырка?
Я даже приписал:
"Можно по модулю взять в LIMIT, но это не секурити-дырка."

blaga 05.01.2007 21:40

Извини, пойду лучше учебник по скулю почитаю.

_Great_ 05.01.2007 21:49

Цитата:

intval() например при -12 выводит -12. Это не дырка?
не-а =)

Zadoxlik 05.01.2007 22:10

Это все ясно, только ты не раскрыл тему=) Например при Selectе с Like надо экранировать еще пару символов, хотя логика очень здравая и самому ни раз мысль такая приходила при прочтении описаний разного рода фильтраций =)

guest3297 06.01.2007 00:15

А если админы эту статью прочитают ведь все sql иньекции закроют?
Статью в приват!

blaga 06.01.2007 06:44

2[ cash ], тебя как самого умного в подполье работать на сопротивление.


Время: 15:27