我正在向我的网站(.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
您可以添加到您到目前为止试过什么的问题的例子吗? –
编辑该问题.. –