1

私はdefault.aspを持っていて、ajaxを介して3つの異なる*.aspと接続します。私の質問は、人々がこれらのページをURLとして開こうとした場合、default.aspにアクセスせずにこれらの*.aspページを実行しようとするかどうかです。http://sample.com/ajax1.asp?get=fooは、私のajaxページへのそのようなアクセスを防ぐ方法の例です。

4

2 に答える 2

1

HTTP_X-Requested-With呼び出しがヘッダーを探しているAJAX要求であるかどうかを検出できますが、AJAX呼び出しを検出できたとしても、悪意のあるユーザーがすべてのヘッダーを簡単にスプーフィングする可能性があるため、すべての要求を認証する必要があります。

AJAXヘッダーの検出:

If Request.ServerVariables("HTTP_X-Requested-With") = "XMLHttpRequest" Then
   ''do stuff
Else
于 2012-05-22T22:12:35.167 に答える
0

解決策は、ajaxリクエストに太字の線を追加することです。

    function callit()
    {
     if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}else{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
     xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById('alp').innerHTML=xmlhttp.responseText;}}
     xmlhttp.open("get", "call.asp", true);
     **xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest");**
     xmlhttp.send();
    }
于 2012-05-23T23:06:43.360 に答える