你們是否測試Apache作了目錄禁止瀏覽後,目錄下面的txt文件仍是能夠顯示裏面的內容的。
例如:http://www.domain.com/test/此訪問會報403錯誤,可是若是test下有不少txt,你訪問該txt時;
例如:http://www.domain.com/test/a.txt,此時a.txt裏的內容會所有暴露在外面了(有時這個txt是很機密的文件),這樣以來就不安全了。
一樣:我在Nginx配置後後也存在這樣的問題,Apache下此問題的解決多謝NetSeek幫助。
以下是關於Apache和Nginx 限制該類事情辦法:
【apache配置禁止訪問】
1. 禁止訪問某些文件/目錄
增長Files選項來控制,好比要不容許訪問 .inc 擴展名的文件,保護php類庫:
<Files ~ "\.inc$">
Order allow,deny
Deny from all
</Files>
禁止訪問某些指定的目錄:(能夠用 <DirectoryMatch> 來進行正則匹配)
<Directory ~ "^/var/www/(.+/)*[0-9]{3}">
Order allow,deny
Deny from all
</Directory>
經過文件匹配來進行禁止,好比禁止全部針對圖片的訪問:
<FilesMatch \.(?i:gif|jpe?g|png)$>
Order allow,deny
Deny from all
</FilesMatch>
針對URL相對路徑的禁止訪問:
<Location /dir/>
Order allow,deny
Deny from all
</Location>
針對代理方式禁止對某些目標的訪問(<ProxyMatch> 能夠用來正則匹配),好比拒絕經過代理訪問cnn.com:
<Proxy http://cnn.com/*>
Order allow,deny
Deny from all
</Proxy>
2. 禁止某些IP訪問/只容許某些IP訪問
若是要控制禁止某些非法IP訪問,在Directory選項控制:
<Directory "/var/www/web/">
Order allow,deny
Allow from all
Deny from 10.0.0.1 #阻止一個IP
Deny from 192.168.0.0/24 #阻止一個IP段
</Directory>
只容許某些IP訪問,適合好比就容許內部或者合做公司訪問:
<Directory "/var/www/web/">
Order deny,allow
Deny from all
All from example.com #容許某個域名
All from 10.0.0.1 #容許一個iP
All from 10.0.0.1 10.0.0.2 #容許多個iP
Allow from 10.1.0.0/255.255.0.0 #容許一個IP段,掩碼對
All from 10.0.1 192.168 #容許一個IP段,後面不填寫
All from 192.168.0.0/24 #容許一個IP段,網絡號
</Directory>
Apache:解決辦法;
<Directory "/home/domain/public_html">
Options -Indexes FollowSymLinks
AllowOverride All
<Files ~ ".txt">
Order allow,deny
Deny from all
</Files>
</Directory>
Nginx:解決辦法;
location ~* \.(txt|doc)$ {
if (-f $request_filename) {
root /home/domain/public_html/test;
break;
}
}php
Nginx下請你們注意標點符號的使用,不要漏掉後面的「;」!html