大多数人会将一个单独的php文件当成配置文件,早些年的配置文件大多类似这样: ?php?? $config['a']=1;?? $config['b']=2;?? 这样include后。可以使用$config变量了,但慢慢的,却越来越发现这样不太好,于是就有了这种 ?php?? return?array(?? 'a'=1,'b'=2?
大多数人会将一个单独的php文件当成配置文件,早些年的配置文件大多类似这样:
<?php ?? $config['a']=1;?? $config['b']=2;??
这样include后。可以使用$config变量了,但慢慢的,却越来越发现这样不太好,于是就有了这种
<?php ?? return?array(?? 'a'=>1,'b'=>2?? );??
这时候只要写$config = include('config.php'),就相当于和上面一样了。然后老王讲的就是指第二种情况。
原文在:http://huoding.com/2014/02/25/329
他举的例子是:
<?php ?? ?? $debug?=?false;?? //?...?? $config?=?include?'config.php';?? //?...?? if?($debug)?{?? ????phpinfo();?? }??
如果config.php里万一写了$debug=true;那么就会造成phpinfo()被输出了,与实际预料就有了偏差了。那么怎么安全的include呢?
老王说:
$config?=?call_user_func(function()?{?? ????return?include?'config.php';?? });??
这样就利用局部变量把里面的一些可能污染外部的变量控制在匿名函数的作用域里。
然后我自己也测试了一下,确实。即使用$GLOBALS,也没有影响,而单独的php文件,如果你不是function ,也不能直接global $debug;这样是语法错误的。
所以。。。。如果为了安全,你还是和老王学一下吧。。。
原文地址:[转]老王:如何安全的include文件, 感谢原作者分享。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1
好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版