宁波网站建设咨询:宁波网站建设
13780026116 宁波网站制作
网站公告
PHP技术
技术交流
网络推广
网站建设常见问答
殷雯动态
你的位置:首页> 新闻/观点 > 技术交流>thinkphp之空模块操作action
技术交流
thinkphp之空模块操作action

意思很简单,就是当调用的模块不存在时,怎么去处理?我们通过代码级别来分析,打开 TP/Lib/Core/App.class.php文件:
\"\"
 
第一步,它先查找有没有 __hack_module 这个方法。默认是没有的。我们可以定义这个函数,然后通过这个函数来实例化一个模块(比如说,我们可以写一个错误提示模块)。

第二步,假如没有 __hack_module 这个方法,那么,它会查找有没有 EmptyAction.class.php 模块。这时,那我们就可以定义一个EmptyAction.class.php模块来调用,防止报错。

实例演示
在 orange/lib/action/下,创建一个模块EmptyAction.class.php。当输入的模块不存在时,便会调用该模块。这里,我同时创建了一个空方法 _empty(),当模块和方法都不存在时,便会调用。

php class EmptyAction extends Action{ public function index(){ echo \"你输入的模块不存在,哈哈\"; } public function _empty(){ echo \"你输入的模块和方法都不存在,真悲剧\"; } } ?>

我们在地址栏输入:
(1)http://localhost/orange/index.php/Username/                 //没有Username这个模块
(2)http://localhost/orange/index.php/Username/haha/       //模块Username,方法haha,都不存在
不过话说回来 ,thinkphp有是app_debug模式的,就是调试模式。 如果关闭了调试模式,这种空模块操作也不会给网站带来暴露信息的漏洞机会。  一般页面是空白处理。  黑客同样没有可乘之机。

点击:  1522    时间: 2017-03-17
上一条: 行业趋势
下一条: iframe刷新父页面
 
 
快速通道: 关于我们    网站建设    主机域名    付款方式    我的声明
  
联系我们
手机扫描QQ
网站建设咨询:
咨询热线:
宁波殷雯网站建设工作室
地 址: 浙江省宁波市江东区
电 话: 13780026116 
邮 箱:
waichun@qq.com
宁波网站建设
宁波网站制作
13780026116
宁波殷雯网站建设工作室 版权所有   浙ICP备16030041号-1