44.限定某個目錄禁止解析php、限制user_agent、php相關配置

1、限定某個目錄禁止解析php、限制user_agent、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

禁止解析upload目錄下的php文件php

44.限定某個目錄禁止解析php、限制user_agent、php相關配置shell

mkdir /data/wwwroot/123.com/upload/
cp /data/wwwroot/123.com/admin.php    /data/wwwroot/123.com/upload/example.php
curl -x127.0.0.1:80 www.123.com/upload/example.php
  • curl測試時直接返回了php源代碼,並未解析

44.限定某個目錄禁止解析php、限制user_agent、php相關配置

或者apache

<Directory /data/wwwroot/123.com/upload>
      <FilesMatch(.*)\.php(.*)>
       Order allow,deny
       Deny from all
      </FilesMatch>
   </Directory>
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

禁止訪問upload目錄下的php文件;vim

44.限定某個目錄禁止解析php、限制user_agent、php相關配置

44.限定某個目錄禁止解析php、限制user_agent、php相關配置

  • 測試顯示403禁止訪問;

    2、限制user_agent

user_agent能夠理解爲瀏覽器標識
user_agent爲何能夠作訪問控制呢?
背景:好比網站受到cc***。***的人經過軟件或者肉機,想***某個網站的時候,把全部的肉機發動起來,讓它們同時訪問一個站點。可是cc***每每有一個特徵,就是user_agent一致的,訪問地址一致。訪問速度快,每秒N次瀏覽器

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

核心配置文件內容curl

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR]
        RewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC]
        RewriteRule  .*  -  [F]
    </IfModule>
  • NC忽略大小寫, [F] forbidden OR 禁止curl或者baidu.com.兩個user_agent
    44.限定某個目錄禁止解析php、限制user_agent、php相關配置
  • curl -A "123123" 指定user_agentsocket

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
curl -x127.0.0.1:80   www.123.com
curl -A '1231' -x127.0.0.1:80 www.123.com
curl -A 'baidu.com' -x127.0.0.1:80   www.123.com

44.限定某個目錄禁止解析php、限制user_agent、php相關配置

  • 本機默認user_agent和百度都禁止訪問,隨機指定一個則能夠訪問

    3、 php相關配置

查看php配置文件位置ide

vim /data/wwwroot/123.com/123.php
<?php
phpinfo();
?>

經過瀏覽器查看配置文件信息函數

44.限定某個目錄禁止解析php、限制user_agent、php相關配置

若是配置文件不存在就要去模板目錄下複製一份;測試

  • 修改php配置文件

    vim /usr/local/php/etc/php.ini
  • date.timezone --定義時區
    ate timezone=Asia/Shanghai

44.限定某個目錄禁止解析php、限制user_agent、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

44.限定某個目錄禁止解析php、限制user_agent、php相關配置

  • error_log --日誌路徑
  • log_errors --是否開啓日誌
  • display_errors --是否前臺顯示錯誤信息(如:將phpinfo加入禁用函數名單,訪問一個phpinfo的php文件,若是此選項開啓,那麼會顯示錯誤信息,若是此選項關閉,則什麼也不顯示)
  • error_reporting --定義日誌級別 一般爲 E_ALL & ~E_NOTICE

44.限定某個目錄禁止解析php、限制user_agent、php相關配置44.限定某個目錄禁止解析php、限制user_agent、php相關配置

  • open_basedir 修改ini是對全部網站生效 修改虛擬主機配置纔是對單個網站,做用在於限制php訪問權限,通常在虛擬主機配置中限制相應帳戶便可。
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
php_admin_value open_basedir "/data/wwwroot/123.com:/tmp/"

設置表示容許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,能夠防止php***跨站

44.限定某個目錄禁止解析php、限制user_agent、php相關配置

相關文章
相關標籤/搜索