本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
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,才会变成# 。


阅读全文(4783) | 回复(1) | 编辑 | 精华
 


回复:浅谈JSTL安全性问题
原创空间

tone发表评论于2007/8/2 12:57:58



个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.219 second(s), page refreshed 144754409 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号