Struts2 的多选项使用 List 接受 避免注入漏洞
后台管理中使用的多选删除,
?
本来使用的是字符串变量 MessID 来接受页面构建的 以 ,分割的字符串,直接传递到 dao 层 。
?
页面代码:循环的
<input name="MessID" type="checkbox"?value="${vo.id}" />?
<input name="MessID" type="checkbox"?value="${vo.id}" />?
<input name="MessID" type="checkbox"?value="${vo.id}" />?
<input name="MessID" type="checkbox"?value="${vo.id}" />
?
?
被爆出严重的安全漏洞
?
于是打回重新修改。
?
建议直接使用 List<Long> MessID ;接受 ,这样不使用字符串,可以避免构造SQL造成安全漏洞。
?
在Action层,可以使用Spring 的字符串工具 把List解析成以 , 分割的字符串。
?
String ids = StringUtils.arrayToDelimitedString(messItem_id.toArray(), ",");
messService.deleteMessItem(ids);
?
这样 ,避免了 SQL 注入 。
?