gpt4 book ai didi

node.js - Express 应用中的 XSS 保护

转载 作者:搜寻专家 更新时间:2023-10-31 23:55:01 25 4
gpt4 key购买 nike

我正在开发一个 express 应用程序,它作为 REST api 与网络客户端一起使用,并且可能是 future 的移动客户端。我正在为两个客户端使用 Oauth 2.0 token 身份验证。这为 CSRF 提供了很好的安全性。我想知道如何针对 XSS 提供安全性

*我把token的有效期做得很短,要求客户端用refresh_tokens和access_tokens的其他客户端细节来请求。这使它有点安全但不完全*。

我担心 client_id 和 client_secret 被盗,因为它存在于前端 javascript 代码中,并且被其他客户端用来验证。 我正在考虑使用JWT 进行客户端身份验证,这会有帮助吗?

数据清理是另一个让我感到困惑的问题。有类似 validator 的模块, express-validator给出正则表达式验证。根据这个blog post JSON Schema 验证很快。在 REST Api 中,JSON 将用于数据交换,所以我在徘徊,为什么我不能使用像 tv4 这样的模块?或任何其他用于数据验证的 JSON Schema 验证器??我不是在征求使用什么的建议,我只是想知道每个提供的验证类型的基本区别,特别是从一个 Angular 来看XSS 保护和清理

最佳答案

所以你在这里有三个不同的问题:

1)如何防范XSS:只要您使用JSON在客户端和服务器之间共享数据,并使用标准库/方法对JSON进行编码/解码,您就基本上得到了保护。之后,你只需要担心更难保护的 DOM Based XSS。但基本上你需要小心不要使用任何用户提供的输入,这些输入可以被解释为你想要的“字符串”以外的任何东西。 (请访问https://www.owasp.org/index.php/DOM_Based_XSS了解更多信息)

2) client_id 和 client_secret 被盗: 这似乎无法按照您要求的方式进行。在您的场景中(您在 javascript 代码中分发 clientid&secret),服务器端无法知道请求是来自您的客户端还是假的。

3) 数据清理:我在您和博文提到的库中看到两个级别的清理。 validator 或 express-validator 主要用于验证单个数据字段。而除了“验证器”所做的之外,其他人还可以验证 JSON 对象结构。如果您需要所有交换的数据都是 JSON 格式(也如 XSS 保护所建议的那样),那么您可以使用像 tv4 这样的 json 对象验证器。 (tv4 的唯一缺点似乎是允许最新的 json 规范,这对你来说应该不是问题)

顺便说一句:如果您指定您的客户端应用程序是纯客户端 javascript (angularjs) 会更容易。在评论中找到此信息之前,我无法理解您的问题。

关于node.js - Express 应用中的 XSS 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22013081/

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