2017-11-16 9 views
0

AJAX呼び出しを使用して複数のPHPファイルからコンテンツをアセンブルするSPAがあります。メインアプリケーションの設定ファイルに次の行を追加して、ログインページにログインしていないユーザーを、ポータルを通って物事を見てみる限りリダイレクトできるようにすることができます。AJAXサイトのリソースページへのダイレクトナビゲーションでログインを確認する方法

// Verify Login to access this resource 
if($_SESSION["loggedIn"] != true) { 
    echo ('resource denied <script>window.location.href = "https://'.$_SERVER['SERVER_NAME'].'/login.php";</script> '); 
    exit(); 
} 

問題は、あなたは、単に一般的なファイルarchituresのためのサイトをスキャンしようとした場合、まだ直接アクセスすることができビュー、モデル、コントローラ、およびサードパーティのウィジェットのトンがあることで来ます。

htaccessやphp.iniファイルのようなものを使って、ディレクトリ内のすべてのphpファイルにこのログインチェックを自動的に追加する方法がありますので、これを各ページに貼り付ける必要はありません。

私のchmod設定では、サーバ上で実行されているPHPスクリプトでそれらを使用できるように間接的にしかアクセスできないように設定する方法がありますが、直接訪問することはできません。ありがとう。

[編集] 私のパブリックフォルダの外にあるファイルを移動すると、AJAXが破損したためにファイルが移動しませんでした。

また、htaccessファイルでauto_prepend_fileを試しましたが、これで500エラーが発生しました。私は明らかに私のAllowOverride Allを私のApache pre_virtualhost_global.confで行かせないVPSを使用しています。さもなければ、私はこれを行う正しい方法だったと思います。

+0

https://stackoverflow.com/questions/24778706/using-auto-prepend-file-into-user-ini-file-in-php --- http://php.net/manual/en/ini .core.php#ini.auto-prepend-file - これが何であるかについてのものです。 https://stackoverflow.com/questions/14034907/php-auto-include- https://stackoverflow.com/questions/4248140/how-to-set-phps-auto-prepend-file-directive-per-ディレクトリ –

+1

この問題の一般的に認められている解決策は、Webサーバーのドキュメントルートの外部にソースコードファイルを格納して直接要求を行うことができないようにすることです。 doc rootの唯一のソースファイルはフロントコントローラでなければなりません。 –

+0

はどのOSから実行されていますか?それは問題かもしれない。 –

答えて

0

自分のリソースフォルダのCHMOD設定を0750に設定すると、ファイルへの直接アクセスを許可せずにAJAXコマンドを実行できるように見えます。これを行うときに気づいている他のセキュリティ上の警告を知っている人は、私に知らせてください。ありがとう。

関連する問題