0

コア アプリケーションのスクリプトが大量にある

    include('JS/gramp.php');
    include('JS/est.php');
    include('JS/curest.php');
    include('JS/memomarker.php');
    include('JS/local----------.php');
    include('JS/poirel.php');
    include('JS/maplayers.php');
    include('JS/trafficinc.php');
    include('JS/plannedtraffic.php');
    include('JS/transportissues.php');
    include('JS/cams_traff.php');
    include('JS/places2.php');

現在、これらはすべてオンザフライ ロードに移行されており、ロード時のアプリケーションのサイズを縮小しています。

if(button_case_curtime==true){
        $(".jsstm").load("<?php echo $core_dir; ?>JS/curresttime.php?la=<?php echo $caseset['iplat']; ?>&lo=<?php echo $caseset['iplong']; ?>&h=<?php echo $days_h; ?>");
        rendermap = true;
        }

問題!アプリケーションはこれらのファイルを保護する必要があり、関連するデータは誰もアクセスできないようにする必要があります。

これらのファイルを要求する唯一のファイルは、index.phpです。

どんな入力やアイデアも素晴らしいでしょう!

4

3 に答える 3

1

ファイルをユーザーに提供せずにブラウザに提供する方法はありません。

追加の HTTP ヘッダー (JS で追加できます) が指定されたファイルのみを提供するようにサーバーを構成できますが、人々がそのヘッダーを手動で送信したり、ブラウザーのデバッグ ツールからソースを掘り下げたりすることを止めるものは何もありません。

ファイルを与えたすべてのユーザーは、ファイルにアクセスできます。どのユーザーがそれらにアクセスできるかを制限したい場合は、auth/authz を使用する必要があります (これを index.php ファイルにも適用して、許可されていないユーザーが JS エラーやサイレント エラーを取得しないようにする必要があります)。州)。

于 2013-01-31T11:56:02.253 に答える
0

いいえ、あなたがやろうとしていることは不可能です。Ajax リクエストは特別なものではありません。それらは単なる HTTP 要求です。Ajax 用に作成されたエンド ポイントは、他の HTTP リクエスト エンド ポイントと同様に、認証/認可によって保護する必要があります。

于 2013-01-31T11:55:54.853 に答える
0

これは、問題を途中で解決する簡単な解決策です。次のように、POST リクエストを介してリクエストします。

$.post('JS/maplayers.php', {'ajax':true}, function(){});

POST 変数「ajax」に注意してください。ファイル maplayers.php の先頭に、次のコードを追加します。

if((!isset($_POST['ajax']))) {
       die('Invalid request, only ajax requests are permitted');
   }
于 2013-01-31T11:57:02.437 に答える