【问题标题】:Preventing xhr attack in my nodejs server [closed]在我的nodejs服务器中防止xhr攻击[关闭]
【发布时间】:2013-03-08 03:25:35
【问题描述】:

我正在开发一个 nodejs 服务器,它将与客户端移动应用程序交互。我在服务器上遇到了一些称为 XSS 和 XHR 的攻击。我遇到了一个名为 node-validator 的模块,它对于处理和验证输入很有用.我需要知道 XSS 和 XHR 攻击是否具有相同的效果,以及该模块是否对两者都有用。任何关于此的想法都会非常有帮助。

【问题讨论】:

    标签: node.js xmlhttprequest xss


    【解决方案1】:

    XSS 攻击也称为跨站点脚本攻击。当攻击者利用未经过滤的输入字段将 javascript 注入应用程序时。一个常见的例子是,如果攻击者设法将 javascript 注入博客文章 cmets。然后(如果清理不当)每次有人查看评论时都会执行。可以阅读有关here 的此类攻击的示例。

    XHR 攻击只是 XSS 攻击的扩展,其中注入的脚本使 AJAX 回调到域服务器。

    实际上,防止这些类型的攻击相当容易。通过验证您的输入(去除 HTML 标记)并转义特殊字符,如“、'、` 等,您可以防止这种情况发生。我绝对建议您为此使用外部库,因为您可能会自己错过一些东西。

    另外,这是一个类似的问题,可能会对您有所帮助。 Sanitizing user input before adding it to the DOM in Javascript

    【讨论】:

      【解决方案2】:

      如果您使用的是 expressjs/connect,那么有一个“内置”csrf middleware in connect

      【讨论】:

      • 我正在使用 csrf 中间件,它通过要求向所有 POST 请求提交令牌来防止 XSS 和 XHR 攻击。此令牌由服务器在每个页面请求上生成。对我有用。我已经对其进行了测试,试图从不同的服务器对我自己的站点进行攻击,但由于令牌丢失,所有请求都被阻止了。