`
xiangzhengyan
  • 浏览: 124698 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】Javascript代码保护的意义

    博客分类:
  • js
阅读更多
原文地址 http://www.meebe.net/blog/article/web/js_protect.html

目前网页开发的现状,由于html5的出现,js再次成为最流行的客户端代码开发工具,js的强大自不用说,但其入门门槛由于他的大部分IDE落后且调试困难浏览器兼容大不相同变的有一定的高度,使得很多初学者知难而退。但是这几年逐渐流行的jQuery库使得跨浏览器兼容性大大提高,Javscript又再次回到了大部分人的视线中。meebe.net

首先不得不承认,javascript没有办法完全的保护,只要有心,有时间,任何的加密对他都是徒劳的。但是这完全不能当成不加密的理由,要知道,你所有的winform代码只要经过cpu处理,也是可以完全反汇编的。也就是说:

1.js加密的目的是加大盗-窃者破解和理解代码的难度,而不是为了防止你的js文件不被人窃取。

2.js文件保护的目的是提高窃取门槛,加大窃取成本,阻止猪窃取了你的葱而装大象的情况。


当然如果能熟练且轻松绕过以上两点而窃取你js文件的人,应该就不会在意你所写的js有多少技术含量了吧。

Javascript文件保护措施

1.禁止右键菜单:oncontextmenu="return false"   

2.禁止托拽:ondragstart="return false"   

3.禁止选择:
onselectstart ="return false" onselect="document.selection.empty()"
onmouseup="document.selection.empty()"  

4.禁止拷贝:oncopy="document.selection.empty()" onbeforecopy="return false"   

5.禁止保存<noscript><iframe src='..'></iframe></noscript>

注:以上方法能防止简单的保存你的js文件,当然如果人家整站下载,或者直接去临时文件夹里找你的js,那就没办法了,如果盗-窃者很闲的话。那我们就继续采用下面的方法加密,让他看你的原文件吧。

Javascript文件加密

原理简单的不能再简单,就是替换变量,用转义字符替换你的字符串,把整个js变成一个字符串,然后随便加密替换,最后用eval来解释他。最后把整个js文件压缩下,没有注释,没有换行,没有空格,一般人都会看到吐血。

说了半天不够爽,总不能让大家手动加密和替换吧,以下是我的御用在线加密工具,jQuery就是用其中一个加密和压缩的:

http://www.javascriptobfuscator.com/Default.aspx

http://dean.edwards.name/packer/

这2网站只提供加密,不提供解密,其实你解密了看得人也很痛苦,没有注释,没有格式,全是abcd这样无意义的变量,真有心想学你js的人,那就让他学吧。你如果真的变态,那你不妨两边混合加密几次,保准没人看得懂,不过估计浏览器解释起来也挺费劲的。

特别友情提醒:meebe.net

1.加密后记着留住你原本的js文件,不要到时候改bug都改不了了。

2.加密后如果出现运行不了,请把你加密前的文件每次函数结束都加上";",因为去除换行后,浏览器解释器没碰到";"有时候会报错。如果加密后有错,请务必多加几个";"在每个语句结束或者定义结束的时候。

3.转载请注明出处,谢谢。 meebe.net
分享到:
评论

相关推荐

    淘宝登录java源码-JsPatronum:JavaScript代码混淆器

    观点一前端代码公开,没有秘密,本身代码就没有保护的意义。 观点二正因为前端程序是以源码的形式展示在用户面前,才需要通过代码混淆的方式使得代码难以阅读从而增强前端代码的安全性,进一步保护自己的系统。 我的...

    javascript混淆加密1.0

    敏创Javascript混淆加密器是广州市敏创信息科技有限公司在保护自己的javascript源代码过程中积累的一套实用工具,可以有效地对javascript代码进行混淆加密,达到保护自己知识产权的目的。 工具可以去除空格,回车,...

    敏创javascript混淆加密器

    敏创Javascript混淆加密器是广州市敏创信息科技有限公司在保护自己的javascript源代码过程中积累的一套实用工具,可以有效地对javascript代码进行混淆加密,达到保护自己知识产权的目的。 工具可以去除空格,回车,...

    Javascript类定义语法,私有成员、受保护成员、静态成员等介绍

    在这个模板中我们可以模拟实现私有成员,受保护成员,静态成员。 这是一个在JS中模拟的类定义语法,代码中Class是一个自定义函数,它接受两个参数,第一个参数是类名、第二个参数是一个JSON用来一个对象的模板。在这...

    naivecoin:少于1500行代码的加密货币实现

    Naivecoin-少于1500行代码的加密货币实现动机区块链之上的加密货币和智能合约并不是最容易理解的概念,诸如钱包,地址,区块工作量证明,交易及其签名之类的东西在广泛的背景下更有意义。 受启发,该项目试图提供尽...

    基于微信小程序的民宿短租系统设计与实现-任务书.doc

    民宿在带动地区全域旅游、古村保护、新型城镇化建设、增加就业和农民收入、消化房地产库存等方面意义重大。课题针对当前民宿短租行业的现状和未来发展趋势,将互联网思维融入其中,在技术上以微信小程序作为依托,Java...

    Clean-Code-in-C-:Packt发布的C#中的Clean Code

    用C#清理代码 这是Packt发布的的代码存储库。 重构旧的C#代码库,并通过应用最佳实践来提高应用...使用API​​密钥保护API并使用Azure Key Vault保护数据 通过使用用于性能分析和重构的工具来提高代码的性能 如果

    ASP.NET MVC 3高级编程

    12.1 单元测试和测试驱动开发的意义 282 12.1.1 单元测试的定义 282 12.1.2 测试驱动开发的定义 283 12.2 创建单元测试项目 286 12.2.1 检查默认单元测试 287 12.2.2 只测试自己编写的代码 290 12.3 单元测试...

    PHP和MySQL WEB开发(第4版)

    8.2.4 选择有意义的键 8.2.5 考虑需要询问数据库的问题 8.2.6 避免多个空属性的设计 8.2.7 表格类型的总结 8.3 Web数据库架构 8.4 进一步学习 8.5 下一章 第9章 创建Web数据库 9.1 使用MySQL监视程序 9.2 登录到...

    学生网络安全.docx

    4、 不要随便打开陌生人的邮件附件,因为它可能是一般恶意 html或者 javascript代码(已经发现html代码可以格式化你的硬盘),如果是可执行文件, 可能是后门工具。 5、 在支持javascript或者HTML的聊天室里最好...

    PHP和MySQL Web开发第4版pdf以及源码

    8.2.4 选择有意义的键 8.2.5 考虑需要询问数据库的问题 8.2.6 避免多个空属性的设计 8.2.7 表格类型的总结 8.3 Web数据库架构 8.4 进一步学习 8.5 下一章 第9章 创建Web数据库 9.1 使用MySQL监视程序 9.2 ...

    PHP和MySQL Web开发第4版

    8.2.4 选择有意义的键 8.2.5 考虑需要询问数据库的问题 8.2.6 避免多个空属性的设计 8.2.7 表格类型的总结 8.3 Web数据库架构 8.4 进一步学习 8.5 下一章 第9章 创建Web数据库 9.1 使用MySQL监视程序 9.2 ...

    js-iTable:针对 MooTools 库的 Refined DataGrid,即“数据绑定列表控件”,以模型或表格型图形组件显示数据源的元素,允许对这些元素进行选择、排序和编辑

    iTable - Framewok:registered: 内部该iTable组件是由三个类似的组件启发: 开发的马尔科蒂奇,在2012年放弃了作为公司本身完全... 除了添加新功能之外,我的目的还在于重新设计代码,通过创建具有祖先纪念意义的原始

    整理后java开发全套达内学习笔记(含练习)

    protected (关键字) 受保护的,私有的 [prә'tektid] provide v.规定(供应,准备,预防)[prә'vaid] refer to v.引用 [ri'fә:][tu:] reference n. 参考(引用,涉及)['refәrәns]' --&gt;reference variable 参量, 参考...

    iHauke:两个共用公寓的半专业财务管理系统

    只需在iHauke上快速输入它,再也不会毫无意义地来回转移资金了 :party_popper: 酷我该如何使用? 首先,首先要提到的。 如果您在数据保护方面不信任我(并且对计算机有所了解),则只需将其部署在Web服务器或...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    除在保密期内的保密论文和在技术保护期限内的论文外,允许论文被查阅和借阅,可以公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文的公布(包括以电子信息形式刊登)授权东南大学研究生...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 ...JS:javascript源文件 JSP:HTML网页,其中包含有对一个Java servlet...

Global site tag (gtag.js) - Google Analytics