怎么防止php文件非正常调用 有很多方法,说两个简单的吧。。一是用HTTP_REFERER判断页面的来路,如果不是连接进来的,就不做任何动作。二是第一个页面post一个变量,第二页只有接收到变量才可以。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在文件头部,加上:if(!$_SERVER['HTTP_REFERER']) die("<h1>Access Denied</h1>"); 这个所有程序最基本的问题,非php也不例外检查变量 + 检查提交方法 + 检查提交来源最后一个需要一点技巧,一般前两个就足够了 在A中加个隐藏域,在B中判断是否A页提交 在a.php里加上@define( "ROOT", "abc" ); //具体写什么随便你然后在b.php开头部分加上if(!defined("ROOT")){die('System Halt.');}这样就可以了 我找了一遍,没找到好办法.楼上几位所说都有一定漏洞:1.用一个隐藏域来post,如果有人分析了A页的代码,他也可以随意post那个变量,不管A页是什么文件,php,html也好,最终总是解析为html,总是可以看到隐藏域.2.用$_SERVER["HTTP_REFERER"]并不总有效,php手册提到这个全局变量有时会失效.3.!浪子快刀! 所说在两个文件都是php时有效, 但是如果A页是html,就瞎了.找了一圈还真没找到什么好办法.再次说明,A为html,B为php. --------------------------------------------------------A为html,B为php.......比如:A页调用了B.php,然后B.php根据A提交的数据写文件.那如果有人直接在浏览器输入了B.php,那不是要写很多没用的信息吗?怎么做到B.php直接被调用时, 什么也不做呢?--------------------------------------------------------这个俺还真不会。 同 lzkd(浪子快刀) 的方法。一般PHP程序都这么处理,其实不仅限于PHP程序。 这个是没有任何办法解决的,要是对付菜鸟的,A设置cookie,B验证cookie是否正确。其实你自己都说了,但不管你A怎么设置,因为A是HTML,别人都可以分析A来调用你的B.PHP。把A做成PHP吧。 php文字转化为阿拉伯数字 求一个thinkPHP的教程 大家看一下163博客使用的是什么技术? 求一个算法,得到输入IP在指定的范围内 上传文件问题。。。 同志们,PHP如何清除服务器缓存? 有关数组概念的一个问题 php分页显示。 ADOdb的一个小问题,另外,请大家谈谈用它开发项目吗? 在PHP中有没有表示“千分位”的函数呢?怎么实现呢 这个是什么要求啊? 用活动脚本生成静态页面根本没有意义!
if(!$_SERVER['HTTP_REFERER'])
die("<h1>Access Denied</h1>");
最后一个需要一点技巧,一般前两个就足够了
@define( "ROOT", "abc" ); //具体写什么随便你然后在b.php开头部分加上
if(!defined("ROOT")){die('System Halt.');}这样就可以了
1.用一个隐藏域来post,如果有人分析了A页的代码,他也可以随意post那个变量,不管A页是什么文件,php,html也好,最终总是解析为html,总是可以看到隐藏域.2.用$_SERVER["HTTP_REFERER"]并不总有效,php手册提到这个全局变量有时会失效.3.!浪子快刀! 所说在两个文件都是php时有效, 但是如果A页是html,就瞎了.找了一圈还真没找到什么好办法.再次说明,A为html,B为php.
A为html,B为php.
......
比如:A页调用了B.php,然后B.php根据A提交的数据写文件.
那如果有人直接在浏览器输入了B.php,那不是要写很多没用的信息吗?
怎么做到B.php直接被调用时, 什么也不做呢?
--------------------------------------------------------
这个俺还真不会。
其实你自己都说了,但不管你A怎么设置,因为A是HTML,别人都可以分析A来调用你的B.PHP。
把A做成PHP吧。