gpt4 book ai didi

javascript - JavaScript 中的跨站点脚本

转载 作者:行者123 更新时间:2023-11-28 02:57:57 25 4
gpt4 key购买 nike

我正在尝试解决代码中的跨站点脚本异常。我在 JS 代码中使用 JSP 表达式的行遇到 XSS 错误

例如:JS函数内部

function ex(){
.....
var loc = '<%= location.getLocDetails()>';
.....
}

如果您有任何解决方案/解决方法,请告诉我?
注意:location.getLocDetails() 返回一个字符串

最佳答案

只有 location.getLocDetails() 才存在 XSS 风险。可以返回用户控制的输入。例如,如果它从 HTTP Accept-Language 直接返回值header 没有任何语法检查或转义,那么确实存在 XSS 风险。

在显示过程中,您应该始终转义用户控制的输入,至少在某种程度上可以由客户端控制的每个输入,包括 HTTP 请求 header 和请求网址的。它基本上相当简单,只需使用一个转义 HTML 实体的显示工具 < , > , "' .

对于 JSP,最简单的方法是使用 JSTL (如果尚未完成,只需将 jstl-1.2.jar 放入 /WEB-INF/lib 中) <c:out> 为此标记。因此,应将特定行替换为(假设 location 已在页面、请求、 session 或应用程序范围中可用):

var loc = '<c:out value="${location.locDetails}" />';

也就是说,现在是时候删除 JSP 文件中的所有 scriptlet 了,这只会让事情变得更好:) 要了解有关 JSTL 的更多信息,read this .

关于javascript - JavaScript 中的跨站点脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com