5

作者: wfayw | 来源:发表于2018-02-27 09:37 被阅读0次

JSP页面c:out输出设计
设计概述:XSS攻击后最终的体现是在前端,直接暴露给用户,抓住前端代码处理环节是XSS最后的防护,由于以上我们做了大量的XSS处理杜绝源头,因此页面纯粹是增强设计。
应用场景设计:对controller的方法层直接返回页面,使用request.setAttribute,modelandview请求数据场景
c:out的作用域只能是Jsp,含Jsp的HTML部分、Javascript、css部分都是有效的,但是单独JS文件、CSS文件是无效引入。
步骤1:页面引入jstl c标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
步骤2:页面使用如下方式对el表示式处理;
<c:out value=”${groupName}” />
步骤3:注意事项
1)、<c:foreach> items引用的循环对象不要使用c:out输出;
2)、控件的属性值使用c:out时要么是双引号在外,单引号在内,反之亦然;

Js文件处理设计
设计概述:我们中台部分应用场景设计提交表单->回写表单的数据不是实时从数据库获取,需要F5二次刷新才可以取到已处理XSS的数据,初次回写造成XSS的攻击假象,因此针对这种场景又苦恼无法使用c:out,因此我们在Js里定义了一个页面简单转义的函数。
步骤1:定义html-util.js工具脚本类,增加如下代码
var HtmlUtil = {
htmlEncodeByRegExp : function(str) {
var s = "";
if (str.length == 0)
return "";
s = str.replace(/&/g, "&");
s = s.replace(/</g, "<");
s = s.replace(/>/g, ">");
s = s.replace(/ /g, " ");
s = s.replace(/'/g, "'");
s = s.replace(/"/g, """);
return s;
},
htmlDecodeByRegExp : function(str) {
var s = "";
if (str.length == 0)
return "";
s = str.replace(/&/g, "&");
s = s.replace(/</g, "<");
s = s.replace(/>/g, ">");
s = s.replace(/ /g, " ");
s = s.replace(/'/g, "'");
s = s.replace(/"/g, """);
return s;
}
};
步骤2:调用示例
var name = HtmlUtil.htmlEncodeByRegExp($("#name").val());
FAQ
如何避免重复转义?
答:由于我们最终字符串层都是统一调用spring-web的HtmlUtils类处理,不管是数据涉及编辑多次重复转义问题、还是Jackson输出前转义都需先还原原字符,然后再转义一次即可达合法输出。
如下代码:
HtmlUtils.htmlEscape(HtmlUtils.htmlUnescape(value));
哪些范围不能使用c:out输出?
答:富文本区域不能用c:out输出,如果硬要c:out请设置escapeXml=”false”
还有哪些地方需要完善?
答:具体系统具体分析,比如数据字典的正则表达式,应该特殊处理,然后涉及富文本的应该走富文本过滤,富文本XSS过滤还需进一步完善。

相关文章

  • 灵心儿组计分

    9.24 棉芯➕5➕5 晨萌➕5 乐乐➕5➕5➕5➕5 楠楠➕5➕5➕5➕5 水儿➕5➕5 七炫➕5➕5➕5➕5

  • 未闻花名口琴简谱

    1 4 5 5 6 6 6 6 6 6 5 5 5 5 5 5 4 4 4 4 4 4 4 1 1 1 4 5 5...

  • 5/5

    该地区最重要的科技增长毫无疑问是半导体产品。在新泽西州Bell实验室里,William曾是晶体管发明人之一,195...

  • 5/5

    我允许自己表达疲惫,允许自己懒懒前行,允许自己自然而然……感觉到放松,感觉到对自我的接纳,自己理解自己,直面自己,...

  • 5、5

    しょんぼり [寂しく]孤零零(地);[がっくり]垂气(成),无精打采(成) ¶~立っている/无精打采地站着 ¶彼は...

  • 5 .5

    今天去的晚了一点,然后男队那边早早就开始在训练了,但是女队现在还在慢悠悠的走,有十多分钟,这种学生投入性低,缺...

  • 5/5

    五一后第一天上课,虽然起晚了一点,不过语文课还是听上了。数学老师的课就是摸鱼,老师讲评了五一的卷子,真的超难!我原...

  • 托姆拉物语暴力火线技能树

    剑术:战吼5+5+10 射击:弱狙5+5+10 火线5+10 要领10 分身5+5+10 魔法:冲击波5+5+5+...

  • 密码

    1【5】1 云1 2【5】2 云2 3【5】3 云3 4【5】4 云4 5【5】5 云5 《2.0》 公告 6【5...

  • 20171109

    5:00-5:10 洗漱 V 5:10-5:40 晨间日记 V 5:40-5:50 反思昨天 V 5:50-5: ...

网友评论

      本文标题:5

      本文链接:https://www.haomeiwen.com/subject/dcrpxftx.html