為了保護我的 Wordpress 網站圖片,我在上傳檔案夾中的 .htaccess 檔案中添加了幾行。
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^https://example.com/ [NC]
RewriteRule .? - [S=1]
RewriteRule .(gif|jpg|jpeg)$ - [NC,L,F]
一切正常,嘗試訪問圖片鏈接的用戶會發現 403 訊息。但是我注意到 Woocommerce 發送的電子郵件沒有顯示影像,可能是由于我添加的規則。我能怎么做?
uj5u.com熱心網友回復:
這些(網路)郵件客戶端很可能Referer 完全抑制了標頭,因此您需要在規則中允許為空 Referer。
但是,這也將允許直接“訪問影像鏈接”的用戶。但這不是“熱鏈接保護”。熱鏈接是指影像嵌入第三方網站(在另一個域上) - 這仍然應該被阻止(大部分時間)。
例如,修改您的規則以允許空 Referer標題:
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} ^https://example.com/ [NC]
RewriteRule .? - [S=1]
RewriteRule \.(gif|jpg|jpeg)$ - [NC,F]
(注意:您在最后一條規則中的文字點之前缺少反斜杠轉義。并且L這里不需要標志,因為F標志意味著L。)
但是,Webmail 客戶端也可能生成Referer與托管 Webmail 客戶端的(自定義)域相關的域。您將需要檢查 HTTP 請求以確定Referer這些請求的結果。不幸的是,由于網路郵件客戶端的不同性質,這可能很難/不可能可靠地過濾。
如果可能,電子郵件中使用的影像應存盤在不同的“未受保護”位置。
請注意,Referer標頭充其量是不可靠的。用戶可以選擇Referer在瀏覽器中隱藏標題。網站本身可以Referer使用referrer-policy 抑制現代瀏覽器中的標頭(如果您允許空的話,這將阻礙您的“熱鏈接保護” Referer)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/418323.html
標籤:
