转载:https://my.oschina.net/1590538xiaokai/blog/478842

摘要: 一直有人问HTML加密混淆怎么做,其实这在业内是早已很多人研究过的课题。 最近闲暇之余整理一篇文章分享给大家。

一直有人问HTML加密混淆怎么做,其实这在业内是早已很多人研究过的课题。
最近闲暇之余整理一篇文章分享给大家。

我们先理下需求,加密的目的是什么?加密到什么级别?为此我们可以牺牲什么?
我们知道这个世界不存在绝对的安全,加密会被破解、混淆会被反混淆。
技术小白、开发者、黑客,是完全不同的级别,防范不同级别的人策略都不一样。
防范力度越大,投入代价也越大,比如聘请专业的安全公司。
除了投入,我们还需要考虑程序的执行性能和用户体验。
加密的代码在运行时必须解密,混淆后尤其是混淆HTML后,程序的执行性能会下降。
是否真的有必要做这类的源码保护,还需要谨慎取舍。

一般而言,前端的代码,负责的是用户体验,后端的代码,负责更安全的数据处理。
前端不要涉及泄漏太多涉密信息,那么加密的意义不是特别大。
我很少在前端代码里看到值得保护的内容,比如高深的算法,很多代码是没必要牺牲用户体验来保护的。
但有些前端代码涉及最终用户的数据安全,此时还是要努力做数据保护的。

接下来具体分析几种手段。

  1. 不要在前端放敏感数据
    这个听起来是废话,但真的很重要。
    有些开发者在手机端明文存用户的密码,这是非常危险的事情。
    即使是原生开发,一旦手机被root,也会造成数据泄漏。更何况HTML5开发。
    比较好的做法是手机端存token,而不是密码,这里有篇文章专门介绍这块,涉及做登录的开发者推荐仔细看看设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)

  1. js、css压缩
    压缩不是加密,也不是混淆。但压缩后的js文件,往往也具有混淆的功能。
    js、css压缩是很常见的技术,我们经常看到各种框架的文件名是xxx.min.js,xxx.min.css。
    使用合适的js、css压缩方案,可以减少文件体积、提高载入速度,最重要的是,它还能加快程序的执行性能。简直是有百利而无一害。
    混淆js比较常用的工具是yahoo的YUI混淆,在HBuilder里点菜单工具-插件安装,里面有YUI compress,可以压缩js和css。
    如果js、css比较大,发布前压缩下是比较推荐的做法。

  1. HTML、js、css混淆
    压缩虽然也能混淆,但不是以让别人看不懂为目的,混淆是真正以别人看不懂为目的。
    但是这样的混淆就不像压缩那么有百利而无一害了,它会降低程序执行性能。
    一些开发者不希望发行包解压后可以直接看到源码,那么此时可以使用混淆方案。
    网上搜索HTML混淆,资料和工具都非常多。
    原理都是类似的,js代码变成乱七八糟的字符串,然后用eval执行,HTML代码变乱七八糟字符串,用document.write或innerHTML执行,css也可以动态的在document.write里写<style>。
    这些工具有免费也有商业的,一般越商业的越难被反混淆。
    这个是免费的在线混淆工具 http://www.myobfuscate.com
    这个是比较知名的商业工具,http://www.jasob.com
    其实大家也可以根据原理自己写混淆算法。
    混淆也是一个有年头的成熟技术,比如Google在保护gmail的前端代码时,也是通过混淆来保护的。
    不管是压缩还是混淆,使用grunt来做发布是不错的方式,开发后一键调用grunt处理,非常便捷。

  1. 防止webkit remote debug,即防止浏览器控制台调试
    Android4.4及以上和iOS是支持webkit remote debug的,在HBuilder的教程里也有如何使用chrome调试Android应用,和使用safari调试iOS应用的教程。
    在HBuilder开发的App里,manifest.json里下的plus-distribute下有一个debug标签,标记为false后打包,这样的包运行在手机上时webview会阻止浏览器的远程调试请求。
    如果你想调试,那么把debug改为true后再打包。
    当然有些Android rom不是很规范,并不能阻止调试,这属于rom的bug。

  1. 专业加密加固加壳服务
    由于Android的特殊性,针对apk出现了加固、加壳产业,这也是业内常见的apk保护方案。
    很多应用市场都提供加固服务,比如360手机助手的加固,

  2. 还有专业公司如:爱加密,里面有免费的基础安全保障服务,也有收费的高级安全保障服务。

后记,有些非专业安全公司提供的所谓源码加密服务,其实是漏洞百出的。
安全无小事,使用专业安全服务产品更可信赖。

关于HTML加密混淆、源码保护、代码安全,防止解压直接看源码相关推荐

  1. 关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码

    一直有人问HTML加密混淆怎么做,其实这在业内是早已很多人研究过的课题. 假日期间整理一篇文章分享给大家. 我们先理下需求,加密的目的是什么?加密到什么级别?为此我们可以牺牲什么? 我们知道这个世界不 ...

  2. 关于5+APP或wap2app制作实现JS混淆加密的方法(防止解压直接查看源码)

    加密目的是为了防止别人解压APP文件后既可拿到你的信息和源代码,保护APP信息安全. 配置: 第一步,点击5+APP或wap2app项目的manifest.json然后点击源码视图找到plus节点添加 ...

  3. VBA 工程代码加密混淆器,保护你的宏作品

    个人制作的 VBA 代码加密混淆器,帮你加密你的宏代码,让它不再那么易读.因 VBA 的方便一直以来都喜欢用它写一些小工具,了解多了也就知道这种代码编写的工具完全没有安全性可言,工程密码形同虚设,很容 ...

  4. Dolphinscheduler源码包src.tar.gz解压问题

    源码下载 对Dolphinscheduler尝试初步部署了几天后,准备看下它的源码,可是在官网下载文件包后进行解压时遇到了些小问题 首先登录官网选择1.3.9版本的src包 https://dolph ...

  5. 惊爆:当Python代码遇到zip解压炸弹,未做防护的你后悔莫及!

    zip解压炸弹 在文章的开头,让我们先来介绍一下zip解压炸弹是个 什么妖怪! 解压炸弹是指解压缩后能够产生巨大的数据量的可疑压缩文件!默认设置是文件扫描中产生500MB以上解压数据的是"解 ...

  6. ICSharpCode.SharpZipLib 压缩、解压文件 附源码

    http://www.icsharpcode.net/opensource/sharpziplib/ 有SharpZiplib的最新版本,本文使用的版本为0.86.0.518,支持Zip, GZip, ...

  7. VC++使用开源的zip.cpp和unzip.cpp实现压缩包的创建与解压(附源码)

    目录 1.使用场景 2.压缩包的创建 3.压缩包的解压 4.CloseZipZ和CloseZipU两接口的区别

  8. window下制作加密zip压缩包后linux命令行无法解压

    linux下,使用 unzip -P password filename.zip -d destfile 报错:unsupported compression method 99,无法提取文件. 解决 ...

  9. 深度学习制作数据集的部分代码实现(解压zip、生成json文件)

    1.当数据集是压缩包时,需要解压成图片文件 import zipfile def unzip_data(src_path,target_path):'''解压原始数据集,将src_path路径下的zi ...

最新文章

  1. Spring中的JDBC操作
  2. 稀疏和L1正规化(Sparsity and Some Basics of L1 Regularization )
  3. Android App层 单独使用SystemProperties
  4. 《移动项目实践》实验报告——Android初级控件
  5. JsonException: Max allowed object depth reached while trying to export from type System.Single
  6. ISE调用Notepad++并且实现错误高亮定位的方法
  7. linux fg 命令,Linux fg 命令 command not found fg 命令详解 fg 命令未找到 fg 命令安装 - CommandNotFound ⚡️ 坑否...
  8. matlab安装好 启动总是闪退_在Ubuntu16.04下安装MATLAB2017b
  9. 【高并发】面试官:讲讲高并发场景下如何优化加锁方式?
  10. exchange 2010申请分配证书服务提示:证书无效,不可用于exchange server
  11. go给Linux安装mysql_Linux安装MySQL-Go语言中文社区
  12. linux shell if命令参数说明
  13. 关键词组合工具_关键词的优化方法及搜索工具,亚马逊关键词处理
  14. s7-200与计算机modbus通讯案例,S7-200实现Modbus通信范例(绝对精华)
  15. 睡觉觉睡觉睡觉计算机手机,晚上睡觉时,电脑放在头部旁边有什么危害吗?
  16. Unity中颜色空间(Color)HSV,HSB,HSL
  17. 风扇空调照明灯动画的创建
  18. Padavan各源码融合教程
  19. java web 使用 Freemarker 导出word,zip包导出多个word
  20. 全员营销实施困难,是因为你没有这个神器

热门文章

  1. 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令
  2. 3.Lucene3.x API分析,Director 索引操作目录,Document,分词器
  3. python连接各种数据库数据_Python连接各种数据库
  4. C语言单片机数码管a段亮,各位大神,如何用C语言实现在数码管上实现1234同时亮...
  5. Faster R-CNN改进篇(一): ION ● HyperNet ● MS CNN
  6. 力扣:1两数之和(python)-------->双向取值
  7. php对象序列化总出错false
  8. BZOJ 4070 [Apio2015]雅加达的摩天楼 ——分块 SPFA
  9. Karma和Jasmine自动化单元测试
  10. 《税的真相》—— 读后总结