LifeType 中文開發論壇

開發 => 外掛程式 => 主題作者是: markwu 於 九月 16, 2005, 03:47:58 下午



主題: 防止盜連外掛程式
作者: markwu九月 16, 2005, 03:47:58 下午
原文:http://blog.markplace.net/marks_development_blog/2/2005/09/16/62

盜連一直都是我的網站頻寬最大的號殺手,記得當初還把網站架在精英的時後,一個月耗用頻寬 20G 是常有的事,真的很感謝他們每次都幫我免費增加頻寬。從那時起,對盜連的人就真的很不爽。

所以這個 plugin 就是用來防止盜連使用的。安裝方式很簡單:

1. 下載防止盜連外掛程式。
2. 解壓縮後把 hotlinkprevention 這個目錄放到你的 /plog/plugins 目錄下。
3. 然後把 個人網誌設定 » 外掛中心 重新整理一次,看看 hotlinkprevention 這個外掛程式有沒有出現在列表中。如果有,就代表安裝完成了。

設定的方式如下:

1. 首先到 全部站台管控 » 全域防止盜連設定 進行設定:
 - 啟動:啟動此外掛程式後,此設定將應用到所有使用者,成為所有使用者的外掛程式預設值。
 - 使用者設定:允許使用者自行設定本外掛程式,使用者將可以有自己的設定值。
 - 空白逆向連結:允許逆向連結為空白值。
 - 逆向連結列表:允許逆向連結列表。此表為正向表列,列在下列表中的網站將可以直接連結你的資源;沒有列在下方的網站將無法連結你的資源。
 - 擴充檔名:管制擴充檔名列表。此表為正向表列,列在下方的擴充檔名將受本外掛程式的管制;沒有列在下方的擴充檔名將可以讓其他網站任意連結。
2. 如果你允許使用者可以自訂。那麼你的使用者可以到 個人網誌設定 » 網誌安全管理 » 防止盜連設定 來更改設定。

就這樣了。應該夠簡單了吧!

題外話,這是我第一個採用 CC 授權的外掛程式,目的就是用來防止這些商業的 Open Source 禿鷹,算是為我的程式加上一個法源依據。

另外,我把這個外掛程式 Check In 進 SVN 的時候,馬上有一個叫做 Alexander Kaiser 人,發了一封信,他信中是寫,這功能可以透過修改 .htaccess 來作到,方法如下:

程式碼:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([a-z0-9]+).yourdomain.com(.*) [NC] RewriteRule resserver.php?.*$ - [F,NC]

可能是不爽我使用『不得商業使用』的授權吧。你可以自行試試,我覺得他的這個方法更簡單。

Mark


主題: Re: 防止盜連外掛程式
作者: catseyes九月 17, 2005, 12:00:15 上午
Fatal error: Call to undefined function: keyexists()
in /home/.anabel/myname/mydominname.com/blog/plugins/hotlinkprevention/class/security/hotlinkpreventionfilter.class.php on line 34

=.= 小問題跑出來了.....如何解決呢!?

沒辦法進入我的 plog 裡面....一進去就出現這錯誤訊息.....


主題: Re: 防止盜連外掛程式
作者: Netizen九月 17, 2005, 10:00:38 上午
I cannot download it from Mark's site.
It says 403 forbidden.


主題: Re: 防止盜連外掛程式
作者: Netizen九月 17, 2005, 10:22:09 上午
Finally I downloaded the file. Thanks.
Maybe the server is too busy?


主題: Re: 防止盜連外掛程式
作者: Netizen九月 17, 2005, 03:16:19 下午
Mark,
从你的站点下载的hotlinkprevention外挂包里面的locale目录没有提供locale_zh_CN.php简体中文的版本,我写了一个,放在本文的附件里了。
而且,你的locale_en_UK.php文件里面后半部怎么是recentcomment的内容,我也给删了 :-P


主題: Re: 防止盜連外掛程式
作者: Netizen九月 17, 2005, 03:44:24 下午
请问,如何验证这个防盗链的外挂包能正常工作?我大概试了一下,别的站点依旧可以引用我首页的一个图片呀?(我清空了浏览器的cache了) :-(
谢谢。


主題: Re: 防止盜連外掛程式
作者: markwu九月 18, 2005, 10:50:13 上午
Fatal error: Call to undefined function: keyexists()
in /home/.anabel/myname/mydominname.com/blog/plugins/hotlinkprevention/class/security/hotlinkpreventionfilter.class.php on line 34

=.= 小問題跑出來了.....如何解決呢!?

沒辦法進入我的 plog 裡面....一進去就出現這錯誤訊息.....

忘了說!Hotlinkprevention 需要 1.0.2 才能用。下禮拜吧,應該 1.0.2 會釋出。

Mark


主題: Re: 防止盜連外掛程式
作者: Netizen九月 18, 2005, 12:02:00 下午
Fatal error: Call to undefined function: keyexists()
in /home/.anabel/myname/mydominname.com/blog/plugins/hotlinkprevention/class/security/hotlinkpreventionfilter.class.php on line 34

=.= 小問題跑出來了.....如何解決呢!?

沒辦法進入我的 plog 裡面....一進去就出現這錯誤訊息.....

忘了說!Hotlinkprevention 需要 1.0.2 才能用。下禮拜吧,應該 1.0.2 會釋出。

Mark

哦?我用1.0.1却没有报错。只是不知道到底work了没有 :-S


主題: Re: 防止盜連外掛程式
作者: markwu九月 27, 2005, 11:12:29 上午
1.0.2 出來了,請去 upgrade 吧! :-D

Mark


主題: Re: 防止盜連外掛程式
作者: FIEND十月 04, 2005, 09:57:51 上午
用 url 重編寫模組 會造成 apache 的負擔

上述那句 usel 重編寫模組 是判斷 user 的 borswer 的 header 內的 來源網址是否正確  無法完全阻絕盗連

其實小弟較建議大家用 mine 的方式 利用程式拉出 放在 html目錄 以外的檔案

然後再去寫 阻擋的邏輯  然後 控制是否 吐出 檔案給user

阻擋的邏輯就可以 做到 上述的判斷外 也可以判斷是否為會員又或者是否為....

提供個人小小的看法 ^^


主題: Re: 防止盜連外掛程式
作者: FIEND十月 04, 2005, 10:11:31 上午
ps php 的 $_SERVER 也可以判斷 HTTP_REFERER

您可以

<?PHP
echo "<pre>";
print_r($_SERVER) ;
?>

去找出它 然後 與 上述小弟提供的方法 法 判斷是否要吐出 file 再 修改mine 吐出檔案給 user

^^



主題: Re: 防止盜連外掛程式
作者: markwu十月 04, 2005, 10:16:21 上午
ps php 的 $_SERVER 也可以判斷 HTTP_REFERER

您可以

<?PHP
echo "<pre>";
print_r($_SERVER) ;
?>

去找出它 然後 與 上述小弟提供的方法 法 判斷是否要吐出 file 再 修改mine 吐出檔案給 user

^^



Hi FIEND:

hotlinkprevention plugin 已經這麼做了:
1. 他透過 $_SERVER 中的 referer 來判斷允許的 referer 來源
2. 另外也透過 pLog 檔中心的 metadata (來自上傳時對 檔案 MIME 的判斷,會自動存在 DB 中)來判斷要擋住哪一種副檔名

Mark


主題: Re: 防止盜連外掛程式
作者: FIEND十月 04, 2005, 11:14:32 上午
^^ 了解這套軟體真是不錯 不好意思 小弟剛接觸這套系統 不是很了解

慢慢待小弟 完全了解後 希望可以幫上一點小忙


主題: Re: 防止盜連外掛程式
作者: dekuo二月 02, 2006, 08:51:25 下午
ps php 的 $_SERVER 也可以判斷 HTTP_REFERER

您可以

<?PHP
echo "<pre>";
print_r($_SERVER) ;
?>

去找出它 然後 與 上述小弟提供的方法 法 判斷是否要吐出 file 再 修改mine 吐出檔案給 user

^^



Hi FIEND:

hotlinkprevention plugin 已經這麼做了:
1. 他透過 $_SERVER 中的 referer 來判斷允許的 referer 來源
2. 另外也透過 pLog 檔中心的 metadata (來自上傳時對 檔案 MIME 的判斷,會自動存在 DB 中)來判斷要擋住哪一種副檔名

Mark

謝謝 Mark 提供這麼棒的 plugin !
不過我在 Firefox 1.5.0.1 跟 IE 6.0 在 Cache 都確定清空的情形下, 偶爾還是可以秀出圖 ..
但是再 Reload 一次就又看不到了 ... 在 Opera 則百發百中 ... 看不到就是看不到


主題: Re: 防止盜連外掛程式
作者: markwu二月 02, 2006, 10:03:58 下午
如果你有打開 http_cache,那麼秀出的圖是你 browser 中的圖。

 Mark


主題: Re: 防止盜連外掛程式
作者: yufeng二月 03, 2006, 09:17:44 上午
hi,mark, 谢谢你的插件
最近我从1.0.2升级到1.0.3后,发现启用这个外挂程式后,所有的图片都显示不出来了

Referer Lists里默认的内容是 http://{username}.DOMAIN-NAME

如果在Referer Lists 里面添加一条  http://yufeng.DOMAIN-NAME就正常了。。。

btw。。我使用了二级域名, 不知道哪里设置出了问题,以前使用好的。。。


主題: Re: 防止盜連外掛程式
作者: dekuo二月 03, 2006, 01:14:42 下午
如果你有打開 http_cache,那麼秀出的圖是你 browser 中的圖。

 Mark

我發現我的問題了 ...
其實我在 LiefType 上的 Cache 都有關掉 ....
但是千算萬算就是漏算了我裝了很久的 Google Web Accelerator (http://webaccelerator.google.com/) ...
關掉就正常了 ... 真是搞烏龍啊 ....  :-$


主題: Re: 防止盜連外掛程式
作者: maomaode二月 08, 2006, 10:31:47 下午
刚刚尝试了这个外挂, 在两个站点中进行了测试, 但是没有完全测试成功,
我在全站设定中已经启用了这个外挂, ”空白逆向链接“功能测试成功
但是“逆向链接列表  *”确没有测试成功,B站点没有列在“逆向链接列表  *” 中, 但是仍然可以访问到A站点的资源,比如图片。文档等等。
不知道我的操作步骤那里有遗漏, 我的系统已经更新到1.0.3,测试过程中是清空浏览器的cache的,
PS。 我是开启subdomain的


主題: Re: 防止盜連外掛程式
作者: jameshsi六月 19, 2006, 01:33:58 下午
我也來貢獻一點吧,今天實驗的結果,若是你有允許 multi-domain , 只需要在你的 .htaccess 中加入以下即可:

RewriteCond %{HTTP_REFERER} !^http://yourdomain.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://([a-z0-9]+).yourdomain.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://([a-z0-9]+).yourdomain.com$      [NC]
RewriteRule resserver.php?.*$ - [F,NC]


主題: Re: 防止盜連外掛程式
作者: markwu七月 04, 2006, 01:39:35 上午
其實如果 .htaccess 可以修改的,那麼使用 mod_rewrite 是最好的,因為他最不會佔用系統的資源。

Mark


主題: Re: 防止盜連外掛程式
作者: jay七月 26, 2006, 02:22:19 下午
Mark前輩:
                 我安裝了本外掛,測試也感覺蠻正常的,但是後來當我點選文章內有關影音的檔案要播放,就無法播放?!但我關掉外掛就OK,請問是設定上的問題嗎?
                 我也有將我的網域http://jayclub.no-ip.org/jayblog加入,可是就是無法播放!!