为了账号安全,请及时绑定邮箱和手机立即绑定

在浏览器选项卡中查询时如何保护 GET 请求

在浏览器选项卡中查询时如何保护 GET 请求

Go
MM们 2023-07-26 19:39:47
我目前的任务是开发股票市场数据 API,安全性是重中之重。我能够使用 JWT、API 密钥、中间件身份验证来保护传入的 GET 请求。假设当用户未登录时,众所周知,所有 http 方法(尤其是 GET)都会以 http 状态 401 未经授权的访问进行响应。我的问题是,当用户登录我们的应用程序时,现在可以成功查询 API 请求(服务器到服务器),但是当我将请求链接复制到浏览器新选项卡(例如 chrome)时,我可以看到回复。这是预期的,因为用户已登录,但我希望请求响应不会在浏览器中看到。我们的其他竞争对手使用 POST 来对抗浏览器默认的 GET。我们应该转向 POST 吗?我很挣扎,因为 GET 是请求内容的正确 http 方法。
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

对于像股票市场数据这样的私人信息,我的第一选择是发布请求。

我曾经通过检测浏览器来阻止来自浏览器的 GET API 请求,基于用户代理字符串和自定义头元数据等内容,但根据经验,这不是一个完美的解决方案。

我过去使用的另一个技巧是使用简单的加密算法(它不安全但速度快。这只是一种干扰)来加密值。因此,如果有人确实提取了 json 响应,则数据将是垃圾,除非使用密钥解密,在您的情况下,密钥可能是 jwt 令牌。

再说一遍,这些技巧对高技术人员的安全没有任何作用,但足以分散常规到平均逆向工程技巧的注意力。另外免责声明,我从未使用 GET 来获取任何重要的财务和股票相关信息。我的规则是 GET 处理普通的填充内容,POST 处理重要的内容。


查看完整回答
反对 回复 2023-07-26
?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

POST如果您想隐藏浏览器窗口中的输出,最好移至此。与 一样GET,浏览器将始终直接显示输出。

但请注意,如果有人想查看 API 响应,他们仍然可以使用 JS 模拟 API 调用并在浏览器控制台中查看响应,或者使用 Postman 等客户端来获取响应。如果他们有适当的令牌,他们总是可以检查你的响应,没有办法绕过它。

我相信它在新选项卡中也能工作,因为用户已登录,并且 JWT 令牌以可从新选项卡访问的方式存储在 cookie / localstorage / 中。并且您的服务器也能够访问它。

如果您使用 JS 应用程序(可能是 React?)发送令牌,并调整您的服务器每次都通过请求标头接受令牌,在这种情况下,仅打开该 url 将不再有效,因为它将在其中丢失令牌请求标头。


查看完整回答
反对 回复 2023-07-26
  • 2 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信