【发布时间】:2014-06-08 11:38:50
【问题描述】:
当使用 GET 方法接收 JSON 数据时,我们可以直接从 Web 浏览器访问结果,例如,我将 mydata 值从 ajax 发送到 main.php 文件,它会处理并获得答案,显示结果如下所示:
<?php
if (isset($_GET["mydata"])) {
if ($_GET["mydata"]=="hello"){
echo "hello world";
}
}
?>
但是当用户直接在浏览器中调用它时,比如http:mysite.com/mydata.php?mydata=hellorecive answer。我不想让用户直接得到http请求的答案,而只能从主页的ajax结果中显示出来,可以吗?
【问题讨论】:
-
我认为不可能完全阻止用户直接访问该页面 - 例如,您可以检查是否已发送
Referer标头(如果页面被访问为AJAX 调用的结果),但高级用户可以轻松绕过它。 -
如何安全地从我的 Web 部件发送数据?
-
定义什么是“用户”。对于您的服务器,“用户”是发送 HTTP 请求的任何东西。任何东西都可以发送 HTTP 请求。作为 AJAX 或手动发送的 HTTP 请求没有区别。您无法隐藏对公共 API 的 HTTP 请求的详细信息。你为什么首先要这样做?你要保护什么?
标签: php ajax httprequest