javascript - Java 中转义字符以避免 XSS

标签 javascript java xss apache-stringutils

我需要转义字符以避免 XSS。我正在使用 org.apache.commons.lang.StringEscapeUtils.escapeHtml(String str),它通过以下方式提供帮助:

原始输入

" onmouseover=alert() src="

转义后 HTML 变为

" onmouseover=alert() src="

但是,在某些情况下,反射的输入会被困在单引号中,例如:

test'];}alert();if(true){//

在这种特殊情况下,转义 HTML 不会产生任何效果。然而,org.apache.commons.lang.StringEscapeUtils 还有一个名为 escapeJavascript(String str) 的方法,它将输入转换为:

test\'];}alert();if(true){\/\/

这里的问题是,你会先转义 HTML 然后转义 Javascript 来清理你的输入吗?另一种方法是手动用\' 替换单引号字符。

任何帮助将不胜感激!

最佳答案

正如 @gabor-lengyel 提到的,我应该能够使用 html 编码器转义单引号。

我遇到的问题是我使用的是org.apache.commons.lang.stringescapeutils.escapeHtml,它无法使用相应的HTML实体转义单引号。我现在使用 org.springframework.web.util.HtmlUtils.htmlEscape,它能够处理双引号和单引号。

再次感谢@gabor-lengyel 的帮助!

关于javascript - Java 中转义字符以避免 XSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50762964/

相关文章:

javascript - ASP.Net MVC 使用 jquery-form 插件上传文件并返回 Json 结果

java - 是否有一个 javascript 库可以在图像上进行注释并将注释作为图像保存在服务器中?

java - ESAPI 编码器规范化更改查询参数

css - 如何使用用户添加的外部 css(如 myspace)管理安全性

JavaScript - 跨站点脚本 - 权限被拒绝

javascript - WebRTC 如何设置限制以在可用时使用音频

javascript - 浏览器滚动如何在 DOM 中工作?

javascript - 使用 fs.readFileSync 和 eval 内容读取文件...哪个范围具有这些功能?如何访问?

java - 检测到 Maven 版本 : 3. 0.5 不在允许范围内 3.2

java - 为什么java tzupdater要添加闰秒?