使用Fotify解决问题Ibatis和SqlIjection

时间:2011-06-16 10:38:46

标签: ibatis

我有一个问题。首先,我有这个代码:

        更新             $表$         组             expanded = #extended#         哪里             name = #recognicativo#     

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

1 个答案:

答案 0 :(得分:0)

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

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

修改:刚刚检查了Fortify工具和found this。他们担心的是SQL注入。阅读页面了解更多信息。

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