【问题标题】:How to hide Angularjs source codes?如何隐藏 Angularjs 源代码?
【发布时间】:2024-01-13 13:08:01
【问题描述】:

如何隐藏 app.js、controller.js 文件或代码?

它们在 html 源代码中可见。有没有办法隐藏它们?

【问题讨论】:

  • 您无法隐藏,但您可以随时缩小您的脚本。搜索 javascript 缩小。
  • Angularjs 代码是 javascript,js 总是对用户可见,尽管你可以混淆它。
  • @defau1t 谢谢你的回答.. 但我不是说 angularjs 它本身.. 例如我的控制器和路由代码对用户可见?我使用 php 作为后端。我的控制器和路由代码对用户可见不是一个漏洞吗?对不起我的英语
  • 我认为这没有任何问题。看看这个有角度的网站,fontdragr.com 如果你做一个视图源,你可以在视图源中看到所有的服务、工厂、指令。
  • 所有实际的安全检查都应该在服务器端完成。你对 angular/js/html 所做的只是给用户一个演示。您在 Angular 中获得的所有安全功能都是为使用浏览器的用户提供的,而不是为了防止他做错任何事情......

标签: angularjs source-code-protection


【解决方案1】:

这是做不到的。

但是您可以使用工具来缩小来源。有关 angular.js,请参阅 Google Clousureng-min

我建议您使用 grunt 为您的应用程序构建一个单独的 js 文件,并压缩所有代码。 看看那些可能有用的项目:ng-boilerplateyeoman - angularjs

【讨论】:

    【解决方案2】:

    你不能隐藏 angualrjs。它基于Javascript。缩小,无济于事,因为任何人都可以将其转换回人类可读的视图(确定是否有人想窃取您的代码)。任何敏感逻辑都尝试放在服务器端。

    希望它会有所帮助,

    【讨论】:

    • 如果这听起来像个菜鸟,我很抱歉,但我是一个相当新的服务器端 JS 编程,并且对它的工作原理非常感兴趣。如何在服务器上保留敏感逻辑?
    • @praneybehl 表示用 PHP/Java 编写,但不在客户端
    【解决方案3】:
    1. 缩小
    2. 丑化 与minify一起你必须uglify你的代码,这使得它难以理解,它会以非常丑陋的方式重命名变量和函数,不容易破坏代码。
      你也可以很好地加密它,你必须在需要使用时解密,并且不能对前端工具隐藏

    【讨论】:

    • 请解释“你也可以加密”
    • @AnkitBalyan 这不会加密你的 JS 代码,那是不可能的。你的浏览器怎么能运行 JS 代码,如果它的代码是加密的!?
    • @Red 这正是我在回答中提到的。 “你必须在需要使用时解密,并且不能对前端工具隐藏”
    【解决方案4】:

    您可以使用 NGINX 服务器 subrequest 隐藏您的 javascript 代码。

    如果您在 Angular、Backbone 或其他 js 框架中有 /admin 路由,并且您想为未经授权的用户隐藏它,您可以在 NGINX 中向后端发出子请求,后端检查用户是否被授权。如果没有,则抛出 404 或重定向到主页。

    这是包含更多细节的 nginx 模块: http://nginx.org/en/docs/http/ngx_http_auth_request_module.html

    NGINX 中的代码大致如下:

    location ^~ /admin {
        # checking in background if user is privileged
        auth_request /auth;
        root   /var/www/angular-client/;
    }
    
    location = /auth {
        proxy_pass http://backend.cms/api/v1/users/admin.json;
        proxy_set_header X-Original-URI http://backend.cms/api/v1/users/admin.json;/
    }
    

    【讨论】:

      【解决方案5】:

      这是前端框架的自然行为;你不隐藏源代码。你的前端不应该有任何敏感数据,尤其是没有密码。就像 Stack Overflow 一样,所有字体端代码都是并且将始终对用户可见。

      【讨论】:

        最近更新 更多