Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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
Javascript 服务器的安全ajax获取/发布请求_Javascript_Php_Jquery_Ajax_Get - Fatal编程技术网

Javascript 服务器的安全ajax获取/发布请求

Javascript 服务器的安全ajax获取/发布请求,javascript,php,jquery,ajax,get,Javascript,Php,Jquery,Ajax,Get,假设我使用某种API,我的文件server.php处理与API服务的连接。在客户端,我使用如下AJAX调用: $http({ url : 'server/server.php', method : 'GET', data : { getContent : true } }); 在我的server.php中,我是这样处理的: if(isset($_GET['getContent'])){ $content = get_con

假设我使用某种API,我的文件server.php处理与API服务的连接。在客户端,我使用如下AJAX调用:

$http({
         url : 'server/server.php',
         method : 'GET',
         data : { getContent : true }
     });
在我的server.php中,我是这样处理的:

if(isset($_GET['getContent'])){
    $content = get_content();
}

function get_content(){...}
我只是想知道是什么阻止了任何一个使用相同的getContent参数发送AJAX调用并获取我的所有数据?我如何保护它,并确保只有来自我的应用程序的调用才能获得相关数据


谢谢大家!

我想你担心的是CSRF攻击。请在此处阅读更多信息:

保护您的请求最常用的选项之一是: -生成令牌并将其与会话请求一起发送。Web服务器可以将此令牌标识为来自特定会话的特定客户端

我只是想知道是什么阻止了任何一个使用相同的getContent参数发送AJAX调用并获取我的所有数据

没什么。此URL是公共的,因此任何人都可以向其发出请求

我如何保护它,并确保只有来自我的应用程序的调用才能获得相关数据

您可以传递在服务器端验证的附加数据(例如,一些散列值)

$http({
     url : 'server/server.php',
     method : 'GET',
     data : { getContent : true, hash : '0800fc577294c34e0b28ad2839435945' }
 });

我只是想知道是什么阻止了任何一个使用相同的getContent参数发送AJAX调用并获取我的所有数据

与在任何其他请求中保护数据的方式相同(例如,通过用户身份验证)。就服务器而言,Ajax在HTTP方面没有什么特别之处

我如何保护它,并确保只有来自我的应用程序的调用才能获得相关数据

你不能。用户可以随时检查他们的浏览器向服务器请求什么,并复制它

通常,人们对用户而不是应用程序进行身份验证

if(isset($_GET['getContent']))
{
    if(isset($_GET['hash']) && validateHash($_GET['hash']))
    {
        $content = get_content();
    }
}

function get_content(){...}