-4

ajaxを使用しているときにファイルのみを表示する方法があるかどうか疑問に思っています。たとえば、私は ajax をセットアップしてリクエストを作成しましたが、誰でも私のフォルダー構造を把握して私の php ファイルにアクセスでき、何かが起こる可能性があり、そのファイルにアクセスしようとすると 404 をスローしたいと考えています。ちょっとした手がかりがないので、何も試していません。.htaccess を使用する必要がありますか?

インターネットでこれを検索しようとしましたが、何も見つかりませんでした。これに似た別の投稿があれば、お知らせください。リンクを教えてください。

4

1 に答える 1

1

簡単なことではありません。

Ajaxは、他のHTTPアクセスと同様に、リクエストを通じて作成されます。通常のリクエストは、 AjaxリクエストメソッドGETがあるのと同じように、メソッドを使用して行われます。GET

私はあなたの状況が長すぎないという状況に直面しました。私の解決策は、完璧にはほど遠いものの、これです。

  1. アプリケーションですべてのAjax呼び出しにPOSTメソッドを使用させます。
  2. これを、 Ajaxを介してフェッチする必要がある各PHPの先頭にあるファイルに追加しますincluderequire

    if ($_SERVER['REQUEST_METHOD'] != 'POST') {
        header('Location: /404page.php'); //The / represents the site root
        exit;
    }
    

このようにして、ページを直接開こうとしているユーザーは404ページにリダイレクトされます。

もちろん、POSTリクエストヘッダーを簡単に偽造することもできます。各Ajax呼び出しにPOSTパラメーターを追加することもできますが、ヘッダーを偽造できるパラメーターは、POSTされたデータを簡単に偽造することもできます。

サーバー側で強力な検証を行って、ユーザーがページを表示する権限を持っていること、および受信する必要のあるすべてのデータがそこにあり、有効であることを確認してください。誰かがリクエストヘッダーをいじって、アプリケーションの外部にある醜いページを見たとしても、結局のところ問題ではありません。

于 2012-09-16T20:04:52.553 に答える