栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

HTML实体转义以防止XSS

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HTML实体转义以防止XSS

我也使用OWASP(ESAPI)库,以转义不同显示类型的字符串,请使用:

String html = ESAPI.enprer().enpreForHTML("hello < how > are 'you'");String html_attr = ESAPI.enprer().enpreForHTMLAttribute("hello < how > are 'you'");String js = ESAPI.enprer().enpreForJavascript("hello < how > are 'you'");

HTML(假设为jsp)

<tag attr="<%= html_attr %>" onclick="alert('<%= js %>')"><%= html %></tag>

更新2017

由于ESAPI编码器被认为是旧版,因此已经创建了一个更好的替代方案,并且正在积极维护中,我强烈建议改用OWASP
Java编码器

如果您的项目已经使用

ESAPI
,则添加了集成,您可以使用该库进行编码。

其用法已在其Wiki页面上进行了说明,但是为了完整起见,这是您可以使用它来对数据进行上下文编码的方式:

// HTML ContextString html = Enprer.forHtml("u<ntrus>te'd'");// HTML Attribute ContextString htmlAttr = Enprer.forHtmlAttribute("u<ntrus>te'd'");// Javascript Attribute ContextString jsAttr = Enprer.forJavascriptAttribute("u<ntrus>te'd'");

HTML(假设为jsp)

<div data-attr="<%= htmlAttr %>" onclick="alert('<%= jsAttr %>')">    <%= html %></div>

PS: 存在更多上下文,并且库支持



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441021.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号