LAMP架構(八)限定某個目錄禁止解析、 限制user_agent、php相關配置

訪問控制-限制某個目錄禁止php解析php

通常用於存儲靜態文件的目錄,由於圖片等之類的文件是不須要解析PHP的,且靜態文件目錄也不容許放php文件。 核心配置文件內容shell

<Directory /data/wwwroot/123.com/upload>;
        php_admin_flag engine off
    </Directory>

curl測試時直接返回了php源代碼,並未解析apache

輸入圖片說明

訪問控制-user_agent瀏覽器

user_agent能夠理解爲瀏覽器標識 核心配置文件內容安全

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR]                //NC表示忽略大小寫
        RewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC]        
        RewriteRule  .*  -  [F]                                                                //F即forbidden
    </IfModule>

匹配curl或者baidu.com的進行限制。用了OR鏈接符,不加就是而且,會報錯。php7

curl -A "123123" -A參數指定user_agentcurl

輸入圖片說明

php相關配置socket

查看php配置文件位置 /usr/local/php/bin/php -i|grep -i "loaded configuration file" //準確的位置能夠打開瀏覽器的phpinfo信息查看。函數

默認php的安裝路徑下是沒有配置文件的,從安裝包裏拷貝一份測試

cp /usr/local/src/php-7.1.6/php.ini-development /usr/local/php7/etc/php.ini

而後/usr/local/apache2.4/bin/apachectl -t和/usr/local/apache2.4/bin/apachectl graceful使配置文件生效。

輸入圖片說明

date.timezone=Asia/Shanghai                     //定義php的時區,要定義,注意去掉前面的分號。
disable_functions=                                      //在這個字段禁用如下函數,直接複製在等號後面便可。
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,phpinfo

error_log,             //定義錯誤日誌的路徑
log_errors,           //開啓錯誤日誌爲On
display_errors,     //爲On表示錯誤信息直接顯示在瀏覽器上,改爲Off
error_reporting        //定義日誌的級別,默認爲ALL,生產環境爲E_NOTICE
open_basedir           //安全相關的參數,這裏不定義,在vhost裏頭定義,vhost添加以下參數便可。
php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"         
//針對不一樣的虛擬主機如今他的open_basedir,tmp目錄是由於php會先把文件放在該目錄,而後在轉移。

輸入圖片說明

輸入圖片說明

輸入圖片說明

輸入圖片說明

輸入圖片說明

相關文章
相關標籤/搜索