javascript - ajax REST API 安全性防止客户端劫持

标签 javascript jquery ajax

我正在构建一个充值系统,用户可以在其中支付一些费用,一些积分将进入他们的电子钱包。但后来我发现如果登录的用户足够聪明,他可以触发ajax并转储任何值。

我该如何防止这种情况发生?因为任何用户都可以打开开发工具并执行发布请求。

最佳答案

您需要先设置 SSL,不要在 URL 中传递参数,并尽可能使用 CSP。 OWAP 网站专门从事这方面的工作,提供了许多关于如何实现您所需的有用指南。

CSP

OWASP

更新

我看来这需要更多解释。您所描述的帽子是 XSS 攻击,很可能属于浏览器中的人或 CSRF(跨站点请求伪造)类别。您可以通过首先确保您的站点使用 SSL 来帮助防止这种情况。 SSL 使用 https 协议(protocol)。该协议(protocol)允许服务器和应用程序在初始握手后设置商定的安全加密。之后发生的所有交易都发生在已建立的安全层上; SSL。顶级浏览器正在插入网络应用程序强制执行此操作,尤其是当您通过网络进行金融交易时。

SSL certificates explained 奥 git _a Google Will Soon Shame All Websites That Are Unsecured

CSP 允许您指定特定的域和来源。 Man-in-the-browser attack

您还可以使用 CORS 设置可接受的 http header 。

这是一个例子:

HTTP/1.1 200 OK
Content-Type:application/json; charset=utf-8
Access-Control-Allow-Headers: Content-Type,Authorization
Access-Control-Allow-Methods: GET,POST,PUT
Access-Control-Allow-Origin: https://www.bobank.com
[
  { id: 456346436, ... }
]

Introducing Content Security policy

.NET 中的 CSP Your API-Centric Web App Is Probably Not Safe Against XSS and CSRF

.NET 中的 CORS Content Security Policy (CSP) for ASP.NET MVC

关于javascript - ajax REST API 安全性防止客户端劫持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39945866/

相关文章:

javascript - 对于每个函数。先对 2 做一些事情,然后再对其余的做其他事情?

javascript - 了解事件驱动的编程风格

javascript - 值未在表 Angular 中呈现

javascript - 如何使用PHP将地理位置信息发送到服务器?

javascript - WordPress 网站上的插件未捕获 JQuery TypeError(帖子中的网站)

javascript - 使用Php,mySql,ajax,(xmlhttp)和JS,我如何创建一个php多维并将其发送到JS并使用它?

javascript - 客户端 JavaScript 中使用了模块吗?

javascript - Jasmine 测试 - 如何测试正在应用的 css 类?

C# AntiForgeryToken 属性在 mvc 应用程序中导致 StackOverflowException

asp.net - asp.net 中基于 Web 的聊天,使用 ajax 计时器,是否会为大量用户执行