【问题标题】:Will this be enough to prevent xss on my site?这足以防止我网站上的 xss 吗?
【发布时间】:2020-07-22 16:11:07
【问题描述】:

我有一个用户很少的小型网站,最近我一直在研究网站安全性并偶然发现了 xss 攻击。我通过自我测试在我的代码中发现了一个漏洞,我可以在其中创建一个用户名<b>username</b>,它会以粗体显示。现在,用户采取的任何操作都会发送到我的服务器进行验证,我已明确禁止“<”和“>”字符。这足以防止 xss 攻击吗?

另外,我的文本字段非常有限(10 个字母),不过,我想这可以通过调用 chrome 开发工具中的函数来绕过?

这会做吗?或者还有什么我应该注意的吗?请注意,该站点不包含任何重要数据被盗或被黑客入侵,我只是希望它得到充分保护,因为 xss 攻击可能非常令人讨厌并重定向用户,但最终我觉得我的网站按预期方式工作是有责任的。..

【问题讨论】:

  • 你使用什么服务器端语言?
  • javascript(节点 js)
  • 清理您提取的所有用户数据,同时在您生成页面时对其进行清理。 <b>username</b> 可能是一个愚蠢的用户名,但作为用户生成的内容,您需要不仅在您摄取(例如通过 POST 接受)时进行消毒,而且在您将其转回页面数据时:让您的服务器执行 HTML 实体替换,在浏览器中始终使用textContent,从不使用innerHTML
  • 是的,我添加了这个“代码”函数 htmlEscape(text) { return text.replace(/&/g, '&')。替换(/,'<')。 // 不必转义 > replace(/"/g, '"').replace(/'/g, '''); }'code'

标签: javascript html css xss


【解决方案1】:

使用框架。不要尝试再次制造轮子!在大型框架中,很多人花费了大量时间来防止 XSS 等。

Preventing XSS in Node.js / server side javascript

【讨论】:

  • np :) 如果它解决了问题。请将我的答案设为已回答
猜你喜欢
  • 1970-01-01
  • 2012-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
相关资源
最近更新 更多