gpt4 book ai didi

Javascript XSS 预防

转载 作者:数据小太阳 更新时间:2023-10-29 05:55:38 28 4
gpt4 key购买 nike

有一个 Node.js 项目可以清理数据,还有一个用于 JavaScript 的 OWASP 库可以处理清理以防止 XSS。

我一直在对这些库进行基准测试,它们非常密集,可能有点矫枉过正,我的应用程序不需要任何动态 HTML(由用户提交,bbtags 或其他任何东西,根本不需要)所以为什么不这样做呢:

  1. 禁用“<”和“>”字符,不要替换它们或任何东西,只是禁用它们,如果用户提交这些,给他们一个警告,这些被禁用(客户端和服务器端验证)
  2. & => &amp;
  3. " => &quot;
  4. ' => &#x27;
  5. / => /
  6. 对提交的 URL 进行编码(GET 参数等)
  7. 涵盖了基于 DOM 的 XSS,因为我的应用程序使用 HTML5 PushState 并且后端与前端完全分离。

这是否足以保护我自己,正如我所说,我的应用程序不需要用户提交任何 HTML,所以我不需要 <>标签。

感谢所有反馈,这是我现在使用的:

var pattern = /<(.*)>/;

function hasHtmlTags(string) {
return pattern.test(string);
};

if (hasHtmlTags(userData)) {
// Do something?
} else {
// Create entity.
}

因此用户仍然可以使用他们的表情符号 :< 等,并且只有在找到 < 和 > 的组合时才会触发该功能。因此,没有昂贵的正则表达式等,只需禁用 < 和 > 的组合,我们应该没问题。

最佳答案

这是一个通用的编码过程:

var lt = /</g, 
gt = />/g,
ap = /'/g,
ic = /"/g;
value = value.toString().replace(lt, "&lt;").replace(gt, "&gt;").replace(ap, "&#39;").replace(ic, "&#34;");

如果您的用户没有向您的服务器提交任何内容,您甚至不需要上述内容。如果用户提交并且您正在使用用户输入,那么上述内容应该是安全的。只要对“<”和“>”进行了全局清理,并且括号也是如此,您就可以开始了。

关于Javascript XSS 预防,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12799539/

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