javascript - 用js处理url中的xss

标签 javascript url encoding xss

我有一个 url 参数,可以是: “http://www.example.net” 或者: javascript:alert(document.cookie)

如果我使用encodeURIComponent来避免xss攻击,那么合法的url就会被破坏,如果我使用encodeURIComponent,则不会处理xss攻击(冒号通过)。避免 xss 攻击并保持 url 有效的最佳方法是什么?

最佳答案

据我所知,有两个主要选项:

  1. 您可以创建允许参数的白名单,并且不必费心对传递的实际 url 进行任何实际操作。换句话说,您可以执行类似 ?url=example 的操作,并将其重定向到 http://www.example.com(如果它位于白名单中)。需要明确的是,这些是别名,而不是您仅假设站点的前缀和顶级域名的规则。这有助于确保您不易受到open-redirects的影响。和 XSS。

  2. 如果维护这样的列表不可行,您可以制定一条规则,规定只能使用某些域(可能与网站相同的域)。至少你可以验证该方案是http|https,但你仍然容易受到开放重定向的攻击,但至少他们无法通过该参数对你的页面进行XSS攻击。

关于javascript - 用js处理url中的xss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205173/

相关文章:

java - HTTP 请求中的无限重定向循环

c# - SQL Server 生产版的行为与开发版不同。编码有问题!

c - 在 C 中存储来自字符串的输入十六进制值

javascript - 如何在javascript中根据x增加y的值

javascript验证数字未检测到空表单字段

javascript - 如何在 Angular 4+ 中添加/使用 lightGallery 插件?

performance - 使用 SSL 避免登陆页面重定向

java - Android:下载文件代码不起作用

javascript - 窗口位置主题标签语法错误未在问号后读取

python - 使用python将带有俄语字符的二维数组打印到csv