您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

HTML实体转义以防止XSS

HTML实体转义以防止XSS

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

String html = ESAPI.encoder().encodeForHTML("hello < how > are 'you'");
String html_attr = ESAPI.encoder().encodeForHTMLAttribute("hello < how > are 'you'");
String js = ESAPI.encoder().encodeForJavaScript("hello < how > are 'you'");

HTML(假设为jsp)

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

2017

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

如果您的项目已经使用ESAPI,则添加集成,您可以使用该库进行编码。

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

// HTML Context
String html = Encoder.forHtml("u<ntrus>te'd'");

// HTML Attribute Context
String htmlAttr = Encoder.forHtmlAttribute("u<ntrus>te'd'");

// Javascript Attribute Context
String jsAttr = Encoder.forJavaScriptAttribute("u<ntrus>te'd'");

HTML(假设为jsp)

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

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

其他 2022/1/1 18:16:21 有475人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶