转:PHP网站在Linux服务器上安全设置方案

PHP网站在Linux服务器上安全设置方案

本文总结了PHP网站在Linux服务器上一些安全设置(ps:还有一些设置给忘了),在《lnmp一键安装包》大多数参数已经包含,如果有什么更多的设置,大家一起讨论学习

PHP安全配置
1. 确保运行php的用户为一般用户,如www
2. php.ini参数设置

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,phpinfo #禁用的函数
expose_php = off  #避免暴露PHP信息
display_errors = off
enable_dl = off
allow_url_include = off
session.cookie_httponly =1
upload_tmp_dir =/tmp
open_basedir =./:/tmp:/home/wwwroot/

open_basedir参数详解

; open_basedir,ifset, limits all file operations to the defined directory
; and below.This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file.This directive is
;*NOT* affected by whether SafeMode is turned On or Off.; http://php.net/open-basedir

open_basedir可将用户访问文件的活动范围限制在指定的区域,通常是其家目录的路径,也可用符号”.”来代表当前目录。注意用open_basedir指定的限制实际上是前缀,而不是目录名。
举例来说: 若”open_basedir = /home/wwwroot”, 那么目录 “/home/wwwroot” 和 “/home/wwwroot1″都是可以访问的。所以如果要将访问限制在仅为指定的目录,请用斜线结束路径名。

注意:
从网上获取的资料来看,open_basedir会对php操作io的性能产生很大的影响。研究资料表明,配置了php_basedir的脚本io执行速度会比没有配置的慢10倍甚至更多请大家自己衡量
open_basedir也可以同时设置多个目录, 在Windows中用分号分隔目录,在任何其它系统中用冒号分隔目录。当其作用于Apache模块时,父目录中的open_basedir路径自动被继承。

MySQL安全设置
1. MySQL版本的选择
在正式生产环境中,禁止使用4.1系列的MySQL数据库。至少需要使用5.1.39或以上版本。

2. 网络和端口的配置
在数据库只需供本机使用的情况下,使用–skip-networking参数禁止监听网络 。

3. 确保运行MySQL的用户为一般用户,如mysql,注意存放数据目录权限为mysql

vi /etc/my.cnf
user = mysql

4. 开启mysql二进制日志,在误删除数据的情况下,可以通过二进制日志恢复到某个时间点

vi /etc/my.cnf
log_bin = mysql-bin
expire_logs_days =7

5. 认证和授权
(1)禁止root账号从网络访问数据库,root账号只允许来自本地主机的登陆。

mysql>grant all privileges on *.* to root @localhost identified by 'password' with grant option;
mysql>flush priveleges;

  (2)删除匿名账号和空口令账号

mysql>USE mysql;
mysql>delete from user where User=;
mysql>delete from user where Password=;
mysql>delete from db where User=;

web服务器安全
确保运行Nginx或者Apache的用户为一般用户,如www,注意存放数据目录权限为www

防止sql注入

if( $query_string ~*".*[\;'\<\>].*"){return404;}

关闭存放数据上传等目录的PHP解析

location ~*^/(attachments|data)/.*\.(php|php5)${deny all;}

针对Apache:关闭图片目录/上传等目录的PHP解析

<Files~".php">
order allow,deny
Deny from all
</Files>

木马查杀和防范
php木马快速查找命令

grep -r --include=*.php '[^a-z]eval($_POST'/home/wwwroot/
grep -r --include=*.php 'file_put_contents(.*$_POST\[.*\]);'/home/wwwroot/

利用find mtime查找最近两天或者发现木马的这几天,有哪些PHP文件被修改

find -mtime -2-type f -name \*.php

防范:
1. 做好之前的安全措施,比如禁用相关PHP函数等

2. 改变目录和文件属性

find -type f -name \*.php -exec chomd 644{} \;
find -type d -exec chmod 755{} \;
chown -R www.www /home/wwwroot/www.linuxeye.com

3. 为防止跨站感染,需要做虚拟主机目录隔离
 (1)nginx的简单实现方法
利用nginx跑多个虚拟主机,习惯的php.ini的open_basedir配置:

open_basedir =./:tmp:/home/wwwroot/

注:/home/wwwroot/是放置所有虚拟主机的web路径

黑客可以利用任何一个站点的webshell进入到/home/wwwroot/目录下的任何地方,这样对各个虚拟主机的危害就很大
例如: /data/www/wwwroot目录下有2个虚拟主机
修改php.ini

open_basedir =./:/tmp:/home/wwwroot/www.linuxeye.com:/home/wwwroot/blog.linuxeye.com

这样用户上传webshell就无法跨目录访问了。

(2):Apache的实现方法,控制跨目录访问
在虚拟机主机配置文件中加入

?
<VirtuanHost*:80>
php_admin_value open_basedir "/tmp:/home/wwwroot/www.linuxeye.com"

转载于:https://www.cnblogs.com/dasn/articles/3271888.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南开大学c语言试题,南开大学二级C语言试题库,共71页

内容简介&#xff1a;南开大学二级C语言试题库&#xff0c;共71页1&#xff1a;下列程序的功能是&#xff1a;将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwriteDAT()把结果输出到文件out.dat中。例如&#x…

entity framework框架生成摘要文档为空(没有元数据文档可用)的bug解决方案

简介 entity framework在vs中生成的.edmx文件&#xff0c;会导致摘要&#xff08;说明&#xff09;为空的bug&#xff0c;具体bug信息为“没有元数据文档可用。”&#xff0c;导致我们表名打点去字段时&#xff0c;无法预知字段代表的含义&#xff0c;这在开发当中也是比较致命…

ElasticSearch可视化工具Dejavu安装使用

目录 1、安装 Docker 环境2、运行 ElasticSearch 服务3、安装运行 Dejavu 服务 Dejavu 是一个 ElasticSearch 的 Web UI 工具&#xff0c;支持通过 JSON 和 CSV 文件导入数据&#xff0c;支持可视化定义 Mapping (字段映射)等。 相关描述在 https://github.com/appbaseio/dej…

介绍MFSideMenu左右滑动控件的使用

昨天刚写完侧滑菜单的实例&#xff0c;今天在CocoaChina网站上看到一篇非常好的侧滑菜单设计案例文章&#xff0c;分享给大家。http://www.cocoachina.com/macdev/uiue/2013/0716/6609.html 自从Facebook使用了左右滑动菜单导航以后&#xff0c;国内外各个App都竞相模仿该功能&…

艾诺迪亚4一次性完美刷经验刷金钱方法图解[亲测无需闪退游戏]

最近在玩游戏艾诺迪亚4&#xff0c;感觉不错就是升级太慢&#xff0c;于是研究了最新的刷等级刷金钱的方法&#xff0c;无需游戏闪退&#xff0c;一次性成功的方法&#xff0c;下面一起刷起来。 需要用的一个工具&#xff1a;八门神器&#xff08;注意&#xff1a;八门神器无需…

决定c++语言中函数的返回值类型的是,全国2009年10月高等教育自学考试C++程序设计试题及部分参考答案...

全国2009年10月高等教育自学考试C程序设计试题课程代码&#xff1a;04737一、单项选择题(本大题共20小题&#xff0c;每小题1分&#xff0c;共20分)在每小题列出的四个备选项中只有一个是符合题目要求的&#xff0c;请将其代码填写在题后的括号内。错选、多选或未选均无分。1.对…

搭建FTP服务器,设置用户权限775 ,并只许上传、禁止下载和删除

1、安装vsftpd软件包&#xff0c;命令如下&#xff1a; sudo yum -y install vsftpd 2、查看vsftpd的运行状态&#xff0c;命令如下&#xff1a; sudo netstat -nltp | grep 21 一般情况下&#xff0c;vsftpd安装完成后会自动启动&#xff0c;如下图所示通过 netstat 命令可…

mongodb replicaset shard 集群性能测试

2019独角兽企业重金招聘Python工程师标准>>> mongodb支持自动分片的功能&#xff0c;并且可以让数据尽可能地均匀分布在各个节点上&#xff0c;本身支持横向扩展。 1&#xff0c;环境搭建 此次性能测试对象为mongodb的replicaset自动分片功能&#xff0c;集群拓扑…

entity framework使用技巧

1、无需先查询数据的修改方法 // 将创建的data实体添加到ObjectContextdb.Data.Attach(data);// 手动设置状态为修改 db.ObjectStateManager.ChangeObjectState(data, EntityState.Modified);db.SaveChanges(); 2、嵌套Action&#xff08;页面&#xff09; Html.Action("l…

一维离散小波c语言,《二维离散小波分解的C语言实现》》-毕业论文.doc

PAGE高等教育自学考试毕业论文(设计)题 目&#xff1a; 二维离散小波分解的C语言实现摘 要小波变换用于图像处理是小波变换应用效果比较突出的领域之一。由于图像是二维信号&#xff0c;因此首先需要把小波变换由一维推广到二维。本文在一维离散Mallat算法的基础上&#xff0c…

基于Python的开源人脸识别库,离线识别率高达99.38%

使用 dlib 顶尖的深度学习人脸识别技术构建&#xff0c;在户外脸部检测数据库基准&#xff08;Labeled Faces in the Wild benchmark&#xff09;上的准确率高达 99.38%。 这也提供了一个简单的 face_recognition 命令行工具&#xff0c;你可以打开命令行中任意图像文件夹&…

打油诗

嫁人不嫁造船郎&#xff0c;一年四季总在忙&#xff0c;春夏秋东不见面&#xff0c;回家一包臭衣裳&#xff01;我是一个造船郎&#xff0c;背井离乡在外闯&#xff0c;白天累得腿发软&#xff0c;晚上仍为资料忙&#xff1b;思乡痛苦心里藏&#xff0c;四海漂泊习为常&#xf…

entity framework不查数据库修改或排除指定字段集合通用方法

其中DataDBEntities为数据库实体对象&#xff0c;代码如下&#xff1a; 下载地址&#xff1a;http://files.cnblogs.com/stone_w/EFDBHelper.zip using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Reflection;using System.D…

去马赛克神器 JavPlayer TG Modle 最新版

本帖最后由 cyberim 于 2019-8-28 22:13 编辑 -----知识点----- Mosaic的原理就是将1个像素的颜色填满一个小区域&#xff0c;所以在平面图片上是无法还原的--简单说就是单一图片的Mosaic不可逆! 但是…如果是Mosaic影片的话&#xff0c;一个Mosaic方格的中心点就会是一个原始影…

jQuery日期和时间插件(jquery-ui-timepicker-addon.js)中文破解版使用

简介 jQuery UI Datepicker日期选择插件很好用了&#xff0c;只不过只能精确到日&#xff0c;不能选择时间&#xff08;小时分钟秒&#xff09;很遗憾&#xff0c;而jquery-ui-timepicker-addon.js正是基于jQuery UI Datepicker的一款可选时间的插件。 官网地址&#xff1a;h…

Linux服务之httpd基本配置详解

当今主流的开源Web服务器软件有httpd(Apache),lighttpd,nginx,thttpd等&#xff0c;而httpd是迄今为止使用量多的web服务器&#xff0c;据统计目前httpd的全球占有量是47%左右&#xff0c;虽然有所下降但是使用两仍然是最多的&#xff0c;统计web服务器使用率的网站是&#xff…

超松弛迭代法解线性方程组c语言,超松弛迭代法解线性方程组.doc

PAGEPAGE 2姓名:___________________________设计题目:超松弛迭代法解线性方程组专业:摘要本文是在matlab环境下熟悉的运用计算机编程语言并结合超松弛变量超松弛迭代法的理论基础对方程组求解。首先&#xff0c;本文以微分方程边值问题为例&#xff0c;导出了离散化后线性方程…

Meidapipe 3D手势姿态跟踪算法,手机端实时检测 ,多个手势同时捕捉

Ubuntu安装MediaPipe 1. github下载Meidapipe代码2. [安装Bazel](https://docs.bazel.build/versions/master/install-ubuntu.html)3. Install OpenCV and FFmpeg4. 安装在Linux desktop运行需要的工具5. 运行Hello World desktop example安装Android SDK和NDK 1. 安装[Android…

android新建工程横屏,华为MatePad Pro构建的安卓平板横屏生态有何不同?来看看

在过去很多年中&#xff0c;Android 平板或者说 Android大屏设备一直受限于 Android生态的限制&#xff0c;无法发挥出本应具备的大屏使用体验&#xff0c;也正是因为这个原因&#xff0c;Android平板电脑一直被当做娱乐设备。在去年11月25日&#xff0c;华为正式发布了主打生产…

Flutter笔记:Web支持原理与实践

Flutter笔记 Web支持原理与实践 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com CSDN&#xff1a;https://blog.csdn.net/qq_28550263/article/details/135037756 华为开发者社区…