利用apache偽靜態技術防止盜鏈

2022-08-11 20:24:10 字數 1465 閱讀 3835

(在我們製作**的過程中,可能會遇到這樣的問題,就是其他的**直接盜用了我們**的或css或js,這樣可能會大大增加我們自己**的負載。

所以,我們應該考慮一下怎樣防止這樣的事情發生。)

下面我們來模擬乙個防盜煉的情況:

比如我們的**下面有乙個publicimage目錄和乙個privateimage目錄,其中publicimage目錄可以讓別人訪問,而privateimage目錄只能自己訪問。

我們應該怎樣去實現呢?

我們能想到的方法是:利用apache偽靜態技術完成,那應該怎樣去做了,下面我們介紹兩種方式:

(apache虛擬主機網域名稱的配置,以及rewrite元件的開啟和".htaccess"檔案配置我這裡就不說了,大家可以到網上搜尋,這些東西不是很難哈。)

第一種方式,修改.htaccess檔案配置(.htaccess檔案是分別放在publicimage和privateimage資料夾下哈)

在privateimage資料夾中的.htaccess檔案中寫入:

order deny, allow

deny from all

allow from 127.0.0.1

以上**表示,先檢視deny,在檢視allow

決絕所有的訪問,但是允許本地訪問。

咋一看我們似乎是解決了我們上面說過的問題,但是這樣的設定有乙個bug,就是比如我們本地的apache配置了兩個網域名稱分別為:www.panchao.com和www.test.com。而需要控制的上面兩個資料夾存在於www.panchao.com這個網域名稱下,但是就上面的.htaccess規則來說,我們使用www.test.com網域名稱去訪問privateimage資料夾中的也是沒問題的。這就和我們的想法相悖了,我們希望只有www.panchao.com這個網域名稱能夠訪問privateimage資料夾下的。由此我們引出了第二種防盜煉方式。

第二種方式,也是修改.htaccess檔案配置,但和第一種方式的配置很不一樣。

在privateimage資料夾中的.htaccess檔案中寫入:

rewriteengine on

#我們怎麼知道,請求就是www.panchao.com發來的呢? 使用 http的 referer頭資訊

#如果你請求的是乙個jpg, 就禁止

以上**代表的意思就是:

首先是rewrite引擎開啟

然後,我們判斷發出請求的http_referer是不是www.panchao.com,如果不是,那麼訪問.jpg檔案的請求就被禁止。

tips:雖然上面的技術能夠實現防盜煉,但是這些東西歸根結底是人寫出來的,如果有人就是想盜鏈,比如他修改了請求的http_referer,還是能夠進行盜鏈的,這就需要我們在處理這些問題的時候想的更周全一點。

但是,我覺得,如果我們做到了上面的設定,防止90%以上的盜鏈是沒有問題的哈。

apache大師 偽靜態 Apache配置偽靜態

apache配置偽靜態 注意 本文中關於apache的配置修改,一定要記得重啟apache服務 偽靜態的實現有多種方法,比如通過獲取path info資訊使用php邏輯來達到偽靜態,使用apache提供的rewrite來達到偽靜態,本文主要對apache提供的rewrite實現偽靜態做個記錄 1 開...

apache偽靜態轉為nginx偽靜態

1.將原apache專案中的偽靜態檔案轉化為nginx的偽靜態 2.將轉化後的偽靜態覆蓋原來的偽靜態檔案內的內容 3.配置nginx伺服器的檔案 4.重新啟動nginx伺服器 詳解 1 找到專案中的偽靜態檔案 vim開啟檔案,將內容複製出來 下面這個是本人的檔案 2 下面這個是自動轉化的 3 將轉化...

apache實現偽靜態

首先在apache裡開啟配置檔案httpd.conf,找到loadmodule rewrite module modules mod rewrite.so,將前面的 號刪掉,如果沒有這句話則自己新增一句。一般有倆種方法可以重寫url 第一 如果有修改httpd.conf許可權,可以直接在httpd....