Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax、PHP和安全性?_Ajax_Security - Fatal编程技术网

Ajax、PHP和安全性?

Ajax、PHP和安全性?,ajax,security,Ajax,Security,我的问题是,假设在我的web应用程序中,我使用ajax调用服务器端的方法,这不是在应用程序中创建了一个安全漏洞吗?比如,假设我有一个选项让用户停用帐户,这可以通过单击按钮来完成。这是通过Ajax实现的 那么,难道黑客不能向服务器发送一个请求,以停用该帐户而不是用户吗? 救命啊 我的问题是,假设在我的web应用程序中,我使用ajax调用服务器端的方法,这不是在应用程序中创建了一个安全漏洞吗 从安全角度来看,涉及JavaScript的HTTP请求和不涉及JavaScript的HTTP请求(例如,使用

我的问题是,假设在我的web应用程序中,我使用ajax调用服务器端的方法,这不是在应用程序中创建了一个安全漏洞吗?比如,假设我有一个选项让用户停用帐户,这可以通过单击按钮来完成。这是通过Ajax实现的

那么,难道黑客不能向服务器发送一个请求,以停用该帐户而不是用户吗? 救命啊

我的问题是,假设在我的web应用程序中,我使用ajax调用服务器端的方法,这不是在应用程序中创建了一个安全漏洞吗

从安全角度来看,涉及JavaScript的HTTP请求和不涉及JavaScript的HTTP请求(例如,使用常规表单或手工编制)之间没有区别

…但不能从客户端调用方法,只能向URI发出请求。服务器可能会根据接收到对特定URI的请求来调用方法

那么,难道黑客不能向服务器发送一个请求,以停用该帐户而不是用户吗


它们可以,这就是为什么您需要(可信的)身份验证/授权和保护(就像您请求禁用不涉及Ajax的帐户一样)。

这不仅仅是Ajax的问题,而是任何想要验证/维护会话的任意HTTP请求的问题。为了发出请求,用户需要以某种方式进行身份验证,这通常是通过cookie完成的。不过,使用AJAX并不会让事情变得更糟,因为它仍然是一个HTTP请求

但是,仅凭身份验证是不够的,有人可能总是在监听线路并捕获身份验证cookie,从而获得会话-“成为你”。这里唯一的解决方案是在较低的OSI层级别(使用SSL/TLS)加密连接。这就是为什么在进行身份验证时应该始终使用SSL。

这对如何处理可能被利用的AJAX请求有很好的解释。它不是特定于RoR的,因此这些概念可以应用于任何平台


降低跨站点请求风险的一种方法是使用POST进行修改或删除数据的操作。

POST应用于防止意外修改/删除数据……但它不能提供任何针对CSRF的重要保护。