史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 程式 & 網頁設計技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-09-02, 06:26 AM   #1 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 教學 - 使用ASPJPEG新增水印的方法 

使用ASPJPEG新增水印的方法  這些天研究了一下ASP的自動新增圖片水印的方法。

  因為原先我的圖片總是被盜鏈,因此我使用程式將圖片增加了水印,然而我檢視了一下昨天和今天的網站日誌記錄,發現我的圖片依舊被盜鏈嚴重。

  兩天的時間,我的博客就有20多G的訪問流量,圖片所在的目錄upload佔用了18.6G,37萬次點擊,而文章所在目錄只用了1.3G流量,4萬次點擊,從來源看,以大站盜鏈的圖片所佔流量最大,CSDN和BOKEE占前兩位,這兩個位址一共帶來4萬多次盜鏈。

  當然,如果徹底防止盜鏈,我以前也想過使用類似ISAPI Rewrite的程式來實現,但實際使用後,我發現ISAPI Rewrite將所有的外部鏈接全部都禁止了,但是我並不想禁用全部外部鏈接,因此還是最終沒有使用,不過如果現在這種盜鏈情況繼續進行的話,我不得不考慮重新啟用ISAPI Rewrite這個程式了。

  下面是我使用程式來增加水印的方法,雖然以我目前的使用效果看,是比較失敗的案例。

  增加水印使用的是一個名叫ASPJPEG的ASP元件,我是在OBlog的網站上下載的,版本是1.5版本,使用這個圖像處理元件,可以輕鬆地做出圖片的縮略圖和為圖片加上水印功能。下面簡單介紹一下使用方法:

  先要到Oblog的下載網頁面上,在「OBLOG相關元件下載」處,下載AspJpeg v1.5.0.0,然後執行下載得到的文件,安裝該元件。

  然後在ASP代碼裡增加一點點代碼即可,增加的位置可以放在上傳圖片完成後,取得圖片位址,進行修改。對於Z-Blog的使用者,直接將下面代碼複製到c_system_lib.asp文件的TUpLoadFile類中的Upload函數的結尾即可實現水印功能。

  1、為圖片加入水印功能

Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg") ' 建立對像
Jpeg.Open BlogPath & "/upload/" & FileName ' 圖片所在位置
Jpeg.Canvas.Font.Color = &H000000 ' 顏色,這裡是設置成:黑
Jpeg.Canvas.Font.Family = "方正隸變簡體" ' 設置字體
Jpeg.Canvas.Font.Bold = False '是否設置成粗體
Jpeg.Canvas.Font.Size = 26 '字體大小
Jpeg.Canvas.Font.Quality = 4 ' 文字清晰度
Jpeg.Canvas.Print Jpeg.OriginalWidth/2-170,Jpeg.OriginalHeight-30, "WWW.WILLIAMLONG.INFO" '水印文字
Jpeg.Save BlogPath & "/upload/" & FileName ' 儲存文件
Set Jpeg = Nothing

  2、為圖片製作縮略圖

Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg") ' 建立對像
Jpeg.Open BlogPath & "/upload/" & FileName ' 圖片所在位置
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
' 設置縮略圖大小(這裡比例設定為50%),也可以給他準確的數值,比如Jpeg.Width=120
Jpeg.Save BlogPath & "/upload/" & FileName ' 儲存文件
Set Jpeg = Nothing
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
longlie (2007-10-21)
感謝您發表一篇好文章
舊 2006-09-02, 06:27 AM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

IIS網站防盜鏈下載的解決方案  「盜鏈」的定義是:此內容不在自己服務器上,而通過技術手段,繞過別人放廣告有利益的最終頁,直接在自己的有廣告有利益的網頁面上向最終用戶提供此內容。 常常是一些名不見經傳的小網站來盜取一些有實力的大網站的位址(比如一些音樂、圖片、軟件的下載位址)然後放置在自己的網站中,通過這種方法盜取大網站的空間和流量。

  為什麼會產生盜鏈

  一般瀏覽有一個重要的現象就是一個完整的網頁面並不是一次全部傳送到客戶端的。如果請求的是一個帶有許多圖片和其它訊息的網頁面,那麼最先的一個Http請求被傳送回來的是這個網頁面的文本,然後通過客戶端的瀏覽器對這段文本的解釋執行,發現其中還有圖片,那麼客戶端的瀏覽器會再發送一條Http請求,當這個請求被處理後那麼這個圖片文件會被傳送到客戶端,然後瀏覽器回將圖片安放到網頁面的正確位置,就這樣一個完整的網頁面也許要經過發送多條Http請求才能夠被完整的顯示。基於這樣的機制,就會產生一個問題,那就是盜鏈問題:就是一個網站中如果沒有起網頁面中所說的訊息,例如圖片訊息,那麼它完全可以將這個圖片的連接到別的網站。這樣沒有任何資源的網站利用了別的網站的資源來展示給瀏覽者,提高了自己的訪問量,而大部分瀏覽者又不會很容易地發現,這樣顯然,對於那個被利用了資源的網站是不公平的。一些不良網站為了不增加成本而擴充自己站點內容,經常盜用其他網站的鏈接。一方面損害了原網站的合法利益,另一方面又加重了服務器的負擔。

  我遇到的盜鏈

  我的網站遇到最多的是兩類盜鏈,一是圖片盜鏈,二是文件盜鏈。曾經有一個訪問量極大的網站盜鏈我網站的圖片,一天竟然消耗了數G的流量。同時,我站放的不少幾十兆的大型軟件也常遭到文件盜鏈,大量消耗我站資源。

  盜鏈的解決方案

  其實通過WEB服務器的URL過濾技術,這個傷腦筋的問題會很容易得到解決。

  如果WEB服務器用的是APACHE的話,那麼使用APACHE自帶的Url Rewrite功能可以很輕鬆地防止各種盜鏈,其原理是檢查REFER,如果REFER的訊息來自其他網站則禁止訪問所需要的資源。

  那麼,IIS支持UrlRewrite嗎?

  答案很簡單,不支持。但是我們可以通過安裝第三方服務器擴展讓IIS支持。

  目前有一種產品能比較好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。

  下載位址在: http://www.helicontech.com/download/

  這裡只有ISAPI Rewrite的一個LITE版本是免費的,其它都是trial版本。ISAPI Rewrite Lite的版本功能不支持虛擬站點配置,元資料監測和自動快取記憶體清理。 但是基本的UrlRewrite功能都支持。

  如何進行UrlRewrite的設置?

  isapi_rewrite利用正則表達式進行替換規則的表示。

  下面是一個簡單的例子,我想讓我們的用戶輸入 http://localhost/test-12314.html 實際上訪問的是 http://localhost/test.asp?id=12314 。那麼我們的匹配表達式應該是 /test-([0-9]*).html 對應的格式化表達式應該為 /test.asp\?id=$1 。

  進行正則表達式的編寫的時候,可以利用isapi_rewrite提供的正則表達式測試工具(預定安裝提供),進行除錯。做好了匹配表達式和格式化表達式,我們可以把它們放到安裝目錄下的httpd.ini裡面。文件儲存後,不需重新啟動iis即可生效。

  對於我的網站,我防盜鏈的方法是在httpd.ini裡面加入如下語句

RewriteCond Host: (.+)

RewriteCond Referer: (?!http://\1.*).*

RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

  然後重啟IIS,這時防盜鏈就開始起作用了,其他網站盜鏈過來的請求都會被拒絕。

  至此,我也終於可以擺脫了被盜鏈的煩惱了。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
longlie (2007-10-21)
感謝您發表一篇好文章
舊 2006-09-02, 06:29 AM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

防止垃圾廣告和盜鏈的新方法  前天晚上,我遭到了垃圾留言廣告的襲擊。

  晚上我剛去打了2個小時遊戲,就有人用程式狂灌我幾百個垃圾留言廣告。這時我也發現目前的防垃圾留言系統存在漏洞,那個發廣告的傢伙先用程式偽造了refer,然後每篇文章只有一個鏈接,這樣就繞過了我設置的過濾,達到了大量發送垃圾訊息的目的。

  看來我目前的反垃圾留言程式還是有問題的。於是我經過一晚上的重新編碼,增加了一個自動封IP位址的功能,如果判斷半個小時內同一個IP位址留言中包含的超級連接數目超過10,就判斷其為垃圾留言發送者,系統就自動封其IP位址,阻止這個IP位址繼續發送留言。

  現在看看目前的反垃圾系統是否能較好工作,如果還不行的話,只好啟動驗證碼了,雖然個人感覺驗證碼會降低用戶體驗。這個反垃圾廣告插件是基於原版Z-Blog 1.5系統的,如果你也在用Z-Blog 1.5這個系統,也可以下載使用,對於1.6的測試版,本程式應該也可以使用,不過我沒測試過。

  點擊這裡下載:Z-Blog反垃圾廣告插件。

  另外對於垃圾引用,我也想到一個新的對策,就是當系統接收到一個引用的時候,先取得那個位址的內容,如果包含本站的鏈接,說明是正常引用,否則就是垃圾引用。

  最後對於圖片的盜鏈,我終於無法繼續忍受了,新增水印的方法基本上沒有任何作用,過了這麼長時間,盜鏈的情況依舊沒有減少,盜鏈佔用了太多的流量和系統資源,每天佔用了10G多的流量,嚴重影響了我的博客的正常用戶訪問,因此我只好啟用了ISAPI_Rewrite這個最終殺手來防止盜鏈,不過目前我允許bloglines、zhuaxia、google、baidu這幾個網站引用我站圖片,如果你也需要引用我站圖片,請把域名告訴我,我審核後可以開放。

  ISAPI_Rewrite的httpd.ini內容寫的是下面內容,如果你也遇到盜鏈的困擾,建議可以參考一下:

RewriteCond Host: (.+)
RewriteCond Referer: (?!http://(?:www\.williamlong\.info|www\.moon-blog\.com|www\.bloglines\.com|www\.zhuaxia\.com|www\.google\.com|cache\.baidu\.com)).+
RewriteRule .*\.(?:jpg|kmz|kml|zip) /block.gif [I,O]

  註釋:第二行裡面的域名是允許鏈接圖片的網站列表,目前我允許我自己的兩個站和另外bloglines、zhuaxia、google、baidu這四個網站引用我站文件,其他網站的引用被禁止。

  第三行是禁止引用的文件類型,包括jpg圖片、Google Earth的kmz和kml、zip文件。當然,還可以增加其他類型,比如gif、rar等,因為我站沒有那些文件,所以沒有新增上去。

  更新:晚上看了一下IIS日誌,圖片目錄佔用流量降到了1.5G,一天時間ISAPI_Rewrite阻擋了3萬4千次盜鏈請求,真是個不錯的成績啊。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
longlie (2007-10-21)
感謝您發表一篇好文章
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 06:01 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1