`
xiangzhengyan
  • 浏览: 126478 次
  • 性别: 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
分享到:
评论

相关推荐

    Javascript Obfuscator代码混淆

    JavaScript Obfuscator是一种工具,主要用于保护JavaScript代码,通过将源代码转换为难以理解的形式,以防止未经授权的用户查看、修改或盗窃代码。在Web开发中,尤其对于那些包含商业逻辑或者敏感信息的JavaScript...

    javascript代码混淆器

    JavaScript代码混淆器是一种工具,用于将源代码转换成难以阅读的形式,以保护代码不被轻易理解和篡改。在Web开发中,特别是在公开发布JavaScript代码时,混淆是非常重要的一步,因为JavaScript是客户端执行的,如果...

    混淆js代码,把javascript代码变成()[]!这种乱七八糟的字符,但是不影响其运行.zip

    综上所述,JavaScript混淆是一种重要的代码保护手段,通过各种技术手段提高代码的不可读性,以保护源代码的知识产权和业务安全。然而,混淆并不绝对安全,合理的混淆策略应结合其他保护措施来实施。

    基于机器学习的JavaScript恶意代码检测系统的研究与实现

    随着混淆技术的发展,检测恶意代码变得更加困难,因为混淆既可能用于隐藏恶意行为,也可能用于合法的代码保护。 论文中提出了一种基于机器学习的解决方案。首先,通过协同训练的方法来识别JavaScript的恶意特性。...

    javascript实用代码压缩工具

    "javascript实用代码压缩工具"就是这样一个帮助开发者优化JavaScript代码的工具。 JavaScript代码压缩主要有两个目的:一是去除代码中的空格、换行符和注释,这种过程称为"混淆";二是通过变量重命名、合并函数等...

    javascript混淆,javascript压缩,javascript加密软件

    加密工具可能会结合混淆和压缩,形成一个完整的代码保护解决方案。 总结起来,JavaScript混淆、压缩和加密是提升代码安全性、性能和效率的重要手段。混淆使得代码难以被分析,压缩减少了代码体积,而加密则确保了...

    javascript obfuscator

    JavaScript Obfuscator是一种工具,用于对JavaScript代码进行混淆,使其更难以阅读和理解。这个过程通常是为了保护知识产权、增加代码的安全性或者优化代码大小。在本文中,我们将深入探讨JavaScript Obfuscator的...

    javascript混淆工具.rar

    JavaScript混淆工具是编程领域中一个重要的实用技术,主要用于保护JavaScript代码的安全性和防止未经授权的复制或逆向工程。在Web开发中,JavaScript代码通常是公开的,容易被他人查看和理解,这可能给开发者带来...

    JavaScriptobfuscator是一款功能强大的JavaScript和Nodejs免费混淆器

    1. 变量和函数重命名:JavaScript Obfuscator可以将变量和函数的名字替换为无意义的字符串,使得阅读混淆后的代码变得极其困难。 2. 代码结构打乱:它会改变代码的逻辑顺序,例如通过块级作用域的嵌套和循环结构调整...

    javascript 代码 简单加密的几个方法.docx

    ### JavaScript 代码简单加密方法详解 #### 一、引言 在Web开发中,JavaScript (JS) 是一种广泛...因此,在进行代码保护的同时,还应采取其他措施,如服务器端验证、数据加密传输等,以构建更为全面的安全防护体系。

    Javascript 面向对象的JavaScript进阶

    这有助于保护对象的数据完整性,防止外部代码意外或恶意地修改这些数据。 **JavaScript中的实现:** 虽然JavaScript没有提供严格的封装机制,但我们可以通过设置私有变量和公共方法来实现类似的功能。通常,开发者...

    面向对象JavaScript精要(英文原版pdf)

    尽管JavaScript不是传统意义上的面向对象语言,但它提供了一些独特的特性,使其能够支持面向对象编程。 - **原型链**:JavaScript使用原型链来实现继承。每个对象都有一个内部属性[[Prototype]],指向其原型对象。...

    Javascript脚本混淆器

    JavaScript脚本混淆器是一种工具,它的主要目的是保护JavaScript代码的安全性,防止未经授权的用户阅读、复制或篡改代码。在Web开发中,由于JavaScript代码通常是以明文形式发送到客户端,这使得它容易受到诸如代码...

    Javascript教程

    - **跨平台性**:JavaScript代码可以在多种平台上运行,只要该平台支持JavaScript引擎。 #### 三、JavaScript的关键技术要点 ##### 3.1 脚本编写语言 JavaScript采用了类似于C语言的语法结构,但其灵活性更高。...

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

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

    javascript混淆加密1.0

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

    JavaScript the good parts 经典课程

    4. **作用域和闭包**:理解函数和块级作用域,以及如何使用闭包来保护变量和创建私有成员,对于避免全局变量污染和提高代码复用性具有重要意义。 5. **事件和异步编程**:JavaScript是单线程的语言,但通过事件循环...

    混淆器源码,提高代码安全性

    JavaScript代码混淆器是一种用于保护JavaScript源代码的技术,它通过改变代码的可读性来提高代码的安全性。在互联网上发布JavaScript代码时,由于其是解释执行的语言,源代码默认是暴露给用户的,这可能导致恶意用户...

    转换Flash文件代码

    在IT行业中,Flash曾是一种广泛应用于网页动画、游戏和多媒体内容的格式,它以其丰富的交互性和动态效果受到青睐。...随着技术的进步,虽然Flash逐渐淡出舞台,但对它的内容进行妥善处理和迁移仍然具有实际意义。

Global site tag (gtag.js) - Google Analytics