Доброго времени суток, опять я и опять с вопросом о SQL-inj. Есть функция, которая проверяет входящую переменную на banwords. Очень хочется обойти эту проверку. В примудростях MSSQLа я не разбираюсь, поэтому прошу помощи. Code: function antiinjection($str) { $banwords = array ("'", ",", ";", "--"); if ( eregi ( "[a-zA-Z0-9]+", $str ) ) { $str = str_replace ( $banwords, '', strtolower ( $str ) ); } else { $str = NULL; } return $str; } Заранее спасибо ПиСи Еще раз повторюсь - платформа MSSQL
жестко они пробиться вроде никак низя.. хотя странно они сделали - нафиг одновременно и регулярка на буквы-цифры и еще вырезание спецсимволов, которые никогда не попадут под эту регулярку
_Great_, в принципе да, лишнего много, но, видишь,они не сделали эти две фильтрации параллельно, а сделали зависимыми! Т.е. если переменная $str содержит НЕ только латинские буквы обоих регистров и цифры if ( eregi ( "[a-zA-Z0-9]+", $str ) ) тогла происходит фильтрация на спец символы! Хотя я вообще не пойму зачем такая фильтрация... Я считаю переменные нужно фильтровать htmlspecialchars() и addslashes() В мускуле htmlspecialchars() и если идет запись в базу mysql_escape_string() Если целлочисленное значение(например id и прочее), тогда только intval() !