PHP网站的安全要点

1. 删除不必要的模块

PHP随带内置的PHP模块。它们对许多任务来说很有用,但是不是每个项目都需要它们。只要输入下面这个命令,就可以查看可用的PHP模块:

# php - m

一旦你查看了列表,现在可以删除不必要的模块。减少模块的数量有助于提高你所处理的Web应用程序的性能和安全。

2. 限制PHP信息泄露

平台泄露关键信息司空见惯。比如说,PHP会泄露一些信息,比如版本以及它安装到服务器上的事实。这可以通过expose_php命令来实现。为了防止泄露,你需要在/etc/php.d/security.ini中将该命令设成off。

expose_php=Off

如果你需要了解版本及其状态,只要针对网站地址运行一个简单的Curl命令就可以获得该信息。

Curl - I http://www.livecoding.tv/index.php

之前的命令会返回下列信息:

HTTP/1.1 200 OK
X-Powered-By: PHP/7.0.10
Content-type: text/html; charset=UTF-8

3. 禁用远程代码执行

远程代码执行是PHP安全系统方面的常见安全漏洞之一。默认情况下,远程代码执行在你的系统上已被启用。“allow_url_fopen”命令允许请求(require)、包括(include)或可识别URL的fopen包装器等函数可以直接访问PHP文件。远程访问通过使用HTTP或FTP协议来实现,会导致系统无力防御代码注入安全漏洞。

为了确保你的系统安全可靠、远离远程代码执行,你可以将该命令设成“Off”,如下所示:

Allow_url_fopen=Off
allow_url_include=Off

4. 将PHP错误记入日志

加强Web应用程序安全的另一个简单方法就是,不向访客显示错误。这将确保黑客根本无法危及网站的安全性。需要在/etc/php.d/security.ini文件里面进行编辑。

display_errors=Off

现在你可能会想:完成这一步后,“开发人员在没有错误信息的帮助下如何调试?”开发人员可以使用log_errors命令来用于调试。他们只需要在security.ini文件中将log_errors命令设成“On”。

log_errors=On
error_log=/var/log/httpd/php_scripts_error.log

5. 合理控制资源

为了确保应用程序的安全,控制资源很重要。为了确保适当的执行和安全,你就要对PHP脚本执行予以限制。此外,还应该对花在解析请求数据上的时间予以限制。如果执行时间受到控制,脚本使用的内存等其他资源也应该会得到相应配置。所有这些度量指标可通过编辑security.ini文件来加以管理。

# set in seconds
max_execution_time = 25
max_input_time = 25
memory_limit = 30M

6. 禁用危险的PHP函数

PHP随带用于开发的实用函数,但是也有可能被黑客用来闯入Web应用程序的大量函数。禁用这些函数可以提高总体安全性,并确保你没有受到危险的PHP函数的影响。

为此,你先要编辑php.ini文件。一旦进入该文件,找到disable_functions命令,禁用里面的危险函数。为此,你只要拷贝/粘贴下列代码。

disable_functions =exec,passthru,
shell_exec,system,proc_open,popen,curl_exec,
curl_multi_exec,parse_ini_file,show_source

你可以在此(https://www.eukhost.com/blog/webhosting/dangerous-php-functions-must-be-disabled/)进一步了解禁用危险的PHP函数。

7. 上传文件

如果你的应用程序不需要上传任何文件,禁用上传文件的功能有助于提高安全。想禁止用户上传文件,只需要编辑/etc/php.d/目录下的security.ini文件,将file_uploads命令设成OFF。

file_uploads=Off

8. 保持版本最新

开发人员在24/7不间断地工作,给你使用的技术打上补丁。PHP也是一样。由于它有一个开源社区,补丁和修正版定期发布。更新版还为首日漏洞及其他安全漏洞提供了安全补丁。如果你注重应用程序的安全性,就要始终确保你的PHP解决方案是最新版本。另外,给其他相关技术打上最新的补丁可以确保最大限度的安全。

9.控制文件系统访问

默认情况下,PHP可使用fopen()等函数来访问文件。open_basedir命令提供了访问。首先,始终要将open_basedir命令设成/var/www/html目录。将它设成其他任何目录会导致安全问题。

open_basedir="/var/www/html/"

10. 控制POST大小

我们的最后一个PHP安全要点是控制POST大小函数。HTTP POST函数使用客户端的浏览器,将数据发送到Web服务器。比如说,用户可能上传证书,然后发送到Web浏览器以便处理。一切都运行顺畅,直到有一天黑客企图发送庞大的文件来耗尽服务器资源。这很可能会导致服务器崩溃或响应缓慢。为了保护服务器远离这个漏洞,就需要设置POST大小。POST大小可以在/etc/php.d/security.ini文件里面加以设置。

post_max_size=1k
时间: 2024-10-05 17:36:42

PHP网站的安全要点的相关文章

区县网站群建设要点

以网站群形式统一建设门户及各委办局网站已经非常成熟,但能否把网站信息化建设的更好,也是需要注意很多方面.作为区县信息中心一员,上次写的区县网站群建设要点,得到很多专业人员的关注,特此继续更新,希望"区县网站群建设要点"能为专业人士网站群建设提供些帮助. 一.区县网站群建设要点:站点统一规划建设,集中部署,分级管理,节约成本 各部门独立建站需要分别支付服务器购置费.技术维护费及平台建设费,总体花费巨大:使用站群系统可以极大的节约此种投入:只需购置一套较高配置的服务器.站群平台等,各子站点

三个网站制作的要点

网站的制作是一个多方配合的过程,设计师.程序员还有站长本身,在这个过程当中,需要不断地沟通,所以也是由于这样,因此很容易就会发生一些错误. 第一:被逻辑的完整而忽悠 一个网页的设计思路基本上就是抓住用户的注意力.激发用户的兴趣.与用户建立信任.刺激用户.触发用户的行动.通常来说这个网页设计的思路是没错的,但是,只要稍有不慎,就会很容易造成严重的错误,尤其是在网页每个版块的独立战斗力上.用户在上网是很没有耐心的,你产品的说明书不可能完完整整被用户看完.一般情况下,用户最能注意到的就是大标题以及图片

网站项目开发要点---一个实际项目开发心得

1.显示需要选择的数据时,一定先要此数据是否为海量数据.例如:选择下拉框中加100条记录.你的用户不骂死你.2.尽量不要限制用户的输入内容.对输入内容进行验证(正则表达式)分割及处理返回为空的项(String.split(new String[]{' ',';'},StringSplitOptions.RemoveEmptyEntries))考虑中文,全角字符内容.3.后台界面设计时就预先定好css,一般后台界面开发完成后,界面改动不是很大,处理下css就行了.否则一个个td改累死你.4.网站目

seo网站优化要点解析

如何让自己的网站能进入搜索引擎第一页,下面分享下,网站优化的要点: 第一:网站的名字很重要,实事求是的写下自己网站的名字,当然,网站的名字要考虑好,最好包含网站的主要内容. 第二:页面头不优化,页面头部指的是代码中部分,具体一点就是中的"Description(描述)"和"Keywords(关键字)"两部分,这部分也是SEO们比较花心思的地方,理论一大堆! 总结起来就是:1."描述"部分应该用近乎描述的语言写下一段介绍你网站的文字,在这其中,你应

区县政府网站建设要点总结

刚刚结束的第十三届政府网站绩效评估大会上指出,目前我国基层政府网站已经成为当前网站在可用性问题方面的重灾区,运维保障体系亟待完善,近80%的网站存在部分功能或者页面使用无法打开的情况.尽管像部委.省.地市政府网站可用性水平在提高,但是检测范围内的区县网站,以及由区县网站所外链的部门.乡镇街道的网站还是仍然存在着大量信息更新不及时,页面和功能不可用,链接错误无法打开的情况,大大降低了区县政府网站的运维保障水平.近80%的网站存在部分功能或者页面使用无法打开的情况,90%的网站存在着暗链.伪链和链接

怎样安装Joomla 1.7网站系统

如果你想使用Joomla(地球上最好的内容管理系统之一)搭建一个网站,大体的流程是,你需要先在本地电脑,也就是你的电脑或者笔记本上为Joomla搭建一个本地的运行环境,这样你的电脑就会变成一台服务器,在上面你就可以运行Joomla网站程序了,或者是其它类似的程序,比如Drupal,Wordpress,DiscuzX -然后我们可以全用FTP工具把在本地做好的Joomla网站上传到网站的空间里. 工具/原料 下载WAMP软件,用他来搭建Joomla网站本地的测试环境 下载中文版Joomla1.7网

新辰:网站排名浮动不前 相比竞争者到底缺少了什么?

这几天有很多朋友问新辰,为什么网站排名掉了?为什么被人家逆袭反超了?当然,这无疑与你网站的内容.外链和用户体验有很大关系,不过,新辰在此认为,还需要多研究一下竞争对手的网站,做到:人无我有,人有我优,只有这样,才能将你的网站真正做起来:所以对比一下你的竞争者,你的网站缺少了什么? 一,查看域名年龄和建站历史-外部因素 有时候,域名的权重很多程度上决定了网站的排名能力.比如,有个朋友的网站建站2年了,每天坚持原创更新,但是排名总是浮动在5.6名左右,从来没有上过前三名:这是为什么?他的网站不好吗,

创业日记-关于网站架构

今天是2015年3月28日 深圳多云 今天想写一些关于网站架构的要点 1.为什么要有网站架构 2.如何架构小型,中型网站 1.为什么要有网站架构 从你开始为一个网站架设一个项目名称开始其实你已经在架构一个网站了. 要做的事情包含以下几点 1.网站用户分几种类型,各自访问资源权限如何 2.网站预设的用户数量是多少,是否考虑使用CDN 3.是否包含SSO单点登陆 4.网站是否使用分布式 5.项目,文件,文件夹命名 6.使用何种数据库 7.解决方案所包含的项目数量 8.项目层级引用关系, 引用从属关系

区县网站群建设建议

区县网站群建设建议 作为区县信息中心一员,想把这几年的工作经验总结一下,起名叫区县网站群建设要点,希望能为区县负责人网站群建设提供些建议. 一.区县网站群建设要点一:站点统一规划建设,集中部署 各部门独立建站需要分别支付服务器购置费.技术维护费及平台建设费,总体花费巨大:使用站群系统可以极大的节约此种投入:只需购置一套较高配置的服务器.站群平台等,各子站点充分利用统一资源,节约建设成本. 集中式门户站群和各单位独立建站(以n个网站为例)两种方式软硬件投入对比表如下:   统一信息平台建设方式 各