1. 程式人生 > >11.28 限定某個目錄禁止解析php;11.29 限制user_agent;11.30-11.31

11.28 限定某個目錄禁止解析php;11.29 限制user_agent;11.30-11.31

php相關配置(上下)

擴展 :

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

11.28 限定某個目錄禁止解析php

訪問控制 – 禁止php解析

1. 編輯虛擬主機配置文件,針對網站下的目錄設定禁止解析php文件!:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com/upload>

php_admin_flag engine off

#<FilesMatch (.*)\.php(.*)>

#Order allow,deny

#Deny from all

#</FilesMatch>

</Directory>

技術分享圖片技術分享圖片

2. 創建目錄 :

[root@hao-01 ~]# mkdir /data/wwwroot/111.com/upload

3. 創建編輯123.php到upload目錄下 :

[root@hao-01 ~]# vim /data/wwwroot/111.com/upload/123.php

插入內容:

<?php

echo "123.php";

4. 檢測虛擬機配置文件是否有錯誤 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 啟動apache2.4/httpd

[root@hao-01 apache2.4]# /usr/local/apache2.4/bin/apachectl start

4. 重新加載配置文件(不會重啟服務):

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

5. curl訪問111.com網站下的限定禁止解析目錄upload下文件:

php解析不了,會顯示源代碼!

(源代碼顯示出不安全,建議把註釋掉的打開,直接403!)

[root@hao-02 ~]# curl -x127.0.0.1:80 'http://111.com/upload/123.php'

6. 編輯虛擬主機配置文件

打開刪除FilesMatch (.*)\.php(.*)這個配置所有行前的註釋符#

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com/upload>

php_admin_flag engine off

<FilesMatch (.*)\.php(.*)>

Order allow,deny

Deny from all

</FilesMatch>

</Directory>

技術分享圖片技術分享圖片

7. curl訪問111.com網站下的限定禁止解析目錄upload下文件 :

php解析不了,會顯示源代碼!

(源代碼顯示出不安全,建議把註釋掉的打開,直接403!)

[root@hao-02 ~]# curl -x127.0.0.1:80 'http://111.com/upload/123.php

技術分享圖片技術分享圖片

11.29 限制user_agent

? user_agent可以理解為瀏覽器標識

? 核心配置文件內容

1. 編輯虛擬主機配置文件:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

插入內容:

(curl 和baidu.com是被匹配篩選的關鍵詞,NC是區分大小寫,OR是或者)

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]

RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]

RewriteRule .* - [F]

</IfModule>

技術分享圖片技術分享圖片

2. 檢測虛擬機配置文件是否有錯誤

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 重新加載配置文件(不會重啟服務)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

4. curl 測試 :

[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/123.php'

技術分享圖片技術分享圖片

5. 查看訪問日誌:

[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_20170708.log

技術分享圖片技術分享圖片6. curl -A 指定user_agent(hao hao 就是模擬指定的)

[root@hao-01 ~]# curl -A "hao hao" -x127.0.0.1:80 'http://111.com/123.php' -I

技術分享圖片

7. 查看訪問日誌:

[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_20170708.log

技術分享圖片

技術分享圖片11.30 PHP相關配置-11.31 PHP相關配置(上下)

1. 在111網站根目錄下,創建index.php,內容如下:

[root@hao-01 ~]# vi /data/wwwroot/111.com/index.php

插入內容:

<?php

phpinfo();

2. 拷貝

[root@hao-01 ~]# cp /usr/local/src/php-5.6.30/php.ini-development /usr/local/php/etc/php.ini

3. 重新加載配置文件(不會重啟服務)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

4. Windows遊覽器中,訪問111網站的index.php,就可以看到php.ini所在路徑了,可以在php.ini這個文件中做些配置 :

技術分享圖片技術分享圖片

5. 編輯 php.ini,安全選項,禁掉這些參數 :

[root@hao-01 ~]# vim /usr/local/php/etc/php.ini

插入內容:

eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

技術分享圖片技術分享圖片

6.編輯php.ini,安全選項,避免報警:

[root@hao-01 ~]# vim /usr/local/php/etc/php.ini

修改內容:

date.timezone = Asia/Chongqing

技術分享圖片技術分享圖片

7. 編輯php.ini,安全選項,有錯誤不會在遊覽器中顯示出

[root@hao-01 ~]# vim /usr/local/php/etc/php.ini

修改內容:

display_errors = Off

技術分享圖片技術分享圖片

8. 編輯php.ini,配置錯誤日誌路徑

[root@hao-01 ~]# vim /usr/local/php/etc/php.ini

修改指定錯誤日誌路徑:

error_log = /tmp/php_errors.log

技術分享圖片技術分享圖片

9. 創建錯誤日誌 :

[root@hao-01 ~]# touch /tmp/php_errors.log

10. 給錯誤日誌增加777權限,這樣有錯誤就可以正常寫入 :

[root@hao-01 ~]# chmod 777 /tmp/php_errors.log

11. 編輯虛擬主機配置文件,限制主機的open_basedir

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

對應的虛擬主機,添加對應的網站來限制 :

php_admin_value open_basedir "/data/wwwroot/abc.com:/tmp/"

技術分享圖片技術分享圖片

11.28 限定某個目錄禁止解析php;11.29 限制user_agent;11.30-11.31