gpt4 book ai didi

javascript - 使用 .NET 在 SPA 中保护 HTML 和 JS 文件

转载 作者:行者123 更新时间:2023-11-29 10:16:02 25 4
gpt4 key购买 nike

我开始使用 .NET 和 Durandal JS 开发单页应用程序,我想知道如何保护应用程序的 HTML 和 JS 文件。我说的是 App 文件夹中的文件,这些文件目前可以通过 URL 直接访问,我想阻止这种情况。

当然,因为 HTML 无论如何都会显示给用户,所以似乎没有必要这样做,但我真的认为最好保护它,主要是保护 JS 逻辑不被直接访问。我正在查看 SPA 中的一些身份验证示例,其中大部分公开了以这种方式使用的一些逻辑。

我该怎么做?如何防止直接访问这些文件?我想通过路由映射到 Controller 中的操作来返回错误,但我认为这样我的 javascript 也会被阻止。

最佳答案

首先,试图阻止人们下载和检查客户端上运行的应用程序中的客户端代码是徒劳的。如果你给某人一些计算机可以在一个人有权访问的系统中执行的东西,那么某人就可以对它进行逆向工程,或者找到可以做到的人。通常情况下,唯一一个遭受你的技巧和黑客尝试和阻止它们的人是你,开发人员,既浪费时间实现一些会失败的东西,又在调试你自己的工作时试图解决它。


如果您真的有兴趣阻止随意偷看您的作品,那好吧。

您可以 minify assets 以一种也混淆的方式,但所做的只是让它暂时不方便(但是,这种方法在减少页面重量方面仍然很有值(value))。有大量的工具可以让代码去最小化变得容易。

您可以想出一种方法,通过要求初始页面和脚本引导应用程序的其余部分,例如,在 header 中放置一个特定值,并让您的 HTTP 服务器阻止向某些文件提供资源,除非它们有那个标题。但是可以轻松地检查、重新创建和手动发出请求以规避这种情况。

也许已经做出了一些努力来创建一个 shell 应用程序或浏览器,它只执行你打包成某种加密格式并可以用 key 打开的可信代码。或者也许是一个浏览器插件。我不知道。你可以想出任何你想要的疯狂的东西,但这值得吗?人们会愿意使用它吗?如果你让某人很难使用某些东西,他们就不会。


因此,关键是尽量减少您为客户提供的在您认为无价和/或商业 secret 的机器上运行的内容。您可以制定战略,真正不是那么特别(老实说,您的应用程序 UI 的客户端代码并不是真的那么有值(value)...不是因为您没有创建某些东西很棒,但代码只是达到目的的手段)并选择正确的技术方法来提供该服务,但不要让人们掌握它。

因此,如果您有一些特殊的商业模式,请不要在客户端实现。将关注点分为客户端责任和服务器责任。将客户端限制为基本 UI,从用户那里获取信息,发送到服务器并显示响应。将您的秘方放在服务器上,远离他们看不到的地方。

您不必将其设为 SPA...只需将其设为标准的 ASP.NET WebForms 或 MVC 即可。如果您确实选择 SPA,则必须接受其内在原则。

如果那不可能,并且所有逻辑都必须在客户端上,则您需要做出决定。要么 a) 不要打扰 b) 反对尝试构建完美安全的小环境的方式(这会失败)或 c) 依赖与用户的法律协议(protocol)。

TL;DNR:我的意见?为你的工作感到自豪,让它的值(value)独立存在。将私有(private)业务逻辑保留在服务器端并适本地进行架构设计,此外还可以消除人们看到您的客户端代码会威胁您的业务的想法,这是一种简单而可靠的方法。另外,缩小你的 JS。它不会保护您的知识产权,但它有其他更实际的好处。

关于javascript - 使用 .NET 在 SPA 中保护 HTML 和 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21196973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com