保护对Java脚本文件的访问

时间:2013-12-22 17:36:27

标签: javascript php download lamp authorize

我有一个网站,允许以经过身份验证的用户访问各种形式的内容(PDF,MP3,MP4等)。该网站由LAMP的第三方开发人员为我开发。用户使用存储在MySQL DB中的用户名/密码对应用程序进行身份验证。它们不会使用Apache,MySQL或任何其他机制进行身份验证。

最近,该网站的渗透测试发现了一些明显的漏洞。让我摸不着头脑的是要求下载javascript文件的身份验证。显然,浏览器需要访问此JS内容才能运行应用程序,这意味着至少公开显示一些文件。

我的问题是:有没有办法阻止未登录应用程序的用户访问某些文件?

我见过针对内容文件建议的.htaccess版本的解决方案。 e.g。

      Options +FollowSymLinks  
      RewriteEngine on  
      RewriteRule ^(.*)$ ../authorize.php?file=$1 [NC]

如果我将JS代码拆分为公共/私有文件夹,有没有办法以这种方式提供java脚本而不是仅仅包含它?这适用于javascript吗?

由于

2 个答案:

答案 0 :(得分:0)

听起来你只需要一个单独的路径进行身份验证......一个登录路径。此路径仅允许下载公共资产。成功的身份验证会将用户重定向到您的安全路径。注销操作会将用户重定向到登录路径。

答案 1 :(得分:0)

  

如果我将JS代码拆分为公共/私有文件夹,有没有办法以这种方式提供java脚本而不是仅仅包含它?这适用于javascript吗?

authorize.php,psuedocode中,检查登录状态和文件是否存在,为登录用户返回私有公共

if $_SESSION['logged in'] && exists '/private/' . $_GET['file']
    print '/private/' . $_GET['file']
else if exists '/public/' . $_GET['file']
    print '/private/' . $_GET['file']
else
    die

然后将其与您的示例.htaccess结合使用,并将文件包含在正常.js文件中,让Apache将这些链接转换为正确的php行,以便您的php脚本执行逻辑对你而言。

相关问题