2

セキュリティ上の理由から、ユーザーが ajax の目的で使用する php ページを表示したり、何かを送信したりできないようにしたいと考えています。

ページが ajax リクエストによって呼び出されたのか、それともページが開かれたのかを確認する方法はありますか? self=top は ajax リクエストを考慮していますか?

4

3 に答える 3

2
/* AJAX check  */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
  /* special  for ajax here */
}
else
{
  //its a page request
}

これは、このヘッダーを送信する JS フレームワークを使用している場合にのみ機能します:-by Bergi

于 2012-06-27T10:10:53.773 に答える
1

いいえ、別のセキュリティ モデルが必要になります。

もちろん、X-Requested-WithAjax リクエスト (多くのライブラリでは自動的に行われます) を実行しているときにカスタム http ヘッダー ( など) を設定して、通常の「表示」リクエストと区別することもできます。しかし、すべてが偽造できるため、それを特定することによるセキュリティはありません。

于 2012-06-27T10:11:21.773 に答える
0

ajax リクエストを使用しない人を止めたとしても、そもそも ajax リクエストを変更するのを止めているのは何ですか?

これは、私の意見では、セキュリティの追加はほとんどまたはまったく追加されません。たとえば、firebug を使用すると簡単に実行できます。

于 2012-06-27T10:10:53.617 に答える