« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
暂无公告... |
Blog信息 |
blog名称: 日志总数:42 评论数量:31 留言数量:0 访问次数:178401 建立时间:2007年7月30日 |

| |
[jsp]浅谈JSTL安全性问题 原创空间
gareth 发表于 2007/8/1 10:34:37 |
在Web开发中,如果页面采用JSTL标签编写,可能会带来潜在的安全隐患。尤其是在信息回显的时候,更容易出问题,更容易遭受脚本攻击。解决的办法是采用:<c:out value="${msg}"/>显示信息,而不要在页面上直接显示:${msg}. 举个例子: <input name="deviceName" type="text" id="deviceName" value="${devicename}" /> 这就有问题,当设备中含有<>等特殊字符时就出事啦。安全的做法是: <input name="deviceName" type="text" id="deviceName" value="<c:out value='${devicename}'" /> 特殊字符:1:XML的5个特殊转义字符,包括 ' " & < > 2:SQL注入,如果正常使用hibernate,不会有任何SQL注入的问题,如果拼接的SQL留意几个注意的字符:
'
用于查询值的封装,导致单引号不配对,查询出错;
/*和#是MySQL两种注释格式;
()用于包含查询的逻辑字句,可以导致不配对,查询出错;
._
'--
__ % OR 1=1可能影响数据库记录的查询,会取出所有记录。
写JDBC程序,最好是用预处理,防止SQL注入,如果必须拼接,必须要禁止 ‘ / * # - %
= “的输入。
3:URL的问题
单引号和双引号肯定会破坏JavaScript函数中字符串的封装
\会带来JavaScript函数转义的问题
<>是html标签符号
URL无法处理的字符 ? & = + : # % @ ,例如#由于编码问题,在IE地址栏里提交#会变成空的,提交%23,才会变成# 。 |
|
回复:浅谈JSTL安全性问题 原创空间
tone发表评论于2007/8/2 12:57:58 |
|
» 1 »
|