Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Обход проверки на SQL-inj |

16.11.2006, 18:18
|
|
Новичок
Регистрация: 01.08.2005
Сообщений: 25
Провел на форуме: 48628
Репутация:
17
|
|
Обход проверки на SQL-inj
Доброго времени суток, опять я и опять с вопросом о SQL-inj.
Есть функция, которая проверяет входящую переменную на banwords. Очень хочется обойти эту проверку. В примудростях MSSQLа я не разбираюсь, поэтому прошу помощи.
Код:
function antiinjection($str) {
$banwords = array ("'", ",", ";", "--");
if ( eregi ( "[a-zA-Z0-9]+", $str ) ) {
$str = str_replace ( $banwords, '', strtolower ( $str ) );
} else {
$str = NULL;
}
return $str;
}
Заранее спасибо
ПиСи
Еще раз повторюсь - платформа MSSQL
|
|
|

16.11.2006, 18:21
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
жестко они  пробиться вроде никак низя..
хотя странно они сделали - нафиг одновременно и регулярка на буквы-цифры и еще вырезание спецсимволов, которые никогда не попадут под эту регулярку
|
|
|

18.11.2006, 17:33
|
|
Новичок
Регистрация: 23.09.2006
Сообщений: 19
Провел на форуме: 142370
Репутация:
6
|
|
_Great_, в принципе да, лишнего много, но, видишь,они не сделали эти две фильтрации параллельно, а сделали зависимыми!
Т.е. если переменная $str содержит НЕ только латинские буквы обоих регистров и цифры
if ( eregi ( "[a-zA-Z0-9]+", $str ) )
тогла происходит фильтрация на спец символы!
Хотя я вообще не пойму зачем такая фильтрация...
Я считаю переменные нужно фильтровать
htmlspecialchars() и addslashes()
В мускуле
htmlspecialchars() и если идет запись в базу mysql_escape_string()
Если целлочисленное значение(например id и прочее), тогда только intval() !
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|