<address id="xpjh9"><listing id="xpjh9"><meter id="xpjh9"></meter></listing></address>

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
<noframes id="xpjh9">
<noframes id="xpjh9">

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
    <form id="xpjh9"></form><address id="xpjh9"><listing id="xpjh9"><menuitem id="xpjh9"></menuitem></listing></address>

      <noframes id="xpjh9">
      VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
      SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
      當前位置:
      首頁 > 網站開發 > ASPnet >
      • asp.net教程之幾招讓你的網站免受采集之苦

      • 2017-06-11 20:18 來源:未知
      如今的采集系統是一個比一個NB,站長們辛苦收集制作的網站內容總是很快出現在在另一個網站上,一個網站輕易的就被復制了又復制。有辦法既不影響搜索引擎的正常收入又能解決網站被采集之苦么?答案是肯定的。

          最常用的防采集方法:

          1.每個文章的命名不要有任何規律,比如你的文章是<%=id%>.htm的話,請在前面或后面生成個日期,如:20070911-1234.htm,前面的就是日期了,這樣對采集新手來說是非常有效的。

          2.不要把所有的文章都放在一個目錄下,你可以利用日期生成不同的目錄名。

          3.不要所有的文章都用一個模板,制作盡量多的模板,添文章的時候可有選要用哪個模板,一般采集者的采集程序是有針對性的,他在采集前會對你的頁面進行分析,如果你所有的頁面排版無規律可尋,那么我想他就會放棄了。

          以上三種方法能防住初級采集的,但是對高手來說沒什么用。
          
          下面三種方法用限制采集人的IP或SESSION的方法來達到防采集的目的。

      方法一:(ASP代碼):
            

      <%
      Dim AppealNum,AppealCount
      AppealNum=10 '同一IP60秒內請求限制10次
      AppealCount=Request.Cookies("AppealCount") 
      If AppealCount="" Then
      response.Cookies("AppealCount")=1
      AppealCount=1
      response.cookies("AppealCount").expires=dateadd("s",60,now())
      Else
      response.Cookies("AppealCount")=AppealCount+1
      response.cookies("AppealCount").expires=dateadd("s",60,now())
      End If
      if int(AppealCount)>int(AppealNum) then
      response.write "網頁特效http://www.qpsh.com提醒您:抓取很累,歇一會兒吧!"
      response.end
      End If
      %>

      第二種方法(ASP):

      <%
      user_agent=Request.ServerVariables("HTTP_USER_AGENT")
      http_reffer=Request.ServerVariables("HTTP_REFERER")
      server_name=Request.ServerVariables("SERVER_NAME")
      '檢查當前用戶是否是蜘蛛人
      function check(user_agent)
      allow_agent=split("Baiduspider,Scooter,ia_archiver,Googlebot,FAST-WebCrawler,MSNBOT,Slurp",",")
      check_agent=false
      for agenti=lbound(allow_agent) to ubound(allow_agent)
      if instr(user_agent,allow_agent(agenti))>0 then
      check_agent=true
      exit for
      end if
      next
      check=check_agent
      end function
      if check(user_agent)=False then
      if http_reffer="" or left(http_reffer,len("http://"&server_name)+1)<>"http://"&server_name&"/" then
      %>
      <html><body>
      <form action='' name=checkrefer id=checkrefer method=post>
      </form>
      <script>
      document.all.checkrefer.action=document.URL;
      document.all.checkrefer.submit();
      </script>
      </body></html>
      <%response.end
      end if
      end if
      %>


      第三種方法:

          用Persistence為靜態頁面增加session功能   

          一般來說,只有服務器端的CGI程序(ASP、PHP、JSP)具有session會話功能,用來保存用戶在網站期間(會話)的活動數據信息,而對于數量眾多的靜態頁面(HTML)來說,只能使用客戶端的cookies來保存臨時活動數據,但對于cookies的操作是個很煩瑣的過程,遠沒有對于session操作那樣簡便。為此,本文向讀者推薦一種在DHTML中的解決方案“Persistence技術”,使得在靜態頁面中也能使用session會話功能。

          Microsoft Internet Explorer 5瀏覽器和以后的版本都支持使用狀態保持(Persistence)技術,讓我們能夠在當前會話過程中保存一些數據對象到客戶端,減少了對服務器的訪問請求,充分發揮了客戶端計算機的數據處理能力,從而也整體提升了頁面顯示效率。

          Persistence技術有以下幾種行為可供調用:

      · saveFavorite—當頁面被添加到收藏夾時保存頁面狀態和信息 
      · saveHistory—在當前會話中保存頁面狀態和信息 
      · saveSnapshot—當頁面被保存到硬盤時,保存頁面狀態和信息 
      · userData—在當前會話中用XML格式保存頁面狀態和信息 
          Persistence技術打破了以前使用cookies和session的傳統,繼承了cookies的一些安全策略,同時也增加了存儲和管理數據的能力。我們的每個頁面有64KB的用戶數據存儲容量,對于每個站點總計有640KB的存儲上限。 

          Persistence技術存儲的數據格式符合XML標準,所以可以使用DOM技術中的getAttribute和setAttribute方法來存取數據。 

          下面是一個Persistence技術的典型應用,通過對Persistence存儲數據的分析,使得靜態頁面具有驗證功能。 

          實際判斷過程是這樣的:

          1.有三個對象:游客V、導航頁面A、內容頁面C 
          2.游客V只能通過導航頁面A的鏈接才能看到內容頁面C; 
          3.如果游客V是通過其它途徑來訪問內容頁面C(比如通過其它網站的超鏈接、直接在IE地址欄中輸入網址訪問等),內容頁面C將自動提示版權信息,顯示空白頁。 
      具體實現步驟: 

          · 在“導航頁面”中加入一個STYLE用來定義persistent類,同時加入存儲函數fnSave用來授權。 
      <STYLE>
      .userData {behavior:url(#default#userdata);}
      </STYLE>
      <SCRIPT language=Javascript>
      function fnSave(){
      oPersistDiv.setAttribute("bIsValid","true");
      oPersistDiv.save("oXMLStore");
      }
      </SCRIPT>

          · 在“導航頁面”的<body>和</body>區域中定義一個層用來標識Persistence對象 
      <DIV CLASS=userData ID="oPersistDiv"></DIV>

          · 在“導航頁面”的超鏈接屬性中加入一條語句用來調用函數fnSave: 
      <a href='redhat2.htm' onmousedown="fnSave()">

          接下來,為“內容頁面”加入驗證功能。

          · 在“內容頁面”中加入一個STYLE用來定義persistent類,同時加入存儲函數fnLoad用來判斷合法性。 
      <STYLE>
      .userData {behavior:url(#default#userdata);}
      </STYLE>
      <SCRIPT>
      var bPageValid=false;
      function fnLoad(){
      oPersistDiv.load("oXMLStore");
      if((oPersistDiv.getAttribute("bIsValid"))&&
      (oPersistDiv.getAttribute("bIsValid")=="true")){
      bPass=true;
      }
      else{
      bPass=false;
      }
      oPersistDiv.setAttribute("bIsValid","false");
      oPersistDiv.save("oXMLStore"); 
      if(bPass==false){
      var sError="來源不明,請您通過授權網站訪問我們.";
      alert(sError);
      location.href="about:blank";
      }
      } </SCRIPT>

          · 修改“內容頁面”的區域如下:
      <BODY onload="fnLoad()">
      <DIV CLASS=userData ID="oPersistDiv"></DIV>

          ***插入以上代碼的頁面需在同一個文件夾下,否則會出錯。 
      從以上范例可看出,通過persistence的使用,使得普通的靜態內容頁面具有了session功能,一般的不敏感信息完全可以通過session保存在客戶端。

          使用多個帶有session功能的靜態頁面可以完成眾多復雜任務,如虛擬購物車,高級搜索引擎等。同時,由于將以前服務器端承擔的部分session任務轉移到客戶端,減少了數據交互量,大大降低了服務器的負擔。
      相關教程
      江苏快3 晋城 | 承德 | 韶关 | 江门 | 包头 | 灵宝 | 宿州 | 临汾 | 永州 | 莱芜 | 常德 | 聊城 | 保定 | 博罗 | 湛江 | 诸暨 | 本溪 | 丹阳 | 武威 | 达州 | 厦门 | 丽水 | 潮州 | 扬中 | 陕西西安 | 舟山 | 邯郸 | 漯河 | 东阳 | 黔西南 | 上饶 | 聊城 | 沛县 | 宁德 | 万宁 | 保定 | 绍兴 | 宝应县 | 四川成都 | 诸暨 | 大庆 | 濮阳 | 诸暨 | 荆州 | 临沂 | 诸暨 | 芜湖 | 绵阳 | 宁夏银川 | 贺州 | 松原 | 河南郑州 | 阿拉善盟 | 邹平 | 葫芦岛 | 温岭 | 泰兴 | 大连 | 武夷山 | 河南郑州 | 灵宝 | 德清 | 朔州 | 平凉 | 海拉尔 | 恩施 | 河源 | 广汉 | 黔西南 | 三亚 | 阳江 | 珠海 | 张北 | 湖南长沙 | 漳州 | 邵阳 | 和县 | 东莞 | 广饶 | 日照 | 萍乡 | 霍邱 | 锦州 | 文昌 | 蓬莱 | 滨州 | 红河 | 玉环 | 黑龙江哈尔滨 | 雄安新区 | 泗阳 | 明港 | 贺州 | 柳州 | 雅安 | 常德 | 醴陵 | 泰州 | 开封 | 鸡西 | 肇庆 | 红河 | 馆陶 | 凉山 | 九江 | 上饶 | 恩施 | 昭通 | 海拉尔 | 乐清 | 台北 | 海宁 | 东台 |