php – 如何直接在URL中拒绝用户访问脚本

我有一个jQuery脚本使用.live()来加载它的页面内容.
$('#content').load("content.PHP?" + id);

问题:如何拒绝用户通过URL直接访问文件content.PHP

我试图将此代码放在content.PHP之上,但Access Denied出现在我的#content div中

if (!empty($_SERVER['SCRIPT_FILENAME']) && 'content.PHP' == basename($_SERVER['SCRIPT_FILENAME']))
    die('Access Denied');

确保用户无法使用URL访问我的content.PHP文件的正确方法是什么?

你可以使用某种散列.例如,如果content.PHP具有参数id;你添加一个额外的参数哈希,其中包含“’某个随机字符串’id * 15”的MD5哈希值.在content.PHP中,你检查哈希& id匹配;如果没有拒绝访问.

计算必须在PHP(而不是ajax)中完成,因为用户必须不知道散列algprithmus.

使用此方法,用户可以直接查找源代码并访问页面,但您不能完全禁止页面,因为浏览器需要访问页面才能显示它.但用户无法访问之前未通过ajax访问的页面.您可以使用一些标头(HTTP_X_REQUESTED_WITH)来阻止大多数互联网用户直接访问该页面,但有经验的用户无论如何都会更改标题并访问它.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...