asp Http_Referer,Server_Name和Http_Host

來源:互聯網
上載者:User

剛才運行了一段代碼,來查看Request.ServerVariables裡面有多少值,看了一下,共50個!
代碼<%=Request.ServerVariables.count%>
以前感覺Request.ServerVariables裡的值很多,現在看看還是那麼多,不過今天談其中的一個值----HTTP_Referer
首先,我們Crowdsourced Security Testing道HTTP_Referer最常執行的 App就是能夠防止外部提交。

下列情況是從瀏覽器的地址欄正常取得Request.ServerVariables("HTTP_REFERER"):
1) 直接用<a href="">
2) 用Submit或<input type="image">提交的表單(POST或GET)
3) 使用JAvaScript提交的表單(POST或GET)

下面我們再看看Request.ServerVariables("HTTP_REFERER")不能正常取值的情況:
1) 從收藏夾連結
2) 單擊首頁或自訂的地址
3) 在瀏覽器中直接輸地址
4) 使用JavaScript的Location.href或者是Location.replace()
5) <%Response.Redirect%>
6) <%Response.AddHeader%>或者是<mete http-equiv="refresh">轉向
7) 用XML載入地址

顯然,Request.ServerVariables("HTTP_REFERER")在多數情況下是不能正常工作的。關於它的具體用法我會在以後的文章中詳細的介紹,同時還會介紹Request.ServerVariables("HTTP_HOST")Request.ServerVariables("SERVER_NAME")之間的區別。
敬請關注!

Request.ServerVariables裡Server_Name與Http_Host之間有什麼區別呢?
如果不仔細看,您應該看不出它們之間的區別。在網上搜了很多,還是也沒有看懂,不過最後還是有一句話很是明白:Http_Host可以Request出非80的Server_Port,簡單地說就是,Http_Host=Server_Name:Server_Port。

在以前發表過關於Http_Referer作用的文章,現在結合它來寫一個ASP防止外部提交的函數

複製代碼 代碼如下: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
假如你希望選擇多套代碼之一來執行,可以使用 SELECT 語句:

複製代碼 代碼如下: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

以上代碼的工作原理:首先,我們需要一個簡單的運算式(常常是一個變數),並且這個運算式會被做一次求值運算。然後,運算式的值會與每個 case 中的值作比較,如果匹配,被匹配的 case 所對應的代碼會被執行。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.