我正在向我的網站(.net)添加一個aspx頁面,我的客戶可以在其中插入信用卡詳細信息。 我想只從幾個頁面訪問該頁面(讓我們稱它們爲a.aspx和b.aspx),如果有人試圖從c.aspx訪問此頁面,他將無法這樣做。 有沒有辦法限制重定向到只有幾頁的頁面?訪問https頁面
我試着在頁面事件中檢查通話的來源是什麼,與「發件人」對象,但我不知道它是正確的方式去。
希望這個問題很清楚。
我正在向我的網站(.net)添加一個aspx頁面,我的客戶可以在其中插入信用卡詳細信息。 我想只從幾個頁面訪問該頁面(讓我們稱它們爲a.aspx和b.aspx),如果有人試圖從c.aspx訪問此頁面,他將無法這樣做。 有沒有辦法限制重定向到只有幾頁的頁面?訪問https頁面
我試着在頁面事件中檢查通話的來源是什麼,與「發件人」對象,但我不知道它是正確的方式去。
希望這個問題很清楚。
你需要知道的是referer。 簡言之,引薦者是將您帶到當前頁面的頁面。
我相信這應該得到引薦的ASP.net
Request.Server["HTTP_REFERER"]
然後,你可以檢查,看看是否引薦符合您的需求來源。但是,我不確定引用欺騙的易用性/普遍性,還是甚至存在。
這是[一個](http://en.wikipedia.org/wiki/Referer_spoofing),它很容易。 –
我認爲應該儘可能多,這就是爲什麼我一定要提及它作爲一個可能的安全問題。 – AlienHoboken
是的,有 - 看看HttpWebRequest.Referer屬性。
使用此功能,您可以看到從哪個頁面發出了對c.aspx的請求 - 如果它不是a.aspx或b.aspx,您可以將用戶重定向。
正如前面menitoned你需要檢查當前UrlReferrer,這裏是在vb.net
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim bRedirect As Boolean = True
Try
If Not IsNothing(Page.Request.UrlReferrer) Then
Dim sReferer As String = Page.Request.UrlReferrer.ToString()
If sReferer.Contains("/a.aspx") Or sReferer.Contains("/b.aspx") Then
bRedirect = False
End If
Catch ex As Exception
' Raise exception, decide whether or not to redirect
End Try
If bRedirect Then
Response.Redirect("~/x.aspx", True)
End If
End Sub
您可以添加到您到目前爲止試過什麼的問題的例子嗎? –
編輯該問題.. –