【问题标题】:CSRF token for library files in index.htmlindex.html 中库文件的 CSRF 令牌
【发布时间】:2021-01-14 17:15:43
【问题描述】:
我有两个 index.html 文件,一个用于登录,一旦用户登录,我会加载整个 index.html,其中包含 angularjs 之类的库文件和从服务器提供的其他文件。
所以我的安全扫描抱怨我没有 CSRF 令牌。虽然我确实有所有的帖子请求。库文件是否也需要获取。
我正在使用 angualarjs 和 js
【问题讨论】:
标签:
javascript
angularjs
security
csrf
【解决方案1】:
一些 csrf 库默认忽略 GET、HEAD 和 OPTIONS 请求。例如; csurf。在选项中查找ignoreMethods 属性。如果您使用 csurf 或类似的东西,请寻找这样的配置选项。例如,在 csurf 中,您将执行以下操作以避免忽略 GET 请求:
const csrf = require('csurf');
const csrfMiddleware = csrf({
ignoreMethods: ['OPTIONS', 'HEAD'] // <--- change the default to only ignore OPTIONS and HEAD
});
【解决方案2】:
一般来说,您不应该尝试为 AngularJS 静态文件设置 CSRF 令牌。实际上,他们根本不需要访问控制。事实上,AngularJS 应用程序只是一个空壳,不会暴露任何敏感信息(至少,它不应该如此)。只有您的后端会并且应该缓解 CSRF 攻击,以防止在未经用户批准和知情的情况下发送经过身份验证的恶意请求。