2015-12-07 143 views
0

我的網站是關於圖像。所以我想找到一種方法來阻止使用(我猜).htaccess直接訪問圖像文件夾。 從我讀過的一個辦法是將圖像文件夾從網絡根,然後用下面的代碼添加一個.htaccess文件:如何拒絕使用htaccess直接訪問文件夾

deny from all 

因此,這裏是我的問題:

  • 如果我不移動文件夾以外的Web根目錄,我會有任何問題嗎?因爲我將不得不對所有頁面中的代碼進行大量更改。移動web-root之外的images文件夾的邏輯是什麼?

  • 有沒有其他安全的方法來做到這一點?我擔心如果添加.htaccess將拒絕訪問所有圖像,那麼我將無法共享我的頁面並使用它們中的圖像。

UPDATE:

那麼如果我使用下面的代碼,以防止我的圖片的盜鏈,但不會允許特定網站。

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yordomain2.com [NC] 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yordomain3.com [NC] 
RewriteRule \.(jpg|jpeg|png|gif)$ http://page-to-redirect [NC,R,L] 

回答

1

如果你移動你的網站根目錄外的圖片文件夾,你不需要那麼.htaccess。無法從外部訪問您的Web根目錄之外的目錄。

所以你可以做到兩個,但不能在一起。 反正您的圖片無法在您的網站上使用,只要它們無法訪問。要在您的網站上顯示圖片,它必須是「可加載的」。

希望有所幫助。

+0

謝謝,我感謝你的意見。所以這意味着我不能否認我的圖片,無論我選擇哪個,因爲它們不會「可加載」?你是這個意思嗎? – Mdermez

+0

是的,這是正確的。技術上在您的頁面上顯示圖像與下載該圖像相同。 –

1

1)使用的.htaccess重定向所有請求到圖像文件夾到的index.php腳本:

# Turn rewriting on 
Options +FollowSymLinks 
RewriteEngine On 
# Redirect requests to index.php 
RewriteCond %{REQUEST_URI} !=/index.php 
RewriteCond %{REQUEST_URI} !.*\.png$ [NC] 
RewriteCond %{REQUEST_URI} !.*\.jpg$ [NC] 
RewriteCond %{REQUEST_URI} !.*\.gif$ [NC] 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

2)在你的index.php做一些邏輯來確定是否圖像應送達。

// Do some checking... 
$safe = true; // determine if the image should be served 
if($safe){ 
    header("content-type: image/png"); // or gif or jpg 
    readfile($_GET['q']); 
} 
+0

你可以請檢查我更新的問題:)我感謝你的意見。 – Mdermez

0

您可以添加爲.htaccess

Options -Indexes 

,以防止圖像文件夾中的內容審查。

另一種可以將索引文件放入圖像文件夾的方法。

如果您在頁面上發佈一些圖片,則無法限制它們的下載。

+0

使用HTML5,您可以將圖像繪製到畫布上,這會讓普通用戶難以下載圖像。 –

+1

我同意,但是printscreen可以抓住所有東西,現在非常流行,特別是對於平板電腦用戶。種植也不是什麼難事。我想,水印仍然是更好的保護。 – toor

1

我使用了同樣的問題:

Options -Indexes 
RewriteEngine On 
# Only from this website 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com [NC] 
RewriteRule \.(jpe?g|gif|png|bmp)$ - [NC,F] 

# To prevent access to crawlers 
RewriteCond %{HTTP_USER_AGENT} (?:google|tineye) [NC] 
RewriteRule \.(jpe?g|gif|bmp|png)$ - [NC,F] 

它並沒有真正阻止訪問到的圖像,但獲得來自其他網站的頁面。

相關問題