0

我正在测试客户的查询并遇到了一个有趣的问题。恶意的黑客 SQL 是否会注入以下查询:

SELECT * FROM mytable WHERE 1
AND cfield='0'
AND (
field1 like '%$searchterm%' OR
field2 like '%$searchterm%' OR
)

例如,在我看来,他无法注释掉第一个 $searchterm 之后的内容,而只需插入其他查询:

field1 like '%$searchterm%'

不过,我可能是错的。期待您的意见。先感谢您!

4

2 回答 2

5

试试这个:

SELECT * FROM mytable WHERE 1
AND cfield='0'
AND (
field1 like '%' || :searchterm || '%' OR
field2 like '%' || :searchterm || '%' OR
)

...:searchterm输入参数在哪里填写您最喜欢的语言提供的任何功能。

于 2012-10-17T16:26:58.147 回答
4
searchterm = "');drop table customers;SELECT * FROM mytable WHERE ( field1 like '"
于 2012-10-17T16:20:12.630 回答