首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止XSS攻击

防止XSS攻击
EN

Stack Overflow用户
提问于 2009-05-16 18:01:53
回答 6查看 3.3K关注 0票数 6

我正在创建一个网页,用户可以在其中交互并在远程计算机上执行基本的文件系统操作(创建文件/目录、删除文件/目录、导航文件系统)。网页是基本的HTML(UTF-8编码)和Javascript。我需要使这个网页XSS证明。

使用Javascript(这将输出百分比编码的十六进制值)转义用户输入中的所有非字母数字字符(以防止基于DOM的XSS)和文件名信息(以防止存储的XSS)就足够了吗?

我基本上只将字母数字输入列入白名单。此外,由于我使用的是百分比编码的十六进制值,因此我假设UTF编码漏洞不应该存在。

有人能想到这种机制中的安全漏洞吗?

EN

回答 6

Stack Overflow用户

发布于 2009-05-16 18:23:41

使用javascript (我想这就是你所说的)来进行转义似乎不太安全。它在用户的机器上运行,他们可以通过一些努力绕过转义机制。

你想做的听起来是对的,但是你需要在服务器端去做。

票数 8
EN

Stack Overflow用户

发布于 2009-05-16 20:11:11

需要注意的几点:

  • 正如@Alo所说,这应该在服务器端完成,以防止攻击者完全绕过您的javascript并将恶意输入直接发送到服务器。然而,正如你所提到的,这(在某些情况下)也应该在客户端完成,以防止基于DOM的attacks.
  • Spaces。
  • 你提到页面是UTF8的,你需要使用元标签,HTTP头等来强制执行这一点。(有些包括...)在某些情况下,只需使用一个空格和字母,就可以安装一个全面的XSS攻击。

查看我对Will HTML Encoding prevent all kinds of XSS attacks?的回答中的更多信息,你会在那里找到你需要知道的所有信息。

票数 1
EN

Stack Overflow用户

发布于 2009-05-16 20:20:23

补充其他观点的注意事项:

确保正确使用GET和POST,因为这是许多网站上最简单的安全漏洞。

如果用户输入将触发对数据库的任何更改,请确保使用POST。

如果要检索要显示的信息,则仅限user GET。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/872929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档