防篡改
来源:互联网 发布:软件著作权第一作者 编辑:程序博客网 时间:2024/05/16 00:49
防篡改: 对对象整体的保护
三个级别: 不可逆
1. 防扩展: 禁止扩展新属性
其实就是设置对象的Extensible属性为false
Object.preventExtensions(obj);
尝试扩展新属性: 禁用
2. 密封对象: 防扩展的基础上,禁止配置或删除每个属性
其实就是将每个属性的configurable设置为false
仅能读写属性值
Object.seal(obj);
尝试扩展新属性: 禁用
尝试修改属性的特性: **允许**
尝试删除: 禁止
尝试修改属性值: 允许
问题: chrome中,密封后依然可修改属性的特性
3. 冻结对象: 禁止对对象做任何修改,包括属性值
Object.freeze(obj)
尝试扩展新属性: 禁用
尝试修改属性的特性: 禁止
尝试删除: 禁止
三个级别: 不可逆
1. 防扩展: 禁止扩展新属性
其实就是设置对象的Extensible属性为false
Object.preventExtensions(obj);
尝试扩展新属性: 禁用
2. 密封对象: 防扩展的基础上,禁止配置或删除每个属性
其实就是将每个属性的configurable设置为false
仅能读写属性值
Object.seal(obj);
尝试扩展新属性: 禁用
尝试修改属性的特性: **允许**
尝试删除: 禁止
尝试修改属性值: 允许
问题: chrome中,密封后依然可修改属性的特性
3. 冻结对象: 禁止对对象做任何修改,包括属性值
Object.freeze(obj)
尝试扩展新属性: 禁用
尝试修改属性的特性: 禁止
尝试删除: 禁止
尝试修改属性值: 禁止
eg:
<script>"use strict";var smith={id:1234,ename:"smith",age:19};<span style="background-color: rgb(255, 0, 0);">//1:禁止扩展</span>/*Object.preventExtensions(smith);smith.salary=10000;console.log(smith.salary);//undefined//每个属性的configurable=false*/<span style="background-color: rgb(255, 0, 0);">//2:seal密封,打包</span>/*Object.seal(smith);//尝试扩展新属性:已禁用smith.salary=10000;console.log(smith.salary);//尝试修改属性的新特性,仍然可用Object.defineProperty(smith,"id",{writable:false//将id设置为只读,说明现在的浏览器对ES5的防篡改有漏洞})//尝试删除属性smith.id=1001;console.log(smith.id);*/<span style="background-color: rgb(255, 0, 0);">//3:冻结对象</span>Object.freeze(smith);//尝试修改属性值:已禁用console.log(Object.getOwnPropertyDescriptor(smith,"age"););//尝试扩展新属性smith.salary=1000;console.log(smith.);</script>
0 0
- 防篡改
- 防篡改
- 网站防篡改解决方案
- 网页防篡改技术
- 网页防篡改原理
- 文件防篡改
- 网页防篡改解决方案
- ECMAScript5防篡改对象
- JavaScript 防篡改对象
- javascript防篡改对象
- 防篡改问题
- js防篡改对象
- 政府网站防篡改解决方案
- 网页防篡改技术比较
- 网页防篡改技术追踪
- 网页防篡改系统原理
- 网页防篡改技术比较
- 如何实现网页防篡改
- Object.create
- hash_map快于STL中的map
- loadrunner Fast learning Second Day
- iOS-UIDynamic物理仿真-重力、碰撞
- Deep Learning模型之:CNN卷积神经网络(二) 文字识别系统LeNet-5
- 防篡改
- ubuntu分区
- 数组API---EVERY,some,foreach
- Cocos2dx android apk签名打包流程
- 03Android Studio使用手册(基础+高阶)
- 第一次上机实验-3
- 工作遇到问题
- vs调试方法
- java图片文件处理工具类【包括图片缩放,剪切等功能】