?十一周二次課(3月7日)
11.28 限定某個目錄禁止解析php
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
配置文件增加如下內容:
<Directory /data/wwwroot/123.com/upload>
php_admin_flag engine off
</Directory>
重新加載配置文件:
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
11.29 限制user_agent
配置限制user_agent的方法:
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
配置文件增加如下內容:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
RewriteRule .* - [F]
</IfModule>以上配置中:
NC: 表示忽略大小寫
OR: 表示或者之意,不寫則各行(條件)是並且的關系
F: Forbidden之意,禁止訪問
重新加載配置文件:
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
測試
cure指定use-agent
11.30/11.31 php相關配置
查看php配置文件位置
/usr/local/php/bin/php -i|grep -i "loaded configuration file"
通過以上語句查到的有時未必正確,更可靠的方法是在站點(比如123.com)目錄下創建一個包含phpinfo()函數的php頁面,然後在瀏覽器中訪問它,從而來查看到配置文件位置.
重新加載配置
找到php配置文件後,就可編輯它來設置相關配置了
vi /usr/local/php7/etc/php.ini
安全相關配置--禁用以下函數,這樣即使被上轉木馬,由於相關函數已被禁用,它也無法執行.
disable_functions =
phpinfo函數禁用
時區配置,設為Asia/Shanghai或者Asia/Chongqing
date.timezone = Asia/Shanghai
錯誤信息輸出off,不把錯誤信息輸出到瀏覽器中
display-errors=off
錯誤日誌相關配置--便利排障時查看,
錯誤日誌開啟
定義錯誤日誌路徑
定義錯誤日誌級別,all所有級別,生成環境中用error_reporting = E_ALL & ~E_NOTICE
安全相關參數open_basedir
這個設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,有效防止php木馬跨站運行。
在Apache服務器中,切忌一定要在虛擬主機配置文件中添加以下代碼,否則PHP木馬腳本可以瀏覽你服務器上的任意文件,這意味著你的服務器很快會被攻破。
php.ini中的open_basedir參數是對所有的站點都適用的,假如服務器上只有一個站點,直接配置php.ini中的open_basedir參數是能起到作用,但如果不止一個站點,因為各個站點目錄不同,而php.ini中的open_basedir參數只能設置一處,
這時就借助apache虛擬主機配置文件來針對特定站點設置open_basedir參數.
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
配置文件增加如下內容:
php_admin_value open_basedir "/data/wwwroot/123.com:/tmp/"
不同主機分別限制
擴展
apache開啟壓縮 http://ask.apelearn.com/question/5528
apache2.2到2.4配置文件變更 http://ask.apelearn.com/question/7292
apache options參數 http://ask.apelearn.com/question/1051
apache禁止trace或track防止xss http://ask.apelearn.com/question/1045
apache 配置https 支持ssl http://ask.apelearn.com/question/1029
?十一周二次課(3月7日)