我们在表示层使用jsf primefaces,使用hibernate作为ORM工具。 在运行安全工具来检查代码的安全级别时,我们正在获取 很少有盲注sql注入警告。 我知道这种脆弱性来的基本原因。为了证实,我已经检查了最多 编写的查询,发现所有查询都遵循正确的
模式 SELECT col FROM table WHERE col = :Identifier
然后我们使用getNamedQuery来检索查询。要填充我们的标识符 正在使用setter方法。
安全检查工具生成的报告包含一些报告 UI组件ID等等 它将问题陈述为
以下更改已应用于原始请求: - 将参数'form:someDropDown_input'的值设置为'0%2B0%2B0%2B1' - 将参数'form:someDropDown_input'的值设置为'12345%2B12345%2B1'
同样在其他一些地方,它显示问题为
以下更改已应用于原始请求: - 将参数'javax.faces.partial.execute'的值设置为'%40all%27 +和+%27f%27%3D%27f'
我几乎无法理解错误报告中的任何内容。 所以请指导我可能出现的问题。
答案 0 :(得分:1)
“安全工具”的许多结果,比如您似乎正在运行的IBM AppScan,只是猜测。盲SQL注入是一类检测,其可靠性甚至低于平均值。
由于您正在使用参数化查询,因此您没问题。告诉那些运行此工具的人,这是误报。如果他们不同意,请让他们向您展示如何利用这一点。