编程语言
首页 > 编程语言> > javascript – 跨站点脚本:用于HTML内容的encodeForHTML(OWASP Enterprise Security API)

javascript – 跨站点脚本:用于HTML内容的encodeForHTML(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>

我在DB中将其设置为设备名称

"><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中也会出现警报

enter image description here

解决方法:

尝试没有taglib:

 <%@ page import="org.owasp.esapi.*" %>

 ...
 <select>
   ...
  <option value="volvo"><%out.print(ESAPI.encoder().encodeForHTML(device.name));%></option>
  ....
 </select>

标签:javascript,jsp,xss,owasp,cross-site
来源: https://codeday.me/bug/20190706/1397916.html