李威 さぽている

          小說翻譯,日語相關轉移至http://blog.hjenglish.com/liwei

          如何破掉防盜鏈機制

          今天遇到一個問題,寫了一個頁面,抓取其他某站點的內容,然后重組成新的頁面,主要是一個圖片的展示(gallery)。

          但是該站點做了防盜鏈,圖片無法顯示,403.

          這種盜鏈主要是靠Referer來實現的,也就是說更改了Referer就能顯示圖片,但Referer不是在頁面編碼能解決的。

          Referer是瀏覽器發出的,只能更改瀏覽器才能更改Referer。

          firefox有一個插件refcontrol,可以做到這一點,不過不是我要說的

          繼續研究,該站提供一種embed功能,供其他頁面調用,此時就能允許其他站點直接顯示圖片。
          一般網站是不提供這種功能的,所以下面方法并不是所有網站適用的。

          通過對比header內容,最終知道是它在cookie里設定了一個字段,以此來判別。

          那么,只要我設定該值即可。
          兩種方法
          1.服務器端設定set-cookie,試驗證明,此法不可行,主要是domain無法更改到對應站點的domain下
          2.客戶端用javascript設定document.cookie。仍不行……,原因不明,大概也是無法改domain吧

          這下只剩最后一招了,在我的頁面里直接調用embed頁面,讓它替我設cookie,如何調用呢?
          首先想到用frame,試了下,frame和圖片幾乎同時發出request,這樣cookie還沒設定,請求圖片肯定403.
          又想到onload,呃,是在body完了后才調用,肯定不行
          后來看到,html的head里的文件先下載完畢后,再請求圖片。這點我以前也提到過,javascript代碼的執行順序 
          head里主要有2種文件調用,js和css。
          這里就不是什么正規寫法了,因為embed頁面既不是js文件,也不是css文件,但瀏覽器是不會管這個的,直接調用。
          一般也不會這么用……旁門左道
          先用了js這種,在src里寫上embed頁面地址,可以顯示圖片,但有個javascript錯誤。
          接著改進,用css的,會發現最終調用了兩次,一次是在開始,還有一次是在所有其他head文件全下載完之后
          有些小影響,但問題不大。

          時間比較晚,就懶得加上試驗代碼,OK,就這樣,完工。

          posted on 2010-08-10 00:19 李威 閱讀(845) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 津市市| 苗栗市| 神农架林区| 托克逊县| 揭阳市| 岑巩县| 昔阳县| 清新县| 右玉县| 小金县| 武清区| 霞浦县| 韶山市| 武乡县| 广灵县| 景谷| 那坡县| 哈巴河县| 太仆寺旗| 剑阁县| 白河县| 革吉县| 阳城县| 南充市| 都兰县| 马龙县| 吴江市| 富裕县| 定日县| 汕尾市| 鸡东县| 科技| 河池市| 台北市| 弥渡县| 静乐县| 永兴县| 镇沅| 汉沽区| 体育| 利辛县|