asp Http_Referer,Server_Name和Http_Host
剛才運(yùn)行了一段代碼,來(lái)查看Request.ServerVariables里面有多少值,看了一下,共50個(gè)!
代碼<%=Request.ServerVariables.count%>
以前感覺(jué)Request.ServerVariables里的值很多,現(xiàn)在看看還是那么多,不過(guò)今天談其中的一個(gè)值----HTTP_Referer
首先,我們先知道HTTP_Referer最常用的應(yīng)用就是能夠防止外部提交。
下列情況是從瀏覽器的地址欄正常取得Request.ServerVariables("HTTP_REFERER"):
1) 直接用<a href="">
2) 用Submit或<input type="image">提交的表單(POST或GET)
3) 使用JAvaScript提交的表單(POST或GET)
下面我們?cè)倏纯碦equest.ServerVariables("HTTP_REFERER")不能正常取值的情況:
1) 從收藏夾鏈接
2) 單擊主頁(yè)或自定義的地址
3) 在瀏覽器中直接輸?shù)刂?
4) 使用JavaScript的Location.href或者是Location.replace()
5) <%Response.Redirect%>
6) <%Response.AddHeader%>或者是<mete http-equiv="refresh">轉(zhuǎn)向
7) 用XML加載地址
顯然,Request.ServerVariables("HTTP_REFERER")在多數(shù)情況下是不能正常工作的。關(guān)于它的具體用法我會(huì)在以后的文章中詳細(xì)的介紹,同時(shí)還會(huì)介紹Request.ServerVariables("HTTP_HOST")Request.ServerVariables("SERVER_NAME")之間的區(qū)別。
敬請(qǐng)關(guān)注!
Request.ServerVariables里Server_Name與Http_Host之間有什么區(qū)別呢?
如果不仔細(xì)看,您應(yīng)該看不出它們之間的區(qū)別。在網(wǎng)上搜了很多,還是也沒(méi)有看懂,不過(guò)最后還是有一句話很是明白:Http_Host可以Request出非80的Server_Port,簡(jiǎn)單地說(shuō)就是,Http_Host=Server_Name:Server_Port。
在以前發(fā)表過(guò)關(guān)于Http_Referer作用的文章,現(xiàn)在結(jié)合它來(lái)寫(xiě)一個(gè)ASP防止外部提交的函數(shù)
function ChkPost()
dim server_v1,server_v2
chkpost=false
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
If Mid(server_v1,8,Len(server_v2))<>server_v2 then
chkpost=False
else
chkpost=True
end If
end function
Select Case
假如你希望選擇多套代碼之一來(lái)執(zhí)行,可以使用 SELECT 語(yǔ)句:
select case payment
case "Cash"
msgbox "You are going to pay cash"
case "Visa"
msgbox "You are going to pay with visa"
case "AmEx"
msgbox "You are going to pay with American Express"
case Else
msgbox "Unknown method of payment"
end select
以上代碼的工作原理:首先,我們需要一個(gè)簡(jiǎn)單的表達(dá)式(常常是一個(gè)變量),并且這個(gè)表達(dá)式會(huì)被做一次求值運(yùn)算。然后,表達(dá)式的值會(huì)與每個(gè) case 中的值作比較,如果匹配,被匹配的 case 所對(duì)應(yīng)的代碼會(huì)被執(zhí)行。
- php 偽造HTTP_REFERER頁(yè)面URL來(lái)源的三種方法
- PHP偽造來(lái)源HTTP_REFERER的方法實(shí)例詳解
- php中HTTP_REFERER函數(shù)用法實(shí)例
- 完美兼容各大瀏覽器獲取HTTP_REFERER方法總結(jié)
- php中XMLHttpRequest(Ajax)不能設(shè)置自定義的Referer的解決方法
- php中突破基于HTTP_REFERER的防盜鏈措施(stream_context_create)
- VBS偽造HTTP-REFERER的實(shí)現(xiàn)方法
- 一段ASP的HTTP_REFERER判斷代碼
- ASP,PHP與.NET偽造HTTP-REFERER方法及防止偽造REFERER的方法
- ASP,PHP與.NET偽造HTTP-REFERER方法及防止偽造REFERER方法探討
- ASP,PHP與.NET偽造HTTP-REFERER方法及防止偽造REFERER方法探討
- HTTP Referer詳解及Referer控制
相關(guān)文章
rustysun同學(xué)ASP代碼書(shū)寫(xiě)規(guī)范
2008-01-01
ASP編程入門(mén)進(jìn)階(二十):ADO組件之查詢(xún)數(shù)據(jù)記錄
ASP編程入門(mén)進(jìn)階(二十):ADO組件之查詢(xún)數(shù)據(jù)記錄...2007-01-01
ASP中有關(guān)雙引號(hào),單引號(hào)以及&連接符號(hào)的解釋
很多ASP初學(xué)習(xí)的朋友都有可能在雙引號(hào),單引號(hào)以及&號(hào)上迷失了方向。最關(guān)鍵的是不理解三類(lèi)符號(hào)的意思,當(dāng)然也就不能很好地掌握它們的用法了。以下是我對(duì)三類(lèi)符號(hào)的看法,技術(shù)不精,難免有疏忽之處,肯請(qǐng)大家多提意見(jiàn)2007-01-01
ASP中Request對(duì)象獲取客戶(hù)端數(shù)據(jù)的順序(容易忽略)
ASP中Request對(duì)象獲取客戶(hù)端數(shù)據(jù)的順序(容易忽略)...2006-08-08
ASP編程入門(mén)進(jìn)階(十八):FSO組件之文件操作(下)
ASP編程入門(mén)進(jìn)階(十八):FSO組件之文件操作(下)...2007-01-01
講解ASP方面的知識(shí)比較全的asp學(xué)習(xí)教程
講解ASP方面的知識(shí)比較全的asp學(xué)習(xí)教程...2007-03-03

