[ajax htaccess] 防止直接請求特定檔案 - 保護指定目錄下的檔案

有在寫ajax的應該都知道
ajax的url是顯示在前端
如果被有心人士拿去做其它用途
網站資源絕對會被耗盡

一般網站都是放在虛擬主機上
所以就用htaccess示範

RewriteCond %{REQUEST_URI} File.php$ [NC]
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com$      [NC]
RewriteCond %{HTTP_REFERER} !^https://yourdomain.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://yourdomain.com$      [NC]
RewriteCond %{HTTP_REFERER} !^https://yourdomain.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://yourdomain.com$      [NC]
RewriteRule ^ /403.shtml [R,NC,L]

第一行會先判斷請求的檔案是否符合
之後的REFERER會逐一判斷是否符合指定的網域
不符合才會導向403頁面

不過這個方法只能防止其它網站使用你的資源
因為REFERER是可以偽造的
對於爬蟲之類的軟體就沒轍

留言