软件应用程序安全开发指南(SDLC)(17)
2023-06-18 来源:飞速影视
它自己目录下的文件了,否则PHP就会报错:
Warning:open_basedirrestrictionineffect.Fileisinwrongdirectoryinxxxonlinexx.
使用safe_mode模式也能避免这种问题,前面已经讨论过。
3.5.3.文件包含
要求程序员包含文件里的参数尽量不能使用变量,如果使用变量,就一
定要严格检查要包含的文件名,绝对不能由用户任意指定。如前面文件打开中限制PHP操作路径是一个必要的选项。另外,如非特
殊需要,一定要关闭PHP的远程文件打开功能。修改php.ini文件:
allow_url_fopen=Off
重启apache。
3.5.4.文件上传
PHP-4.0.3以后提供了is_uploaded_file和move_uploaded_file函数,可以
检查操作的文件是否是用户上传的文件,从而避免把系统文件拷贝到Web目录。
使用$HTTP_POST_FILES或$_FILES数组来读取用户上传的文件变量。严格检查上传变量。比如不允许是php脚本文件。
把PHP脚本操作限制在Web目录可以避免程序员使用copy函数把系统
文件拷贝到Web目录。move_uploaded_file不受open_basedir的限制,所以不必修改php.ini里upload_tmp_dir的值。
把PHP脚本用phpencode进行加密,避免由于copy操作泄漏源码。严格配置文件和目录的权限,只允许上传的目录能够让nobody用户可写。
对于上传目录去掉PHP解释功能,可以通过修改httpd.conf实现:
<Directory/usr/local/apache/htdocs/upload>php_flagengineoff
#如果是php3换成php3_engineoff
</Directory>
重启apache,upload目录的php文件就不能被apache解释了,即使上传了php文件也没有问题,只能直接显示源码。
3.5.5.命令执行
解决方法:
要求程序员使用escapeshellcmd()函数过滤用户输入的shell命令。启用safe_mode可以杜绝很多执行命令的问题,不过要注意PHP的版本一定要是最新的,小于PHP-4.2.2的都可能绕过safe_mode的限制去执行命令。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号