1

現在、クライアントがクレジットカードの詳細を挿入できるaspxページを自分のWebサイト(.net)に追加しています。いくつかのページからのみそのページへのアクセスを許可したいと思います(それらをa.aspxおよびb.aspxと呼びます)。誰かがc.aspxからこのページにアクセスしようとすると、アクセスできなくなります。リダイレクトを数ページのみのページに制限する方法はありますか?

ページイベントで「sender」オブジェクトを使用して呼び出しのソースを確認しようとしましたが、正しい方法かどうかはわかりません。

質問が十分に明確であることを願っています。

4

3 に答える 3

2

はい、あります-HttpWebRequest.Refererプロパティを見てください。

これを使用すると、c.aspxへのリクエストがどのページから行われたかを確認できます。a.aspxまたはb.aspxでない場合は、ユーザーをリダイレクトできます。

于 2013-01-15T11:45:16.193 に答える
2

これを行うために知っておく必要があるのはリファラーです。リファラーとは、簡単に言うと、現在のページに移動したページです。

これでASP.netのリファラーを取得できると思います

Request.Server["HTTP_REFERER"]

次に、リファラーが目的のオリジンと一致するかどうかを確認します。ただし、リファラースプーフィングの容易さ/普及率、またはそれが存在するかどうかはわかりません。

于 2013-01-15T11:45:56.317 に答える
0

以前に説明したように、現在の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
于 2013-01-15T11:59:52.343 に答える