日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發布時間:2025/3/8 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转: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

總結

以上是生活随笔為你收集整理的转:PHP网站在Linux服务器上安全设置方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。