【问题标题】:How to stop an authenticated user from viewing javascript files如何阻止经过身份验证的用户查看 javascript 文件
【发布时间】:2015-10-28 15:12:47
【问题描述】:

我有一个受表单身份验证保护的网站,它显示一些 HTML 页面,其中包含一些由 javascript 文件提供的动态内容。

但是如何阻止经过身份验证的用户查看我的 javascript 文件?

假设我的用户在这个网址:

http://mywebsite/render/html/mainpage.htm

如何阻止用户输入此网址并查看我的 javascript:

http://mywebsite/render/jscript/myjsfile.js

所以我在我的 web.config 中尝试了这个,但它只是阻止了我的 javascript 工作:

<location path="render/jscript">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
</location>

我假设这一定是可能的,而且我错过了一些非常简单的东西......

【问题讨论】:

  • 你不能。你的.js 是秘密和独家的吗? but it just stopped my javascript from working: - 是的,因为浏览器需要访问它才能运行它。
  • 就像其他人说的,你不能。但是你可以混淆它们,所以普通用户将无法阅读它们,但如果他们正在查看它们,那么很可能也无济于事。

标签: javascript html forms-authentication


【解决方案1】:

抱歉,我以为你说过,我该如何阻止未经身份验证的用户浏览 javascript 文件。简而言之,这是不可能的。 Javascript 是一种客户端语言,因此需要由浏览器解析,这需要用户能够查看/下载。如果您希望保护此代码,我建议将部分移至服务器端处理,或作为临时权宜之计,混淆代码,这将使其不可读(尽管有相当数量的反混淆器,所以这不是一个真正的解决方案。)

【讨论】:

  • 感谢提供信息的人,是的,将 javascript 作为客户端是有道理的,只是向最终用户隐藏工作原理会很好,但是嘿。
【解决方案2】:

Javascript 是客户端代码,与任何其他客户端代码一样,一旦到达客户端,它就归客户端所有。因此,您发送到浏览器的每个 javascript 代码都可以被客户端看到。

您可以尝试通过缩小和混淆代码来降低代码的可读性。但是您根本无法创建 javscript 功能并停止访问该功能背后的代码。

【讨论】:

    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 2013-02-21
    • 2022-11-21
    • 1970-01-01
    • 2017-09-11
    • 2016-08-24
    • 2020-11-15
    • 2016-01-17
    相关资源
    最近更新 更多