Javascript 服务器的安全ajax获取/发布请求
假设我使用某种API,我的文件server.php处理与API服务的连接。在客户端,我使用如下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
$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(){...}