拒绝直接访问 IIS Web 服务器中的 JavaScript 个文件

Deny Direct Access to JavaScript Files in IIS Web Server

我有一个在 php 和 java 脚本中的 Web 应用程序。 如果有人试图在浏览器中输入 java 脚本文件的路径,则会在浏览器中显示完整的 java 脚本。 例如:http://myserver.com/MyApp/app/view/baseView.js,此 returns 特定 java 脚本文件的源代码。

我可以限制这个吗?我正在使用 Windows IIS 7.5 Web 服务器。 我已经尝试在 web.config 主文件中这样做:

<security>
        <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="" roles="Administrators" />

        </authorization>
    </security>

但是此代码阻止了整个应用程序,即使当我尝试通过 url 访问 default.php 文件时,Web 服务器返回以下错误:“401 - 未经授权:由于凭据无效,访问被拒绝”。

请帮忙!

您不能阻止对该文件的直接访问。如果您限制对该文件的访问,正如您提到的,php 文件将为无权访问该 js 文件的用户 'break'。

但是,您可以将访问 URL 的用户直接重定向到该文件: Javascript 示例:

<script>
if(window.location.href.endsWith('baseView.js'))
{
    window.location = 'www.google.com'
}
</script>

您也可以使用 .htaccess 文件来执行此操作,这样会好得多。 (虽然我现在不能自己测试,但我不确定它是否可以工作并且不会通过 php 文件调用)

注意:这不会阻止用户阅读Javascript文件,所以我不确定你为什么要这样做。