【发布时间】:2011-06-25 17:45:03
【问题描述】:
是否可以选择以下代码中的$user_input 以使 MySQL 查询的行为不符合预期?
<?
$regexp = mysql_real_escape_string( $user_input );
mysql_query( "SELECT col FROM table WHERE col REGEXP \"$regexp\"" );
?>
我不能使用准备好的语句,因为 SQL 字符串需要传递一点。
编辑:我要补充一点,我已经知道正则表达式 DoS 攻击。
【问题讨论】:
-
'%needle' 不会使用索引,因为 % 在开头。所以这可能会很慢。
标签: php mysql regex mysql-real-escape-string