架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 241|回复: 0

[Angular] 【转】Angular 代码混淆加密变得简单

[复制链接]
发表于 2024-12-23 11:06:14 | 显示全部楼层 |阅读模式
如果您曾经需要编写一个实际项目,那么对安全性的担忧是存在的——或者至少应该存在。随着技术的进步,我们可以在短时间内编写出令人惊叹的、强大的、高性能的系统,但这也意味着恶意的人和技术变得更加强大和难以克服。这就是为什么如今在开发系统时必须保护所有常见的漏洞。

Angular 开箱即用地处理了很多安全问题:它有自己的变量保护系统和清理功能,可以防止恶意代码在您的应用中运行。另一个功能是代码压缩。

最小化与混淆

代码压缩是一种通过删除空格和注释等不必要的字符来减小源代码大小的技术,可提高源代码的加载性能。此过程在 JavaScript、CSS 和 HTML 文件的 Web 开发中很常见,并且通过混淆代码以某种方式增加了一层安全性。压缩后的代码极难阅读,这就是为什么它被认为是某种混淆。但是,工具可以对代码进行反压缩,使其可读,然后可进行逆向工程。这就是混淆的用武之地。

作为压缩的补充,代码混淆是一种使源代码难以理解和逆向工程的技术。它通常用于保护知识产权、防止篡改和阻止逆向工程,使攻击者难以理解代码的逻辑和识别潜在的漏洞。它将可读代码转换为更复杂和晦涩的版本,而不会改变其功能。代码混淆工具还可以添加死代码来误导攻击者,使理解软件代码库变得更加困难。

好吧,如果你有用的话,让我们混淆我们的 Angular 应用程序。

Webpack 混淆器

Angular 在打包阶段使用 Webpack,并有自己的默认设置来打包您开发的模块。我们将利用这一点并自定义 Webpack 打包 Angular 应用的方式。首先,安装以下软件包:


javascript-obfuscator​:一个功能强大的免费 JavaScript 混淆器,包含多种可为您的源代码提供保护的功能。

而webpack-obfuscator将其用作插件来为 Webpack 提供功能。你可以在这里找到 JavaScript 混淆器代码,在这里找到Webpack 混淆器插件。https://www.npmjs.com/package/webpack-obfuscator

之后,创建一个custom-webpack.config.js文件,其中包含我们想要在捆绑过程中应用的自定义配置。这是一个简单的示例:


您可以为插件提供许多不同的配置选项,webpack-obfuscator以微调混淆的输出。这是添加debugProtection到代码中的最简单的一个,这使得使用控制台来跟踪应用程序的变量和函数变得困难。

备注:WebpackObfuscator 中第二个数组参数是排除混淆的文件

到目前为止,我们已经设置了 Webpack 的配置。现在我们需要使用它。我们还需要另一个依赖项:


这将帮助我们将自定义 Webpack 构建器与 Angular 集成,以便我们仍然可以使用 Angular 构建结构。安装包后,我们只需要更改文件angular.json。搜索build属性并添加以下内容:


通过将builderfrom替换@angular-devkit/build-angular:browser为@angular-builders/custom-webpack:browser,我们仍然可以为浏览器构建,但现在可以注入我们的自定义 Webpack 配置。该customWebpackConfig属性设置文件的引用,以便 Angular 可以使用它。

如果一切设置正确,您的构建命令应该可以正常运行,并且结果将是一个混淆的 Angular 应用程序!

缺点

但请注意,这种方法在包大小方面存在缺点。代码混淆使对代码进行逆向工程变得更加困难,但它声明变量的方式使用了更多字符,导致包的大小增加——几乎与代码最小化的方向相反。

就是这样。一定要有目的地使用它,并了解如何解决该技术的缺点!

原文:https://dev.to/jodamco/angular-code-obfuscation-made-easy-4gjm
参考:https://mohanbyte.medium.com/securing-your-angular-application-javascript-obfuscation-2306fcb24f78




上一篇:调用阿里云 OpenAPI 接口获取服务器使用情况
下一篇:.NET/C# 使用 StackExchange.Redis 性能优化
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-2-18 17:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表