Ajax、PHP和安全性?
我的问题是,假设在我的web应用程序中,我使用ajax调用服务器端的方法,这不是在应用程序中创建了一个安全漏洞吗?比如,假设我有一个选项让用户停用帐户,这可以通过单击按钮来完成。这是通过Ajax实现的 那么,难道黑客不能向服务器发送一个请求,以停用该帐户而不是用户吗? 救命啊 我的问题是,假设在我的web应用程序中,我使用ajax调用服务器端的方法,这不是在应用程序中创建了一个安全漏洞吗 从安全角度来看,涉及JavaScript的HTTP请求和不涉及JavaScript的HTTP请求(例如,使用常规表单或手工编制)之间没有区别 …但不能从客户端调用方法,只能向URI发出请求。服务器可能会根据接收到对特定URI的请求来调用方法 那么,难道黑客不能向服务器发送一个请求,以停用该帐户而不是用户吗Ajax、PHP和安全性?,ajax,security,Ajax,Security,我的问题是,假设在我的web应用程序中,我使用ajax调用服务器端的方法,这不是在应用程序中创建了一个安全漏洞吗?比如,假设我有一个选项让用户停用帐户,这可以通过单击按钮来完成。这是通过Ajax实现的 那么,难道黑客不能向服务器发送一个请求,以停用该帐户而不是用户吗? 救命啊 我的问题是,假设在我的web应用程序中,我使用ajax调用服务器端的方法,这不是在应用程序中创建了一个安全漏洞吗 从安全角度来看,涉及JavaScript的HTTP请求和不涉及JavaScript的HTTP请求(例如,使用
它们可以,这就是为什么您需要(可信的)身份验证/授权和保护(就像您请求禁用不涉及Ajax的帐户一样)。这不仅仅是Ajax的问题,而是任何想要验证/维护会话的任意HTTP请求的问题。为了发出请求,用户需要以某种方式进行身份验证,这通常是通过cookie完成的。不过,使用AJAX并不会让事情变得更糟,因为它仍然是一个HTTP请求 但是,仅凭身份验证是不够的,有人可能总是在监听线路并捕获身份验证cookie,从而获得会话-“成为你”。这里唯一的解决方案是在较低的OSI层级别(使用SSL/TLS)加密连接。这就是为什么在进行身份验证时应该始终使用SSL。这对如何处理可能被利用的AJAX请求有很好的解释。它不是特定于RoR的,因此这些概念可以应用于任何平台
降低跨站点请求风险的一种方法是使用POST进行修改或删除数据的操作。POST应用于防止意外修改/删除数据……但它不能提供任何针对CSRF的重要保护。