如何从Wappalyzer中隐藏Angular版本?出于安全需求隐藏JS框架版本
隐藏Angular版本避免Wappalyzer检测的方法
移除页面的generator meta标签
Angular默认会在index.html中自动生成带版本信息的<meta name="generator">标签,直接删除该行即可。如果构建时会自动重新生成,在angular.json的项目构建配置里添加"generator": false:"projects": { "你的项目名": { "architect": { "build": { "options": { "generator": false, // 其他原有配置 } } } } }清除打包文件中的版本标识
生产模式构建会自动压缩代码,但仍需确保版本字符串被移除:- 构建时使用生产配置:
ng build --configuration production - 在
angular.json的生产配置中开启优化和混淆:"configurations": { "production": { "optimization": true, "outputHashing": "all", "sourceMap": false, "buildOptimizer": true, // 其他原有配置 } }
若仍有残留,可借助Terser工具对最终打包的JS文件做进一步处理,过滤掉包含Angular版本的字符串。
- 构建时使用生产配置:
覆盖全局Angular对象的版本信息
部分场景下全局ng对象会暴露版本,在main.ts中bootstrap完成后修改或删除该属性:import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; platformBrowserDynamic().bootstrapModule(AppModule) .then(() => { if ((window as any).ng) { delete (window as any).ng.version; // 或替换为无意义值 (window as any).ng.version = { full: 'unknown' }; } }) .catch(err => console.error(err));验证检测结果
构建生产版本后,检查页面源码确认无版本相关内容,再用Wappalyzer检测,确认版本信息已被隐藏。
内容的提问来源于stack exchange,提问作者Ali Tarani
相关产品推荐
相关产品推荐

