手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年11月的文章

[转]老王:如何安全的include文件

大多数人会将一个单独的php文件当成配置文件,早些年的配置文件大多类似这样:

PHP代码
  1. <?php  
  2. $config['a']=1;  
  3. $config['b']=2;  

这样include后。可以使用$config变量了,但慢慢的,却越来越发现这样不太好,于是就有了这种

PHP代码
  1. <?php  
  2. return array(  
  3. 'a'=>1,'b'=>2  
  4. );  

这时候只要写$config = include('config.php'),就相当于和上面一样了。然后老王讲的就是指第二种情况。

原文在:http://huoding.com/2014/02/25/329

他举的例子是:

PHP代码
  1. <?php  
  2.   
  3. $debug = false;  
  4. // ...  
  5. $config = include 'config.php';  
  6. // ...  
  7. if ($debug) {  
  8.     phpinfo();  
  9. }  

如果config.php里万一写了$debug=true;那么就会造成phpinfo()被输出了,与实际预料就有了偏差了。那么怎么安全的include呢?

老王说:

PHP代码
  1. $config = call_user_func(function() {  
  2.     return include 'config.php';  
  3. });  

这样就利用局部变量把里面的一些可能污染外部的变量控制在匿名函数的作用域里。

然后我自己也测试了一下,确实。即使用$GLOBALS,也没有影响,而单独的php文件,如果你不是function ,也不能直接global $debug;这样是语法错误的。

所以。。。。如果为了安全,你还是和老王学一下吧。。。

Tags: include

可恶的APPFOG

这个收购了(或者说合并了)phpfog的网站,原来支持8个实例。2G内存。

半年前更新后,就不再允许免费绑定域名,而这两天更新后,居然只支持2个实例,512M内存。一下子我就不知道该怎么绑了。要知道,我原来分配的实例可是内存不少的,我也把static都移到了新加坡节点,现在倒好,动不动就挂掉了。

APPFOG这样的网站,果然还是靠不住啊。这年头,目前看来能靠的住的还是linode。

Tags: appfog, phpfog

惊心动魄30分钟

这事儿需要从头说起。下午的时候,我启动终端的时候,突然出了这个错误:

大小: 29.76 K
尺寸: 500 x 322
浏览: 1752 次
点击打开新窗口浏览全图

怎么重启都无效,纠结,要知道大部分操作都在终端下面啊,比如我连接远程,比如我git,比如我。。。。。一下子整个世界都灰暗了不少

这时候觉醒说:

XML/HTML代码
  1. That post was just over a year ago !!!! Hahahah I don't know however - but I'm repairing my disk permissions now !!!!  

他找到了原因,网上搜索到的。说是修复一下权限就好了,于是我开始修复权限。发现果然有问题:

大小: 45.54 K
尺寸: 448 x 205
浏览: 1414 次
点击打开新窗口浏览全图

再次试试,果然就正常了。顺便我还注意到了。我好象swap功能没打开。所以还得再开始这玩意。

git 如何同时提交到多个版本库?

如果你维护了多个git在线平台的版本库,你就会遇到,如何将一份代码在push的时候推到所有的版本库呢?

其实命令行就可以了:
XML/HTML代码
  1. git remote add origin git@git.xxxxx.com:gouki/code.git  
有几条就执行几次。最后:git push -u origin master即可。
 
参考:
  1. http://segmentfault.com/q/1010000000367632
  2. http://blog.codepiano.com/2013/07/03/push-multi-remote-repositories/
 
 

Tags: git

git 如何处理大文件加入版本库

 在使用git做为版本库的时候,遇到一个问题,那就是超大文件无法上传。git我不仅仅是拿来做代码的备份,甚至一些文档,我也拿它来处理,所以这些带有图片的文档就让我很郁闷了。它们可是都有着30M左右,甚至更大。怎么办?

其实很简单,在项目的.git/config里加入:

XML/HTML代码
  1. [pack]  
  2. threads = 1  
  3. deltaCacheSize = 128m  
  4. packSizeLimit = 128m  
  5. windowMemory = 128m  
  6. [core]  
  7. packedGitLimit = 128m  
  8. packedGitWindowSize = 128m  
如果这个大小你觉得还不够。你还可以更调大一点。这回就没大事喽。

Tags: git