[tr][td] 关于PW后台安全还有很多,比如 隐藏Data 增强网站安全性,data目录隐藏功能设置详解,大家可以看看。比如安全问题设置,登录后台的用户必须有安全问题验证,比如前后台帐号分开,即使前台是管理员,可能后台都进不去。比如后台管理地址可以任意更改,默认是admin.php,如果你直接改为: '我不知道.php',猜想你的后台地址也要耗精力,而你修改仅仅是键盘输入加一个回车就搞定。。。。。
不过今天不说后台安全,更多的等待大家挖掘,说说文件读写删,文件读、写、删除、判断文件存在的安全 (readover、writeover、unlink、file_exists),可以看下这两个函数的讲解:{0828}PW读写函数之writeover{0208} {0829}PW读写函数之readover{0209} function writeover($filename,$data,$method='rb+',$iflock=1,$check=1,$chmod=1){ //Copyright (c) 2003-09 PHPWind $check && strpos($filename,'..')!==false && exit('Forbidden'); touch($filename); $handle = fopen($filename,$method); $iflock && flock($handle,LOCK_EX); fwrite($handle,$data); $method=='rb+' && ftruncate($handle,strlen($data)); fclose($handle); $chmod && @chmod($filename,0777); } PW在用这些函数的时全部禁止../ 的提交,当你执行如下片段的时候 $read=readover('../../licence.txt','rb'); writeover('../../aaa.txt',$read); 只会给你一个大 Forbidden,这样在某种程度来说可以保证了构造注入的安全。并且这里也建议插件开发的朋友,在开发插件的时候即使你不用writeover,也别用到../ 目录层方式来提交数据。在一些邮件程序里经常会在这个BUG,如http://www.moke8.com/file.php?id=9&put=list&tid=1&file=./ ,要是把file这个变量换成./../甚至更上层呢?目录就这样被遍历了。 说的遍历目录,还想到一个反斜杆的问,对于/和的过滤这个问题程序员应该很常见,很容易忽略很容易出问题,不怕过滤时漏掉什么,而是怕你想不起要去过滤。 在国外流行一句话叫:All puts is invalid。也许真的就是这样,所有输入都是有害的。 当然!~,程序安全还要以服务器安全为前提,如果FTP或者root权限都被人知道了,谈程序安全就没有什么意义了。 时间关系,今天的抛砖引玉就写到这里,有空将继续和大家分享:include(),require()和fopen(),include_once(),require_once(),这些都可以远程调用文件,对于它们的危害,google搜一下你就会很明了。 注:一些相关PHP安全大家可以查看谷歌,本文的部分资料参考网络。 </strong> [/td][/tr] |
|