我的 JSP 中有一个 HTML 选择标签

<%@ 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中出现警告

javascript - 跨站脚本 : encodeForHTML for HTML content (The OWASP Enterprise Security API)-LMLPHP

最佳答案

尝试不使用 taglib:

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

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

关于javascript - 跨站脚本 : encodeForHTML for HTML content (The OWASP Enterprise Security API),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33829387/

10-09 20:18