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 回答