SQL注入和多行注释

Kyp*_*lez 0 mysql sql oracle sql-injection

我正在测试客户的查询,并遇到了一个有趣的问题.一个不好意图的黑客SQL会注入以下查询:

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

例如,在我看来,他无法评论第一个$ searchterm之后的内容,只是插入其他查询:

field1 like '%$searchterm%'
Run Code Online (Sandbox Code Playgroud)

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

Álv*_*lez 5

试试这个:

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

... :searchterm输入参数填充在您最喜欢的语言提供的whateter函数中.

  • 在我看来,这是正确的方法.马林获得了一个很好的图形示例 (3认同)