0

我们在表示层使用 jsf primefaces,并使用休眠作为 ORM 工具。在运行安全工具来检查代码的安全级别时,我们很少收到盲目的 sql 注入警告。我知道这个漏洞出现的基本原因。为了确认,我检查了大部分写的查询,发现它们都遵循正确的模式

    SELECT col  FROM table  WHERE col = :Identifier

然后我们使用 getNamedQuery 来检索查询。要填充标识符,我们使用 setter 方法。

安全检查工具生成的报告包含一些 UI 组件 id for or 等​​。并将问题描述为

对原始请求应用了以下更改: - 将参数“form:someDropDown_input”的值设置为“0%2B0%2B0%2B1” - 将参数“form:someDropDown_input”的值设置为“12345%2B12345%” 2B1'

同样在其他一些地方,它显示的问题是

对原始请求应用了以下更改: - 将参数“javax.faces.partial.execute”的值设置为“%40all%27+and+%27f%27%3D%27f”

我几乎无法从错误报告中理解任何内容。所以请指导我问题可能出在哪里。

4

1 回答 1

1

来自“安全工具”的许多结果,例如您似乎正在运行的 IBM AppScan,只是猜测。SQL 盲注是一种检测,其可靠性甚至低于平均水平。

由于您使用的是参数化查询,所以没问题。告诉运行此工具的人这是误报。如果他们不同意,请他们向您展示如何利用这一点。

于 2013-09-05T11:48:34.697 回答