隨筆-31  評論-7  文章-0  trackbacks-0
            2009年8月4日

          內(nèi)容如下:

           

          Code

          大家注意身體啊 



          --------------------------
          09博客園紀(jì)念T恤
          新聞:網(wǎng)站評測:搜狐博客 VS 我燒網(wǎng)
          網(wǎng)站導(dǎo)航: 博客園首頁  個人主頁  新聞  社區(qū)  博問  閃存  找找看
          文章來源:http://www.cnblogs.com/xiaoao808/archive/2009/08/25/1553578.html
          posted @ 2009-08-25 13:33 破名超難起 閱讀(160) | 評論 (0)編輯 收藏

          防盜鏈原理:

          http標(biāo)準(zhǔn)協(xié)議中有專門的字段記錄referer

          一來可以追溯上一個入站地址是什么

          二來對于資源文件,可以跟蹤到包含顯示他的網(wǎng)頁地址是什么。

          因此所有防盜鏈方法都是基于這個Referer字段

          網(wǎng)上比較多的2種

          一種是使用apache文件FileMatch限制,在httpd.conf中增加 ( 其實(shí)也可以將把下面的語句存成一個.htaccess文件),并放到你的網(wǎng)站的根目錄(就是www/html目錄),這樣子別人就沒有辦法盜連你的東東了~~

          SetEnvIfNoCase Referer "^
          Order Allow,Deny
          Allow from env=local_ref
          Allow from 127.0.0.1


          這種很方便禁止非允許訪問URL引用各種資源文件

          請大家注意,把第一句"^
          http://www.linji.cn
          我應(yīng)該這么寫的
          "^
          第二種是使用rewrite,需要增加apache的mode_rewrite,支持.htaccess文件目錄權(quán)限限制
          在虛擬主機(jī)根目錄增加.htaccess文件,描述從定向,把非本地地址refer的圖片文件都從定向到警告圖片或者警告網(wǎng)頁上。

          首先要確認(rèn)你的服務(wù)器或空間的服務(wù)器解譯引擎為Apache2,還有支持.htaccess客戶設(shè)置文件,
          如果你有自己的服務(wù)器就請先對./conf/httpd.conf 文件做以下修改
          找到:#LoadModule rewrite_module modules/mod_rewrite.so
          把前面的 # 給去丟
          找到等一個 AllowOverride None 改為 AllowOverride All
          重啟Apache2服務(wù)器

          接下就是做一個 .htaccess 文件了,其 .htaccess 文件內(nèi)容為

          RewriteEngine on
          RewriteCond %{HTTP_REFERER} !^
          http://aaoo.net/.*$ [NC]
          RewriteCond %{HTTP_REFERER} !^http://aaoo.net$ [NC]
          RewriteCond %{HTTP_REFERER} !^http://www.aaoo.net/.*$ [NC]
          RewriteCond %{HTTP_REFERER} !^http://www.aaoo.net$ [NC]
          RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://down.yoyo.com.ru/err.html [R,NC]

          其中有色的地方都是要改為你的:
          紅色:就是改為你提供下載頁面的地址,也就是只有通過這個地址才可以下載你所提供的東東。
          藍(lán)色:就是要保護(hù)文件的擴(kuò)展名(以|分開),也就是說以這些為擴(kuò)展名的文件只有通過紅色的地址才可以訪問。
          綠色:如果不是通過紅色的地址訪問藍(lán)色這些為擴(kuò)展名的文件時就回重定向到綠色地址上。

          這個方法有個好處是,不同的虛擬主機(jī)用不同的描述定義。

          接下就是怎么用 .htaccess 文件來實(shí)現(xiàn)防盜鏈了。
          首先要在空間上建兩個目錄(當(dāng)然目錄名隨你),一個為 web 另一個為 down ,
          web 是用來放下載頁面的(或下載程序),down 當(dāng)然就是放你提供的東東的啦,
          把 .htaccess 文件的紅色部分改一下,改為http://你的域名/web。藍(lán)色部分
          改為你要保護(hù)文件的擴(kuò)展名。綠色部分改為http://你的域名/web。改后保存
          .htaccess 文件把它上傳到 down 目錄。

          還有第三種:

          我在解決plog禁止盜鏈的時候,發(fā)現(xiàn)個問題,也算個好方法。
          plog把所有資源都自己管理起來,用resserver.php來動態(tài)顯示,這樣統(tǒng)一的入口方便添加權(quán)限操作。
          同時造成上面2種方法無法使用,因?yàn)椴辉偈莂pache直接訪問資源文件,而是php通過文件讀取。

          因此只能在代碼中做手腳:在讀取資源文件輸出之前,加如下判斷代碼


          引用

          $referer = $_SERVER['HTTP_REFERER'];
          $selfurl = $_SERVER['HTTP_HOST'];
          if(false == strpos($referer,$selfurl))
          {
          echo '非法盜鏈!';
          exit(1);
          }





          這里有些偷懶,直接看引用地址中是否包含host地址,不過原理就是這樣,判斷referer是否是本站地址。

          我們常常在下載的時候,也碰到盜鏈網(wǎng)站無法下載,報盜鏈的問題。要下載這類文件最簡單的方法就是改referer

          比方flashget中,網(wǎng)址下面的"引用"一欄中,直接填寫下載地址就可以了。



          --------------------------
          09博客園紀(jì)念T恤
          新聞:微軟:不一樣的PowerPoint 2010
          網(wǎng)站導(dǎo)航: 博客園首頁  個人主頁  新聞  社區(qū)  博問  閃存  找找看
          文章來源:http://www.cnblogs.com/xiaoao808/archive/2009/08/21/1551756.html
          posted @ 2009-08-21 23:30 破名超難起 閱讀(333) | 評論 (0)編輯 收藏

          這兩天完善了一下視頻轉(zhuǎn)換這個東西,以前做的那套東西上傳完之后就開始轉(zhuǎn)換,無法適應(yīng)大并發(fā)量下的視頻轉(zhuǎn)換(我覺得同時有10個ffmpeg進(jìn)程在轉(zhuǎn)視頻服務(wù)器肯定要掛掉),所以我用了另一套方案,視頻上傳之后先不轉(zhuǎn)換,把視頻的基本信息存到數(shù)據(jù)庫中,然后由程序定時的從數(shù)據(jù)庫中讀取數(shù)據(jù),依次轉(zhuǎn)換視頻。具體做法是:1、上傳文件,將文件名存入數(shù)據(jù)庫,同時在數(shù)據(jù)庫標(biāo)明videostat字段為0(表示未轉(zhuǎn)換)

            2、通過程序,每隔30秒(根據(jù)不同情況可以改變)取出一個未轉(zhuǎn)換(videostat=0)且失敗次數(shù)小于5(confailtime<5)的紀(jì)錄

            3、開始轉(zhuǎn)換視頻,這里要先將數(shù)據(jù)庫中videostat字段改為2(表示正在轉(zhuǎn)換)不然30秒鐘轉(zhuǎn)換不完下個進(jìn)程又會讀到這條紀(jì)錄開始轉(zhuǎn)換......

            4、等待轉(zhuǎn)換進(jìn)程結(jié)束,如果成功將相應(yīng)紀(jì)錄的videostat字段的值改為1(表示轉(zhuǎn)換成功),若轉(zhuǎn)換失敗則將失敗次數(shù)字段加一(confailtime=confailtime+1)

            在鼓搗這東西的過程中,遇到了一個問題,如果一個進(jìn)程先執(zhí)行p.waitFor();方法而后輸出命令行中的結(jié)果是不行的,即:

          Code

          如果這樣執(zhí)行的話進(jìn)程會掛起,無法繼續(xù)下午,而正確的方法是先讀取命令行的數(shù)據(jù),再來waitFor();

          還有一點(diǎn)需要注意的是獲得命令行的輸出結(jié)果先要從錯誤流中獲得,即(ErrorStream),而非從輸入流(InputStream)中獲得,很有用的經(jīng)驗(yàn)。



          --------------------------
          09博客園紀(jì)念T恤
          新聞:自由軟件基金會列舉Windows 7之七宗罪
          網(wǎng)站導(dǎo)航: 博客園首頁  個人主頁  新聞  社區(qū)  博問  閃存  找找看
          文章來源:http://www.cnblogs.com/xiaoao808/archive/2009/08/04/1538824.html
          posted @ 2009-08-04 17:45 破名超難起 閱讀(275) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 常熟市| 赫章县| 剑阁县| 合肥市| 康马县| 石首市| 邯郸市| 平南县| 汉阴县| 沧州市| 大兴区| 永泰县| 京山县| 中江县| 开阳县| 红桥区| 蓝山县| 吉林省| 东光县| 略阳县| 乐业县| 连城县| 固镇县| 乌苏市| 武功县| 兰溪市| 克山县| 湟中县| 灌阳县| 昌江| 东明县| 阿荣旗| 东莞市| 兰西县| 涞源县| 平原县| 邻水| 西盟| 北川| 清原| 浙江省|