2011-06-16 128 views
0

我有一个问题。对于第一次我有这样的代码:问题Ibatis和SqlIjection与Fotify

更新 $表$ 集 扩大=#扩大# 其中 名=#identificativo#

我的问题是Fortify的工具,因为它说,我必须使用#而不是$。 但是,如果我使用#table#或#table []#,我的应用程序在哪里使用此ID的点不会启动。我很抱歉我的英语。 谢谢。 此致敬礼。

回答

0

我不知道Fortify工具,但我知道在这种情况下它是错误的。使用$ table $是使用iBATIS修改SQL的一种可接受的方式,即替换值将在生成的实际SQL中替换,而不是作为参数添加。

据我所知这是使用动态表名称的唯一方法。

编辑:刚刚检查了Fortify工具和found this。他们担心的是SQL注入。阅读页面以获取更多信息。

您需要做的只是确保代码作为“表”参数传入的值不是来自用户,即系统的任何用户都无法修改表参数。

+0

好的,非常感谢。 – Enrico 2011-06-16 11:35:54