Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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
Php AJAX安全问题_Php_Javascript_Ajax_Security - Fatal编程技术网

Php AJAX安全问题

Php AJAX安全问题,php,javascript,ajax,security,Php,Javascript,Ajax,Security,我希望澄清一些关于AJAX安全性的问题。所以这里有一个场景,我正试图把我的头绕过去 假设我正在使用AJAX向页面请求一些半敏感材料。例如,我将把用户的ID传递给一个php文件,并返回一些关于他们自己的信息。现在,是什么阻止人们模拟这个Javascript请求,并向PHP脚本传递不同的ID 服务器是否采取了任何措施来防止这种情况发生 DOM是否识别“最初”存在的Javascript, 或者由服务器编写,而不是客户端Javascript 使用AJAX请求敏感材料时还有哪些安全问题 我使用的是SUP

我希望澄清一些关于AJAX安全性的问题。所以这里有一个场景,我正试图把我的头绕过去

假设我正在使用AJAX向页面请求一些半敏感材料。例如,我将把用户的ID传递给一个php文件,并返回一些关于他们自己的信息。现在,是什么阻止人们模拟这个Javascript请求,并向PHP脚本传递不同的ID

  • 服务器是否采取了任何措施来防止这种情况发生
  • DOM是否识别“最初”存在的Javascript,
    或者由服务器编写,而不是客户端Javascript
  • 使用AJAX请求敏感材料时还有哪些安全问题
  • 我使用的是SUPPP,在这种情况下会有任何影响吗

Ajax调用与您发出的任何其他HTTP请求完全相同,只是它是异步的(不会重新加载web浏览器)。因此,您应该使用您当前在web站点上使用的任何身份验证


这可能是Windows集成安全性、Cookie等。基本上,PHP脚本只需验证请求是否来自应用程序的有效用户。

AJAX本质上是不安全的。您不能既使资源可供远程使用,又使其完全安全。没有100%可靠的方法来识别请求是来自客户端javascript还是有人伪造请求


最多,你可以让这类伪造变得更难/更乏味。

我很确定
AJAX
不能跨域访问
PHP
文件。你可以通过编写执行跨域内容的PHP脚本来解决这个问题,并将其交给AJAX这就是我在这里读到的?因此,如果请求只能在用户登录后发生,我是否应该在输出任何AJAX请求的PHP文件之前进行会话检查?如果是这样,就终止脚本?“没有100%可靠的方法来识别请求是来自客户端javascript还是有人伪造请求。”-当然有。浏览器将发送所有带有Ajax请求的cookie,在PHP端,您可以访问用户的$\u会话,因此您需要正常的身份验证,就像您在任何其他页面上一样。@andrewr:没有任何东西说用户不能伪造自己的请求,或者他们的会话令牌被盗,或者通过CSRF发出ajax请求。如果您知道cookie字符串是什么,您可以将其与伪造的请求一起发送。cookie只是一个特殊格式的请求头。@Marc B:AJAX和HTTP一样安全。可以应用于HTTP请求的任何安全性,同样也可以应用于AJAX请求。有一些(基于HTTP的)web应用程序被广泛认为是安全的,因此您可以构建一个同样被广泛认为是安全的AJAX应用程序。如果它是应用程序的有效用户,但他们试图伪造请求以获取其他用户的信息。。?此时,会话检查似乎毫无意义,因为它是一个试图利用应用程序的有效用户。如果他们试图访问另一个用户的数据,只需给他们拒绝访问的权限。您的脚本应该知道用户发出的请求(这是身份验证)以及他们请求的信息。