2013-01-31 39 views
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

任何輸入或idears將是太棒了!

回答

1

沒有辦法提供文件給瀏覽器,而沒有提供給用戶。

你可以配置你的服務器只提供額外的HTTP頭文件(你可以使用JS添加),但是沒有任何東西會阻止人們手動發送頭文件,或者只是將源文件從瀏覽器的調試工具中挖掘出來。

您將文件提供給的任何用戶都可以訪問這些文件。如果你想限制哪些用戶可以訪問它們,那麼你必須使用auth/authz(你也要申請到index.php文件,這樣未授權的用戶不會只是得到JS錯誤或者無聲的失敗狀態)。

+0

+1用於解釋它是這樣的。很好的解釋。 – Techie

+0

@Quentin乾杯。我們有一個登錄腳本。並且用戶需要登錄才能運行每個ajax腳本。 –

+0

@Quentin如何使用ajax之前生成的UID安全,將其存儲爲會話。以20秒的時間出局。 –

0

不,你試圖做的事情是不可能的。 Ajax請求並不特殊。它們只是HTTP請求。針對Ajax創建的終點應像其他任何HTTP請求終點一樣,通過身份驗證/授權進行保護。

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'); 
    } 
+0

這對於任何人來說都是微不足道的,並且會破壞緩存。 – Quentin

+0

不,這對於任何人來說都是微不足道的,程序員要解決這個問題是微不足道的。作者將決定這是否足夠用於他的使用。 – 3Nex

+0

這對於任何想要首先查看JS的人來說都是微不足道的。 – Quentin