1. 程式人生 > >限定某個目錄禁止解析php 、限制user_agent 、php的配制文件、PHP的動態擴展模塊

限定某個目錄禁止解析php 、限制user_agent 、php的配制文件、PHP的動態擴展模塊

pop baidu -i leak tin 文件上傳 cto pin 解析

1、 限定某個目錄禁止解析php(有些目錄用戶可以上傳文件或圖片,可能會被惡意者上傳其它文件):
編輯:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

加入:

<Directory /var/www/222/upload>
php_admin_flag engine off
</Directory>
技術分享圖片

建立目錄:mkdir /var/www/222/upload -p
寫php文件:echo "<?php phpinfo(); ?>" >/var/www/222/upload/index.php
檢查語法:/usr/local/apache2.4/bin/apachectl -t


技術分享圖片

重啟、訪問、測試:
技術分享圖片

而訪問upload目錄下的其它文件就沒有問題:
技術分享圖片
技術分享圖片

配制文件上傳目錄 php不解析或禁止訪問的主要目的,是為了防止惡意者上傳相關木馬。(註意:靜態文件所存放的目錄是不允許放php文件的)

2、限制user_agent(可以理解為對瀏覽器的標識,若遇到cc攻擊的時候,可以把攻擊者用的瀏覽器給禁止掉)

編輯:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf 加入:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] (NC,忽略大小寫,OR 是或者與下一個條件是或的意思)


RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
RewriteRule .* - [F] (F,forbidden)
</IfModule>
技術分享圖片

檢查配制文件、重啟、訪問測試:
技術分享圖片

查看訪問日誌:
技術分享圖片

這樣,就可以相對的防止惡意攻擊。

curl -I 只看狀況信息 -A 指定agent -x (省略host,直接指定目標ip:port)

3、php的配制配制文件 可以通過php的phpinfo();函數來查看,當然還可以在安裝時已經指定的目錄下,進行配制,
技術分享圖片

找到路徑,然後對其進行配制:

設置時區:date.timezone
把它改成:date.timezone =Asia/Shanghai 或:date.timezone =Asia/Chongqing

技術分享圖片

然後,再設置一些禁止訪問的函數:
disable_functions=
把它改成: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

技術分享圖片

訪問:

技術分享圖片

為了不顯示這個,就配制:display_errors
把它改成:display_errors = Off
技術分享圖片


重啟apache:/usr/local/apache2.4/bin/apachectl graceful
然後再次訪問:
技術分享圖片

設置php.ini文件裏的錯誤日誌,由於上面,看不到任何問題(找不到原因),所以,就得查看日誌

把錯誤日誌開啟:log_errors = On
技術分享圖片

設置錯誤日誌的存放路徑:error_log = /tmp/ php_errors.log
技術分享圖片

設置錯誤日誌的級別:error_reporting = E_ALL & ~E_DEPRECATED
技術分享圖片

然後,重啟,訪問

技術分享圖片

查看日誌:

技術分享圖片

這裏需要註意的,就是日誌存放的 目錄必需要有訪問權限(相關用戶)。

設置網站獨立的目錄或文件活動的權限 open_base = dir_name: (比如網站被入侵了,可能還會被人家繼續滲透,這樣子,就只能在這個目錄範圍內)

技術分享圖片
但是這樣子,就會把所有的dir_name 目錄給限定了,所以,意義不大。
於是就只有改虛擬機的配制文件:/usr/local/apache2.4/conf/extra/httpd-vhost.conf
在裏面加入:
php_admin_value open_basedir "/var/www/222/:/tmp/" (防止,被入侵後繼續擴展)
技術分享圖片

檢查配制,重啟,訪問:
技術分享圖片

技術分享圖片

然後,改正確:
技術分享圖片

到此目錄可控權限給設置完成。

4、PHP的動態擴展模塊:

例如添加一個phpredis模塊:
下載phpredis:wget -c https://codeload.github.com/phpredis/phpredis/zip/develop
改名:mv develop phpredis-develop.zip
解壓:unzip phpredis-develop.zip
進入:cd phpredis-develop/
運行:/usr/local/php56/bin/phpize (在目錄內支行/usr/local/php56/bin/phpize,目的是為了什麽configure文件)
配制:./configure --with-php-config=/usr/local/php56/bin/php-config
編譯安裝:make && make install
編輯: vim /usr/local/php56/etc/php.ini
加入:extension=redis.so
查看:/usr/local/php56/bin/php -m |grep redis

技術分享圖片

到些phpredis 就加載成功。

其它安裝模塊,若源碼包安裝自帶得有的話,就在ext下執行相關的安裝操作。

限定某個目錄禁止解析php 、限制user_agent 、php的配制文件、PHP的動態擴展模塊