【问题标题】:ASP.NET stop user from accessing unbundled scriptASP.NET 阻止用户访问非捆绑脚本
【发布时间】:2014-03-31 03:14:02
【问题描述】:

在我的应用程序中,我有脚本包,可以捆绑脚本并在站点请求它们时缩小它们,我想知道是否可以阻止用户访问源脚本而不是捆绑和缩小的脚本? IE。用户不应该能够通过http://mydomain/script.js 访问源脚本

【问题讨论】:

  • FWIW 我回答了这个on this similar SO post...不能标记为骗子,因为没有接受任何答案...但他的主要问题是“我不希望任何人访问我未缩小的通过猜测 url 来编写脚本”。
  • @SilverlightFox 是的,知道如何正确地做到这一点不会有什么坏处

标签: javascript asp.net security bundling-and-minification


【解决方案1】:

应该可以限制对 web.config 中某些资源和文件的访问。要拒绝所有用户访问文件,您可以添加以下内容:

<configuration>
  ...
  <location path="script.js">
    <system.web>
      <authorization>
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>

【讨论】:

  • 您的脚本是否在文件夹中,而不是您网站的根目录(与您的 web.config 相同的级别)?我在我的所有网站上都使用它来限制未经身份验证的用户的访问(使用 )。我也在使用表单身份验证,但这不应该阻止它与拒绝所有 *
  • 我尝试将脚本放在根文件夹中,但没有成功。我仍然可以通过 mydomain/script.js 请求脚本。如果我将路径更改为“脚本”文件夹也不起作用
【解决方案2】:

将您的源脚本文件放入App_Data

App_Data 文件夹受到 ASP.NET 的网络保护,因此没有人可以访问http://www.example.com/App_Data/script.js。但是,您仍然可以从文件系统本地读取它。

您可能需要对代码进行一些修改,以使 .js 文件在与源不同的 URL 路径中可用(因为它们需要从不同于 http://www.example.com/App_Data 的路径从 Web 中读取 - e.. ghttp://www.example.com/Scripts)

【讨论】:

    猜你喜欢
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多