前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端安全即JS代码安全,简单前端源码安全探讨!

前端安全即JS代码安全,简单前端源码安全探讨!

原创
作者头像
用户8703799
发布2023-10-11 08:56:42
2050
发布2023-10-11 08:56:42
举报
文章被收录于专栏:javascript技术javascript技术

前端源码安全

今天思考下前端源码安全的东西,不讲前端安全的大课题,只是针对于源码部分。 在我看来,源码安全有两点,一是防止抄袭,二是防止被攻击。

关于抄袭

其实就前端来讲,多数代码没有什么好抄袭的,除了一些特效、游戏、前端展示性的类app功能,那么前端源码保护主要可以说为了防分析,防止人们知道其中逻辑,这里有两个案例:一个是之前锤子手机发布时的作弊丑闻,一个是小米手机在英国发布时的作弊事件,巧了,都是手机,都是作弊,都是前端JS代码引起的问题,被分析,曝光...,其实,做一下js混淆加密,这一切就都不会发生了,可惜了,这么大的公司,不注重前端安全,得不偿失啊。 混淆加密是防止其他人查看代码逻辑,生成的代码比原代码体积大一些,但现在的网速、机器性能、浏览器性能,完全不需要考虑这点性能损失。说了这么多,前端js代码混淆加密怎么做,推荐产品吧,国外有jscrmber,国内有jshaman!

关于安全 所有的用户输入都是不能相信的,如果后端的检查校验还做得不好,那就可能被攻破。前端代码的逻辑如果还被了解清楚,那就是雪上加霜。后端的问题我们前端管不着,前端的代码安全,就是用混淆加密解决,让别人看不懂。

HTML压缩 很少有人去做HTML的压缩(特指去除空白字符和注释),根据其他资料有几个原因:

1. HTML文档中,多个空白字符等价为一个空白字符。也就是说换行等空白字符的删除是不安全的,可能导致元素的样式产生差异。 2. HTML元素中,有一个pre, 表示 preformatted text. 里面的任何空白,都不能被删除。 3. HTML中有可能有 IE 条件注释。这些条件注释是文档逻辑的一部分,不能被删除。

也是鉴于上面几个原因,不提倡压缩HTML,通过服务器的gzip压缩就已经能达到很好的效果。

JS压缩合并混淆 在生产环境上,压缩合并是不必做的。但现在很多人都在做,号称是为了提高加载速度,事实上,不得不说:把多个html、css、js压缩成一个文件,这能快的了?原来一个文件100K,并行加载,是半行同时加载啊!2秒就加载完了。 压成一个后呢,经常可见的是达到好几MB,不能同时加载了,想想吧,是快了还是慢了,认为压成一个文件加载更快的人们啊,真得去交个智商税了。。。对单个js文件混淆加密就行了,不要压成一个文件,不要压成一个文件。重要的事情说两遍。

js代码混淆效果怎么样?

混淆加密前: function hello(){ alert('hello'); }

用JShaman混淆加密后: var _0x08e6=['hello'];(function(_0x560c7b,_0x17e70b){var _0x56bb8b=function(_0x4ccb21){while(--_0x4ccb21){_0x560c7b['\x70\x75\x73\x68'](_0x560c7b['\x73\x68\x69\x66\x74']());}};_0x56bb8b(++_0x17e70b);}(_0x08e6,0x77));var _0x608e=function(_0x4d0ca4,_0x58e301){_0x4d0ca4=_0x4d0ca4-0x0;var _0x50ffc7=_0x08e6[_0x4d0ca4];return _0x50ffc7;};function hello(){alert(_0x608e('0x0'));}

绝对够用!

总结

1、前端安全需要重视,将来会越来越被重视,因为它真重要。

2、不要进行多文件压缩,不要把html、css、js压到一起,很不明智的做法。

3、前端安全,就是js代码安全,对js做混淆加密是正道!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前端源码安全
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com