【求助】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 改一下?但要改成什麼呢? 請各位大哥幫幫忙,不然網站的流量無法控制。感激不盡。 |
[QUOTE=阿敏]卻只能防圖片被盜連,其他的如 wmv、swf 等貼在別的網站照樣能夠播放,這是為什麼呢?[/QUOTE] 首先,防盜連只是防君子不防小人,所以還是有辦法被破解, 只是一般人不會這麼做就是了 然後呢,防盜連的原理是由伺服器去檢查 [B]HTTP_REFERER[/B] 這個變數, 除了這個變數可以偽造之外, 如果不是從瀏覽器下載 wmv 等影音檔,而是由 Media Player 直接播放, 那麼 Media Player 並不會送出這個 [B]HTTP_REFERER[/B] 資訊, 所以就無法判斷這個檔案是不是被盜連了 除非你想要求使用者一定要先下載再播放,那麼你把 [B]RewriteCond %{HTTP_REFERER} !^$[/B] 這行拿掉,同時把 [B]AllowOverride[/B] 設成 [B]All[/B] 就可以了 另外附帶一提,未來改版後的 [URL=http://webamp.giga.net.tw/]WebAMP[/URL] 會支援防盜連功能, 只要勾選要設定防盜連的檔案格式後,就可以擁有防盜連的功能了! |
謝謝 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> 請問這句: [url]http://自己網站的舊資料/[/url] 指的是什麼? 是自己網站的URL位址嗎?需要目錄名嗎? |
[QUOTE=阿敏] 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> 請問這句: [url]http://自己網站的舊資料/[/url] 指的是什麼? 是自己網站的URL位址嗎?需要目錄名嗎?[/QUOTE] 試試看這樣用 改 httpd.conf 加入以下 [QUOTE] <Directory "C:/Apache2/htdocs/[COLOR=Blue]XXXXX[/COLOR]"> SetEnvIfNoCase Referer "^[COLOR=Green]http://www\.yahoo\.com\.tw[/COLOR]" 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> [/QUOTE] [COLOR=Blue]XXXXX[/COLOR] <-- 保護檔案 txt|doc|gif|jpg|rm|wmv|mp3 丟這目錄 (改成你的目錄) [COLOR=Green]http://www\.yahoo\.com\.tw[/COLOR] <-- 允許讀取的網址 (改成你的網址) |
[QUOTE=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> [/QUOTE] 剛試過了,還是不行;欲允許連接的那個網站還是無法顯示或下載。老實說,那個網站附有一個CGI論壇,想把一些影音檔開放給這個論壇。難道CGI-BIN目錄需要特別的設定嗎? |
[QUOTE=阿敏]剛試過了,還是不行;欲允許連接的那個網站還是無法顯示或下載。老實說,那個網站附有一個CGI論壇,想把一些影音檔開放給這個論壇。難道CGI-BIN目錄需要特別的設定嗎?[/QUOTE] 你現在狀況是如何? A網站放 圖片,影音資料 B網站是論壇 連結A網站的資料 設定後 B網站顯示不出來 A網站的圖片,影音資料 嗎? |
[QUOTE=阿敏]請問這句: [url]http://自己網站的舊資料/[/url] 指的是什麼? 是自己網站的URL位址嗎?需要目錄名嗎?[/QUOTE] 你的設定其實沒什麼大問題。 可能是你的 url 設定沒設好。 [quote] SetEnvIfNoCase Referer "^http://自己網站的名稱/" local_ref=1 [/quote] 之前好像少了 "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 ? |
[QUOTE=no1adsl]你現在狀況是如何? A網站放 圖片,影音資料 B網站是論壇 連結A網站的資料 設定後 B網站顯示不出來 A網站的圖片,影音資料 嗎?[/QUOTE] 我若用 No.1 文章那裡我說的 httpd.conf 設定,B網站不但可以正常顯示A網站的圖片,且可以成功防止其他網站盜連圖檔。但此設定卻無法防止其他網站盜連多媒體的檔案,如 wmv、rm、mp3等。因此,我就想改為用 .htaccess 來解決這個防止盜連 wmv、rm、mp3等多媒體的問題。 但用 .htaccess 之後,是防了其他網站對多媒體檔案的盜連,卻連B網站也受到影響;B網站也播放不出或下載不了A網站的檔案了。 現在需要解決的,是希望不但能防其他網站盜連 wmv等檔案,同時也能讓B網站正常播放或下載。 試過以上種種寫法,都不能成功。我已經將 httpd.conf 裡的 AllowOverride None 改為 AllowOverride All。不知還有什麼需要修改的? |
[QUOTE=mus000]你的設定其實沒什麼大問題。 可能是你的 url 設定沒設好。 之前好像少了 "1"。 SetEnvIfNoCase Referer "^http://aa\.bb\.cc\.dd/xxx/zzz/" local_ref=1 另外, .htaccess 放的位置也會有差別,.htaccess 的作用範圍,只有放置該檔的目錄,以及其下的子目錄才會有作用。是目錄不是網址喔。 如果其它的目錄已經有另外設定過權限的話,要檢查一下權限有沒有衝突。[/QUOTE] 我在 httpd.conf 有將其中的 AllowOverride None 改為 AllowOverride All,這樣夠嗎?要如何檢查權限有無衝突? 還是要將原本設定的內容 (No.1文章裡)刪除? |
[QUOTE=阿敏]但用 .htaccess 之後,是防了其他網站對多媒體檔案的盜連,卻連B網站也受到影響;B網站也播放不出或下載不了A網站的檔案了。 現在需要解決的,是希望不但能防其他網站盜連 wmv等檔案,同時也能讓B網站正常播放或下載。 試過以上種種寫法,都不能成功。我已經將 httpd.conf 裡的 AllowOverride None 改為 AllowOverride All。不知還有什麼需要修改的?[/QUOTE] 大致功能都可以了,只差B網站不能秀A網案的檔嗎? 那就把B網站的網址加到 allow from 裡。 比如: 假設A網站是 aa.bb.com ,IP是aa.bb.cc.dd <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 aa.bb.com Allow from aa.bb.cc.dd </FilesMatch> |
[QUOTE=Spen]請教.目錄中如果有一個 php 檔.嘗試使用上面的方法 似乎沒用耶. 請問如何不讓 a.b.c/x.php 不讓人直接Link 這個 php ?[/QUOTE] 你可以用 Location 來指出該檔案的url 位置。 <Location /x.php> order allow,deny allow from 你要的設定1 allow from 你要的設定2 ...... </Location> |
[QUOTE=mus000]大致功能都可以了,只差B網站不能秀A網案的檔嗎?[/QUOTE] 現在有個重大的發現!就是原來我若用了 SetEnvIfNoCase Referer 那一組設定在 .htaccess 裡,連A網站自己也不能顯示圖片、播放影音檔了,那就更不要說B網站了!這是怎麼回事?但若用 Rewrite 功能卻沒問題。可我想用 SetEnvIfNoCase Referer 那一組,是不是若要用 SetEnvIfNoCase Referer,在 httpd.conf 裡要特別注意什麼嗎?該去設定什麼呢? |
[QUOTE=阿敏]現在有個重大的發現!就是原來我若用了 SetEnvIfNoCase Referer 那一組設定在 .htaccess 裡,連A網站自己也不能顯示圖片、播放影音檔了,那就更不要說B網站了!這是怎麼回事?但若用 Rewrite 功能卻沒問題。可我想用 SetEnvIfNoCase Referer 那一組,是不是若要用 SetEnvIfNoCase Referer,在 httpd.conf 裡要特別注意什麼嗎?該去設定什麼呢?[/QUOTE] 你的狀況有點奇怪。 照理說,前面的方法都是可行的,包括你自己找的(No3)。 只是設定條件看個人喜好的差異而已。 剩下的可能是一些小地方沒注意到。 建議你重新試看看,把狀況再重新整理一下,也許問題會比較清楚。 比如,你有改過 httpd.conf 設定時,apache 有重新起動嗎? 使用 .htaccess 的好處是,每次修改完,有新連線時會自動生效。 |
[QUOTE=mus000]你的狀況有點奇怪。 你有改過 httpd.conf 設定時,apache 有重新起動嗎? 使用 .htaccess 的好處是,每次修改完,有新連線時會自動生效。[/QUOTE] 改 httpd.conf 之後有重新啟動的。 那我再檢查看看,若有問題,我再向您求教。謝謝您! |
回覆: 【求助】httpd.conf 防盜連只能防圖片嗎? [IMG]http://www.arms-cool.net/images/AC_TOP.gif[/IMG] 太好了~正要找這篇文章 還好有保留到類似的 PCZONE真是個大寶庫阿:D 順便TEST圖片有沒有被盜連成功:jump: |
所有時間均為 +8。現在的時間是 07:43 PM。 |
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。