快速业务通道

编写PHP的安全策略

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
中的Options Indexes FollowSymLinks改为:Options Indexes FollowSymLinks Includes 即可。
 


6、使用Apache的suEXEC机制

通常CGI程序或PHP脚本只能以启动web服务器的用户权限来运行(通常为www或nobody),这样会出现的情况之一是可以读写和修改由另一个用户的CGI和PHP脚本生成的文件(如脚本和密码文件)。也可能使用户可以连接到其他用户的数据库,但这与数据库的配置有关。如MySQL的默认配置便是允许的,但可以通过强制数据库进行口令验证来弥补此不足。PHP的safe—mode减少了这些问题,但所有的脚本仍然以相同的用户标识运行。Apache可以解决这个问题。suEXEC(在执行前改变用户标识)是一个小工具,允许以任意用户标识运行CGI程序,当然也包括PHP脚本,但根用户除外。而且可以和UseDir和VirtualHost项一起使用。

所以suEXEC也叫CGI封装。这意味着在脚本运行之前它需要通过一系列规定的安全检查。随Apache2。0版发布的suEXEC有26个检查点。suEXEC能解决一些安全问题,同时允许用户开发和更安全地执行自己的脚本。但是suEXEC会降低服务性能,因为suEXEC只能运行在CGI版本的PHP上,而CGI版本比模块版本运行速度慢。原因是模块版本使用了线程,而使用CGI版本的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。使用suEXEC的另外一个问题是它增加了编写和使用PHP脚本的难度。你要确保脚本能通过suEXEC的检验。否则,你的脚本不会被执行。我们建议在你对安全性能要求比较高时使用suEXEC ,为此你还要以牺牲速度为代价。

7、创建安全的PHP脚本

有很多编程技巧使PHP脚本更安全地运行。其中最重要的一条是使用一些安全常识。运行PHP比运行CGI脚本更安全,但它仍然有许多出现错误的地方。转换到安全运行模式能够限制出错所产生的结果。如果你的PHP脚本中有错误,可能会被人找到并且利用它来破坏站点甚至数据库。所以经常备份也是必要的。


(1)安全设置软件

基于Web的应用程序,如在线目录,通常都在无人密切监视的情况下运行。如果发生错误时,你不可能立即采取行动。通常访问者最先注意到所发生的问题,你应该使他们很容易地报告所发生的问题。更进一步,可以由构成这个网站的脚本来跟踪这些问题。例如,你的访问者可能做一些你想不到的事情。也可能你对于重要函数所返回值没有检查,脚本可能会以不可预料的方式运行。

写出更加安全的程序,就可以避免这些问题。例如你应该检查数据库函数的返回值,如果数据库崩溃,显示给用户的应该是出错的信息页面而不是满屏幕的错误。你甚至可以让脚本在发生严重问题,如数据库崩溃、硬盘空间已满的时候自动通知你。你也应该检查从用户传来的所有数据。显然后者更重要。 如果你的程序能够应付各种错误,那么你的程序不仅更加可靠,而且可以花更少的时间来维护。这些时间可大大弥补你开发程序时所花的额外时间。


(2)存储和交换敏感信息

显然,你应尽量避免在互联网上以GET、POST、cookie或URL编码的形式传递敏感信息,这样使信息很容易被窃取。使用支持SSL的web服务器能够做到这一点,因为它加密站点和访问者浏览器之间所有的信息流。

如果你没有支持SSL的Web服务器,那么你需要其他的办法。比如没有必要总是发送数据到浏览器;把数据保存在数据库中,只向浏览器发送关键字,这样也很容易查找到所需要的数据;并以加密的形式发送所有的数据等等。实现这种功能的最简单的办法是使用Session。 PHP4支持本地化的Session功能,PHP3则要使用PHPMB库。

HTTP 协议是一种无状态协议,它不负责为好连接的状态信息,因此无法跟踪客户端的各种信息,Session的出现改变这一状况。当用户浏览一个支持Session功能的CGI脚本时,在他离开这个网页前可以将用户信息保存在

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号