当前位置:七道奇文章资讯系统安全Linux安全
日期:2012-02-08 20:15:00  来源:本站整理

Linux下PHP安全设置[Linux安全]

赞助商链接



  本文“Linux下PHP安全设置[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
PHP安全性设置提醒:
 
DocumentRoot: /var/www/
 
Default Web server: Apache
 
Default PHP configuration file: /etc/php.ini
 
Default PHP extensions config directory: /etc/php.d/
 
Our sample php security config file: /etc/php.d/security.ini (you need to create this file using a text editor)
 
Operating systems: Ubuntu (the instructions should work with any other Linux distributions such as RHEL / CentOS / Fedora or other Unix like operating systems such as OpenBSD/FreeBSD/HP-UX). 
 
 
1. 削减PHP内置模块
 
为了加强性能和安全性,激烈倡议,削减PHP中的模块.来看看下面这个被履行号令安装的模块.
 
# php –m 
 
你将会得到近似的后果:
 
[PHP Modules]
 
apc
 
bcmath
 
bz2
 
calendar
 
Core
 
ctype
 
curl
 
date
 
dom
 
ereg
 
exif
 
fileinfo
 
filter
 
ftp
 
gd
 
gettext
 
gmp
 
hash
 
iconv
 
imap
 
json
 
libxml
 
mbstring
 
memcache
 
mysql
 
 
openssl
 
pcntl
 
pcre
 
PDO
 
pdo_mysql
 
pdo_sqlite
 
Phar
 
readline
 
Reflection
 
session
 
shmop
 
SimpleXML
 
sockets
 
SPL
 
sqlite3
 
standard
 
suhosin
 
tokenizer
 
wddx
 
xml
 
xmlreader
 
xmlrpc
 
xmlwriter
 
xsl
 
zip
 
zlib
 
[Zend Modules]
 
Suhosin 
 
删除一个模块,并履行此号令.比方:删除模块sqlite3
 
# rm /etc/php.d/sqlite3.ini   
 
大概
 
# mv /etc/php.d/sqlite3.ini /etc/php.d/sqlite3.disableRestrict 
 
 
 
2. 使PHP信息泄露最小化
 
在默许PHP时在HTTP昂首处会生成一条线介于每个呼应中,(比方X-Powered-By: PHP/5.2.10).而这个在系统信息中为攻击者成立了一个非常有代价的信息.
 
HTTP示例:
 
HTTP/1.1 200 OK  
 
X-Powered-By: PHP/5.2.10  
 
Content-type: text/html; charset=UTF-8  
 
Vary: Accept-Encoding, Cookie  
 
X-Vary-Options: Accept-Encoding;list-contains=gzip,Cookie;string-contains=wikiToken;  
 
string-contains=wikiLoggedOut;string-contains=wiki_session 
 
Last-Modified: Thu, 03 Nov 2011 22:32:55 GMT  
 
... 
 
因此,我们激烈倡议,禁止PHP信息泄露,想要要禁止它,我们要编辑/etc/php.d/secutity.ini,并设置以下指令:
 
expose_php=Off 
 
 
 
3. 使PHP加载模块最小化
 
在默许情形下,RHEL加载的全部模块可以在/etc/php.d/目录中找到.要禁用或启用一个特定的模块,只需求在配置文件/etc /php.d/目录中中注释下模块名称.而为了优化PHP性能和安全性,当你的利用程序需求时,我们激烈倡议倡议启用扩大功效.举个例子:当禁用GD扩大 时,键入以下号令:
 
# cd /etc/php.d/  
 
 # mv gd.{ini,disable}  
 
 # /etc/init.d/apache2 restart 
 
为了扩大PGP GD模块,然后键入以下号令:
 
# mv gd.{disable,ini}  
 
 # /sbin/service httpd restart 
 
 
 
4. 记录PHP错误信息
 
为了提高系统和Web利用程序的安全,PHP错误信息不能被表暴露.要做到这一点,需求编辑/etc/php.d/security.ini 文件,并设置以下指令:
 
display_errors=Off 
 
为了便于开辟者Bug修复,全部PHP的错误信息都应当记录在日记中.
log_errors=On 
 
 error_log=/var/log/httpd/php_scripts_error.log  
 
 
 
 5. 禁用远程履行代码
 
假如远程履行代码,答应PHP代码从远程检索数据功效,如FTP或Web通过PHP来履行构建功效.比方:file_get_contents().
 
很多程序员利用这些功效,从远程通过FTP或是HTTP协议而得到数据.但是,此法在基于PHP利用程序中会造成一个很大的漏洞.由于大部份程 序员在传送用户供应的数据时没有做到得当的过滤功效,翻开安全漏洞并且成立了代码时注入了漏洞.要办理此问题,需求禁用_url_fopen in /etc/php.d/security.ini,并设置以下号令:
 
allow_url_fopen=Off 
 
除了这个,我还倡议禁用_url_include以提高系统的安全性.
 
allow_url_include=Off 
 
 
 
6. 禁用PHP中的危险函数
 
PHP中有很多危险的内置功效,假如利用不当,它大概使你的系统崩溃.你可以成立一个PHP内置功效列表通过编辑/etc/php.d/security.ini来禁用它.
 
disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source 
 
 
 
7. 资源掌握
 
为了提高系统的安定性,激烈倡议设置每个脚本解析恳求数据所耗费的时间和脚本大概损耗的最大内存量.精确的配置这些参数可以避免PHP任何脚本损耗太多的资源或是内存,从而避免系统不安全或降低安全系数.
 
# set in seconds  
 
 max_execution_time = 30 
 
 max_input_time = 30 
 
 memory_limit = 40M 
 
 
 
8. 限制PHP拜候文件系统
 
 
 
该open_basedir指令指定的目录是答应PHP拜候利用fopen()等功效.假如任何脚本试图拜候超越open_basdir定义的途径文件,PHP将回绝翻开.值得注意的是,你不能利用一个标记链接作为一种变通办法.
 
 
 
; Limits the PHP process from accessing files outside  
 
; of specifically designated directories such as /var/www/html/  
 
open_basedir="/var/www/html/" 
 
; ------------------------------------  
 
; Multiple dirs example  
 
; open_basedir="/home/httpd/vhost/cyberciti.biz/html/:/home/httpd/vhost/nixcraft.com/html/:/home/httpd/vhost/theos.in/html/" 
 
; ------------------------------------ 
 
 
 
9.限制文件/目录拜候
 
 
 
举行得当的安全设置:确保Apache作为非root用户运行,比方www-data或www.关于文件和目录在基于/var/www/下一样属于非root用户.想要更改全部者,履行以下号令:
 
# chown -R apache:apache /var/www/ 
 
 
 
10.编译保护Apache,PHP和MySQL的配置文件
 
利用charrt号令编译保护配置文件
 
# chattr +i /etc/php.ini  
 
 # chattr +i /etc/php.d/*  
 
 # chattr +i /etc/my.ini  
 
 # chattr +i /etc/httpd/conf/httpd.conf  
 
 # chattr +i /etc/ 

  以上是“Linux下PHP安全设置[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • windows下的近似linux下的grep号令--findstr
  • linux下mysql链接被防火墙禁止的办理办法
  • Linux下mysql新建账号及权限设置办法
  • SUSE Linux下搭建Web服务器
  • Windows/Linux MySQL忘掉密码重置密码教程
  • Linux下Apache自动监测重启脚本(智能化程度较高)
  • linux备份 linux克隆 linux clone
  • <b>为什么 Linux不需求碎片整理</b>
  • CentOS6 yum搭建Linux+Nginx+PHP+MYSQL(LNMP)
  • Linux系统有效防备ARP攻击
  • Linux下 Memcache的安装和简单管理
  • 笔记本预装linux重装成windows系统
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .