日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ASP网站实现防止被采集

發布時間:2023/12/18 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP网站实现防止被采集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如今的采集系統是一個比一個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

%>

<%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用來授權。

.userData {behavior:url(#default#userdata);}

· 在“導航頁面”的和區域中定義一個層用來標識Persistence對象

· 在“導航頁面”的超鏈接屬性中加入一條語句用來調用函數fnSave:

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

· 在“內容頁面”中加入一個STYLE用來定義persistent類,同時加入存儲函數fnLoad用來判斷合法性。

.userData {behavior:url(#default#userdata);}

· 修改“內容頁面”的區域如下:

注意:插入以上代碼的頁面需在同一個文件夾下,否則會出錯。

從以上范例可看出,通過persistence的使用,使得普通的靜態內容頁面具有了session功能,一般的不敏感信息完全可以通過session保存在客戶端。

使用多個帶有session功能的靜態頁面可以完成眾多復雜任務,如虛擬購物車,高級搜索引擎等。同時,由于將以前服務器端承擔的部分session任務轉移到客戶端,減少了數據交互量,大大降低了服務器的負擔。

轉載于:https://www.cnblogs.com/starspace/archive/2009/05/07/1451479.html

總結

以上是生活随笔為你收集整理的ASP网站实现防止被采集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。