跨站点脚本:针对 HTML 内容的 encodeForHTML(OWASP 企业安全 API)
Cross-Site Scripting: encodeForHTML for HTML content (The OWASP Enterprise Security API)
我的 JSP
中有一个 HTML select 标签
<%@ taglib prefix="esapi" uri="http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API"%>
<select>
...
<option value="volvo">${device.name}</option>
....
</select>
我在数据库中将其设置为设备名称
"><script>alert(1)</script>2d65
我尝试使用
加载页面时摆脱警报
<esapi:encodeForHTMLAttribute>${device.name}</esapi:encodeForHTMLAttribute>
或
<esapi:encodeForHTML>${device.name}</esapi:encodeForHTML>
或
<c : out value="${device.name}"/>
或
<esapi:encodeForJavaScript>${device.name}</esapi:encodeForJavaScript>
但是没有办法!加载页面时总是出现警告消息!
事实上,我看到字符被转义了,但即使 JSP
中出现警告
不使用 taglib 试试:
<%@ page import="org.owasp.esapi.*" %>
...
<select>
...
<option value="volvo"><%out.print(ESAPI.encoder().encodeForHTML(device.name));%></option>
....
</select>
我的 JSP
中有一个 HTML select 标签<%@ taglib prefix="esapi" uri="http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API"%>
<select>
...
<option value="volvo">${device.name}</option>
....
</select>
我在数据库中将其设置为设备名称
"><script>alert(1)</script>2d65
我尝试使用
加载页面时摆脱警报<esapi:encodeForHTMLAttribute>${device.name}</esapi:encodeForHTMLAttribute>
或
<esapi:encodeForHTML>${device.name}</esapi:encodeForHTML>
或
<c : out value="${device.name}"/>
或
<esapi:encodeForJavaScript>${device.name}</esapi:encodeForJavaScript>
但是没有办法!加载页面时总是出现警告消息!
事实上,我看到字符被转义了,但即使 JSP
中出现警告不使用 taglib 试试:
<%@ page import="org.owasp.esapi.*" %>
...
<select>
...
<option value="volvo"><%out.print(ESAPI.encoder().encodeForHTML(device.name));%></option>
....
</select>