我有一个php文件,我将作为一个包含专门使用.因此,当我通过输入URL而不是包含它来直接访问它时,我想抛出一个错误而不是执行它.
基本上我需要在php文件中进行如下检查:
if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");
Run Code Online (Sandbox Code Playgroud)
是否有捷径可寻?
如何阻止我的用户直接访问仅适用于ajax调用的页面?
在ajax调用期间传递密钥似乎是一种解决方案,而不使用密钥的访问将不会被处理.但是制作钥匙也很容易,不是吗?观点诅咒......
p/s:使用Apache作为webserver.
编辑:为了回答原因,我在index.php中有jQuery ui-tabs,并且这些选项卡内部是带有脚本的表单,如果直接访问它们将无法工作.为什么用户会想要这样做,我不知道,我只是想通过阻止直接访问没有验证脚本的表单来提高用户友好性.
我有一个wordpress网站,我从godaddy密封中得到一个错误.我在我的网站页脚的小部件部分中有验证图像的html.
当我重新加载页面并检查firebug时,我在控制台中收到此错误.
跨源请求已阻止:同源策略不允许在https://seal.godaddy.com/setSealAttr?sealID=ID#上读取远程资源 .这可以通过将资源移动到同一域或启用CORS来解决.
我试图查找有关这个问题的信息,这有点过头了.任何人都可以告诉我什么是抛出这个错误以及我如何解决这个问题?我只是想了解这个错误是如何发生的.这是某个地方与jquery的冲突问题,还是密封加载的方式或者加载时间?
任何帮助将不胜感激.
我有一个JSON Web服务来返回要在我的Google地图上显示的家庭标记.
从本质上讲,http://example.com调用Web服务来找出所有地图标记的位置,如下所示:
http://example.com/json/?zipcode=12345
Run Code Online (Sandbox Code Playgroud)
它返回一个JSON字符串,例如:
{"address": "321 Main St, Mountain View, CA, USA", ...}
Run Code Online (Sandbox Code Playgroud)
所以在我的index.html页面上,我接受了JSON字符串并放置了地图标记.
但是,我不希望发生的是人们直接呼叫我的JSON Web服务.
我只想http://example.com/index.html打电话给我的http://example.com/json/网络服务...而不是一些随意的老兄/json/直接打电话.
Quesiton:我如何阻止直接呼叫/访问我的http://example.com/json/网络服务?
更新:
为了更清晰,http://example.com/index.html请调用http://example.com/json/?zipcode=12345...和JSON服务
- 返回半敏感数据,
- 返回JSON数组,
- 响应GET请求,
- 使请求启用JavaScript的浏览器
同样,我不希望发生的是人们只是查看我的index.html源代码然后直接调用JSON服务.
我想使用post来更新数据库并且不希望人们手动执行它,也就是说,它应该只能通过客户端中的AJAX来实现.在这种情况下是否有一些众所周知的加密技巧?
假设我发出一个GET请求,将新用户插入我的数据库中site.com/adduser/<userid>.有人可能通过发出虚假请求来过多填充我的数据库.
我试图拒绝直接url访问一个调用ajax进行表单验证的php文件.我目前的代码一直工作,直到表单验证,然后它不起作用.我不想使用.htaccess.
当前代码:
<?php
$url = strtolower(basename($_SERVER['PHP_SELF'])); // Gets url (parent that uses the include)
$fil = strtolower(basename(__FILE__)); // gets filename (the included file)
if ($url == $fil){
// if they are the same (file is accessed through url
// redirect to forbidden page
header("HTTP/1.0 403 Forbidden");
exit;
}
// require my configuration
require_once("config.php");
// code to be executed for ajax validation
$username = $_POST['username'];
$conn = mysql_connect(DB_HOST,DB_USER,DB_PASS) or die(mysql_error());
mysql_select_db(DB_NAME,$conn) or die(mysql_error());
$query = mysql_query("SELECT * FROM " . TB_USER …Run Code Online (Sandbox Code Playgroud)