訪問控制 – Directory(目錄)
核心配置文件內容:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/111.com/admin/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
order用來定義順序,如果先deny先執行deny的語句,如果先allow先執行allow的語句。從頭走到尾,最後的生效。
127.0.0.1的沒問題,其他IP不行
curl測試狀態碼爲403則被限制訪問了
訪問控制 – FilesMatch(匹配文件名或訪問的鏈接)
1、核心配置文件內容
<Directory /data/wwwroot/www.123.com>
<FilesMatch "admin.php(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>
2、結果curl -x127.0.0.1:80 'http://111.com/admin.php?sdef' -I
404:允許訪問,但是不存在
訪問控制 – 禁止php解析
1、前提準備:
2、核心配置文件內容
<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off
</Directory>
若不加下面的filesmatch就會獲取到PHP文件的源代碼
3、結果:
curl測試時直接返回了php源代碼,並未解析
加filesmatch結果:
訪問控制 – user_agent
限制user_agent(cc***用到)
user_agent可以理解爲瀏覽器標識
1、核心配置文件內容
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] //NC是忽略大小寫,OR是或者
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
RewriteRule .* - [F]
</IfModule>
rewriterule後面的F是forbidden的意思
2、結果
curl -A "123123" (自定義)指定user_agent
curl -A 指定user_agent
curl -e 指定referer,必須"http://"開頭