【求助】httpd.conf 防盜連只能防圖片嗎? - PCZONE 討論區

返回   PCZONE 討論區 > ▲ ADSL_CABLE_FTTH 寬 頻 上 網 討 論 > -- 網站架設 / 免費空間 / 虛擬主機 專區 > ☉ -- 架 站 DIY 討 論 版


PCZONE 討論區



通知

☉ -- 架 站 DIY 討 論 版 有了寬頻後,可利用來架設 WWW / FTP / MAIL 等各種 SERVER,請在此版跟大家一起討論各種 SERVER 架設心得。

會員
【求助】httpd.conf 防盜連只能防圖片嗎?
我在 apache 的 httpd.conf 裡加了這一行:

Options -Indexes
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domian.com/.*$ [NC]
RewriteRule \.(gif|jpg|wmv|wma|swf|rm|rmvb|mp3|mid|exe|zip)$ - [F]

卻只能防圖片被盜連,其他的如 wmv、swf 等貼在別的網站照樣能夠播放,這是為什麼呢?

接著我便用 .htaccess 放在某個有 wmv 的目錄,但仍然無效。不知何故?

還有,httpd.conf 裡有一行
AllowOverride None
是不是要把這行的 None 改一下?但要改成什麼呢?

請各位大哥幫幫忙,不然網站的流量無法控制。感激不盡。

回覆
Passion

引用:
作者: 阿敏
卻只能防圖片被盜連,其他的如 wmv、swf 等貼在別的網站照樣能夠播放,這是為什麼呢?
首先,防盜連只是防君子不防小人,所以還是有辦法被破解,
只是一般人不會這麼做就是了

然後呢,防盜連的原理是由伺服器去檢查 HTTP_REFERER 這個變數,
除了這個變數可以偽造之外,
如果不是從瀏覽器下載 wmv 等影音檔,而是由 Media Player 直接播放,
那麼 Media Player 並不會送出這個 HTTP_REFERER 資訊,
所以就無法判斷這個檔案是不是被盜連了

除非你想要求使用者一定要先下載再播放,那麼你把

RewriteCond %{HTTP_REFERER} !^$

這行拿掉,同時把 AllowOverride 設成 All 就可以了

另外附帶一提,未來改版後的 WebAMP 會支援防盜連功能,
只要勾選要設定防盜連的檔案格式後,就可以擁有防盜連的功能了!
回覆
會員

謝謝 nopy 的回覆,終於明白了它的原理。因為有些CGI論壇,就是可以直接用[wmv][/wmv]的語法貼出盜連的影音檔的。

還有一個問題,就是我若想用 .htaccess 檔來設定防盜連以及只允許一個網站能連接我網上的資料,又該如何寫呢?httpd.conf 的話,只要再加上一行那個網站的位址就行了,如:

RewriteCond %{HTTP_REFERER} !^http://(www\.)?被允許的網站.com/.*$ [NC]

但用 .htaccess 的話,我就不知該如何寫了,因若只加了別人的網站,並不能成功,它還是不被允許顯示我網站的東西。

請幫忙看看以下這個 .htaccess 是不是有問題?是不是還要再加別的指令?

SetEnvIfNoCase Referer "^http://mydomain\.com/" local_ref=1
SetEnvIfNoCase Referer "^http://www\.mydomain\.com/" local_ref=1
SetEnvIfNoCase Referer "^http://otherdomain\.com/" local_ref=1
SetEnvIfNoCase Referer "^http://www\.otherdomain\.com/" local_ref=1
<FilesMatch "\.(gif|jpg|wmv|wma|swf|rm|rmvb|mp3|mid|exe|zip)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
Allow from XXX.XXX.XXX.XXX
</FilesMatch>

註:http://www.otherdomain.com 指該被允許連接資料的網站。
XXX.XXX.XXX.XXX 指該被允許連接資料的網站的IP。
回覆
會員

我之所以不用 httpd.conf 而改用 .htaccess,是因為 .htaccess 真的可以防 wmv 的盜連,但現在問題是,我要如何設定只允許某個網站可以連呢?就是這個部份弄不好。
拜託熟悉 apache .htaccess 語法的大哥們幫幫忙了。謝謝!
回覆
會員

以下這個文章是這裡以前的,但好像已被刪除,現我是從別處找到的:

3月30日再補充以下教學:

有人問說,如果要開放某些站台可以直接連結自己網站內的資料,該怎麼辦?

例如你想開放pczone.com.tw站上的貼圖,可以直接從自己的網站被連結使用,
那麼請在.htaccess檔案加入下面這新的3行字:

(以下這樣設定代表:除了自己網站以及PCZONE網站,其他網站仍無法盜連你站內的資料)

SetEnvIfNoCase Referer "^http://www\.pczone\.com\.tw/" local_ref=1
SetEnvIfNoCase Referer "^http://pczone\.com\.tw/" local_ref=1
SetEnvIfNoCase Referer "^http://自己網站的舊資料/" local_ref=
<FilesMatch "\.(txt|doc|gif|jpg|mp3)"> 
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
Allow from 202.43.85.163 <-這個IP,是PCZONE網站的固定IP,一定要打進去!
</FilesMatch>


請問這句:
http://自己網站的舊資料/
指的是什麼?
是自己網站的URL位址嗎?需要目錄名嗎?
回覆
Yanzi

引用:
作者: 阿敏
SetEnvIfNoCase Referer "^http://www\.pczone\.com\.tw/" local_ref=1
SetEnvIfNoCase Referer "^http://pczone\.com\.tw/" local_ref=1
SetEnvIfNoCase Referer "^http://自己網站的舊資料/" local_ref=
<FilesMatch "\.(txt|doc|gif|jpg|mp3)"> 
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
Allow from 202.43.85.163 <-這個IP,是PCZONE網站的固定IP,一定要打進去!
</FilesMatch>

請問這句:
http://自己網站的舊資料/
指的是什麼?
是自己網站的URL位址嗎?需要目錄名嗎?
試試看這樣用
改 httpd.conf
加入以下

引用:
<Directory "C:/Apache2/htdocs/XXXXX">
SetEnvIfNoCase Referer "^http://www\.yahoo\.com\.tw" local_ref=1
<FilesMatch "\.(txt|doc|gif|jpg|rm|wmv|mp3)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
</FilesMatch>
</Directory>
XXXXX <-- 保護檔案 txt|doc|gif|jpg|rm|wmv|mp3 丟這目錄 (改成你的目錄)
http://www\.yahoo\.com\.tw <-- 允許讀取的網址 (改成你的網址)
回覆
會員

引用:
作者: no1adsl
試試看這樣用
<Directory "C:/Apache2/htdocs/XXXXX">
SetEnvIfNoCase Referer "^http://www\.yahoo\.com\.tw" local_ref=1
<FilesMatch "\.(txt|doc|gif|jpg|rm|wmv|mp3)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
</FilesMatch>
</Directory>
剛試過了,還是不行;欲允許連接的那個網站還是無法顯示或下載。老實說,那個網站附有一個CGI論壇,想把一些影音檔開放給這個論壇。難道CGI-BIN目錄需要特別的設定嗎?
回覆
Yanzi

引用:
作者: 阿敏
剛試過了,還是不行;欲允許連接的那個網站還是無法顯示或下載。老實說,那個網站附有一個CGI論壇,想把一些影音檔開放給這個論壇。難道CGI-BIN目錄需要特別的設定嗎?
你現在狀況是如何?
A網站放 圖片,影音資料
B網站是論壇 連結A網站的資料

設定後
B網站顯示不出來 A網站的圖片,影音資料 嗎?

回覆
會員

引用:
作者: 阿敏
請問這句:
http://自己網站的舊資料/
指的是什麼?
是自己網站的URL位址嗎?需要目錄名嗎?
你的設定其實沒什麼大問題。
可能是你的 url 設定沒設好。

引用:
SetEnvIfNoCase Referer "^http://自己網站的名稱/" local_ref=1
之前好像少了 "1"。
至於你網站的,你可以只設定網域,也可以網域加目錄名稱都設定上去。
但是要注意,有設定目錄的話,代表檢查referer值會檢查到目錄也要相同才會通過。

假設站名是 aa.bb.cc.dd 目錄是 /xxx/zzz/
只想比對站名:
SetEnvIfNoCase Referer "^http://aa\.bb\.cc\.dd/" local_ref=1
目錄也要相同的比對:
SetEnvIfNoCase Referer "^http://aa\.bb\.cc\.dd/xxx/zzz/" local_ref=1

另外, .htaccess 放的位置也會有差別,.htaccess 的作用範圍,只有放置該檔的目錄,以及其下的子目錄才會有作用。是目錄不是網址喔。
如果其它的目錄已經有另外設定過權限的話,要檢查一下權限有沒有衝突。
回覆
會員

請教.目錄中如果有一個 php 檔.嘗試使用上面的方法 似乎沒用耶.
請問如何不讓 a.b.c/x.php 不讓人直接Link 這個 php ?

回覆


類似的主題
主題 主題作者 討論版 回覆 最後發表
關於 debian 6.0 和 xorg.conf 設定的問題 FLY -- FreeBSD & Linux 討 論 版 0 2011-04-29 08:01 PM
httpd.conf cgi問題求助 my6cc -- FreeBSD & Linux 討 論 版 1 2008-05-06 06:16 AM
vsftpd.conf 問題。 NoLan -- FreeBSD & Linux 討 論 版 1 2006-03-10 10:17 PM
【求助】關於ports的make.conf marcoyan -- FreeBSD & Linux 討 論 版 1 2004-01-02 06:33 PM
linux 的 snmpd.conf 要如何設定 noe -- 網 路 技 術 版 2 2001-10-01 12:55 PM






 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。