广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >javascript如何实现防篡改对象
  • 874
分享到

javascript如何实现防篡改对象

2024-04-02 19:04:59 874人浏览 八月长安
摘要

小编给大家分享一下javascript如何实现防篡改对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:JavaScri

小编给大家分享一下javascript如何实现防篡改对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

具体如下:

JavaScript中对象内置有多个属性Configurable,Writable,Enumerable,Value,Get和Set,来控制属性的行为。同样的ES5也有几个方法,来指定对象的行为。我们知道,javascript中的对象是可以共享的,也是默认可拓展的:

//一旦将对象设置防篡改,就不能撤销了
//众所周知,一般的对象是可以随意拓展的
var person = {name:'liufang'};
person.age = 22;
document.write(person.age+"<br>");//22

我们可以添加、删除或者修改其他的属性或者方法。但是这也会导致一些问题,比如多人开发时,某些属性被人为修改,造成工程上的麻烦。这就促使了防篡改对象的诞生。防篡改对象有三个级别,分别是不可拓展对象、密封对象和冻结对象。

不可拓展对象

先来说说不可拓展对象吧,可以通过就普通对象设置为不可拓展对象,来使新添加的属性无效:

//防拓展对象
Object.preventExtensions(person);//设置为防拓展对象
person.smallName = 'ff';
document.write(person.smallName+"<br>");//undefined
//说明不能添加新属性
//检测是否为可拓展对象
document.write(Object.isExtensible(person)+"<br>");//false
//虽然防拓展对象不能添加属性,但是可以删除属性
delete person.age;
document.write(person.age+"<br>");//undefined ,已经删除成功

可以看到,虽然不可拓展对象可以防止新添加属性,却不能阻止他人删除属性,当然也不能阻止修改了。所以引出了第二个等级的密封对象。

密封对象

密封对象就是在不可拓展对象的基础上添加一条规则,也就是不能删除属性。

//密封对象
//在不可拓展的基础上也不能删除
var people = {name:'liufang'};
Object.seal(people);//将对象密封
delete people.name;
document.write(people.name+"<br>");//liufang ,说明不能删除
people.name = "tyq";//虽然不能删除,但是可以修改
document.write(people.name+"<br>");//tyq ,说明修改成功
//检测
document.write(Object.isSealed(people)+"<br>");//true

可以看出,密封对象虽然防止了删除,但是还是无法阻止修改,所以就有了最高级别的限制,也就是冻结对象。

冻结对象

被冻结的对象既不能拓展,也不能删除和修改。

//冻结对象
//不能拓展,不能删除,不能修改
var man = {name:'tyq'};
Object.freeze(man);
//检测
document.write(Object.isFrozen(man));//true

最后要注意的就是,一旦对象被设置放篡改对象,则不能撤销,所以需要慎重考虑。

以上是“javascript如何实现防篡改对象”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: javascript如何实现防篡改对象

本文链接: https://www.lsjlt.com/news/73261.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javascript如何实现防篡改对象
    小编给大家分享一下javascript如何实现防篡改对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:JavaScri...
    99+
    2022-10-19
  • JavaScript 防篡改对象的用法示例
    目录javascript防篡改对象1、不可扩展对象2、密封的对象3、冻结的对象javascript防篡改对象 这个东西吧,用到的很少,个人感觉用处不大,但是,可以作为装逼的利器,哈...
    99+
    2022-11-12
  • JavaScript中防篡改对象的示例分析
    小编给大家分享一下JavaScript中防篡改对象的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!javascript是一种什么语言javascript是...
    99+
    2023-06-14
  • javascript对象的增删改查怎么实现
    小编给大家分享一下javascript对象的增删改查怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!什么是对象?嘿!这还用问吗?对象不就是“你的女朋友” 嘛!,或许你以为我在胡说,但事实上确实就是。看完下面这个定义,...
    99+
    2023-06-29
  • JavaScript如何动态更改对象的key
    小编给大家分享一下JavaScript如何动态更改对象的key,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!动态更改对象的key在过去,我们首先必须声明一个对象,然后在需要动态属性名的情况...
    99+
    2022-10-19
  • mybatis注解如何实现对象批量更改
    mybatis注解对象批量更改 一、介绍 当有多个对象需要进行更改时,批量修改对象集合List 二、代码 @Update("<script>" + "<fore...
    99+
    2022-11-12
  • JavaScript如何实现对象和数组转化
    这篇文章将为大家详细讲解有关JavaScript如何实现对象和数组转化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对象和数组转化Object.keys({name:&#...
    99+
    2022-10-19
  • Javascript如何实现对象扁平化实例详解
    目录前言例题详情扁平化代码实现总结前言 数组扁平化相信大家已经耳熟能详了,在被面试官问到如何实现数组扁平化你就偷着乐吧,但是相信有不少大佬在面试一些国内顶尖的大厂时,被面试官问到如何...
    99+
    2022-11-13
    js对象扁平化处理 对象扁平化 js 扁平化js
  • GO语言和Javascript如何实现对象同步?
    随着互联网技术的不断发展,前端和后端的交互越来越频繁。在这个过程中,对象同步是一个非常重要的问题。在本文中,我们将介绍如何使用GO语言和Javascript实现对象同步。 一、GO语言实现对象同步 GO语言是一种高效、简洁、并发的编程语言,...
    99+
    2023-09-15
    对象 同步 javascript
  • JavaScript中如何实现localStorage对象存储方式
    小编给大家分享一下JavaScript中如何实现localStorage对象存储方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2022-10-19
  • PHP 对象与 JavaScript IDE:如何实现无缝衔接?
    PHP是一种非常流行的编程语言,而JavaScript则是Web开发领域不可或缺的技术。在Web开发中,PHP和JavaScript通常被用于不同的任务,但是有时候它们需要进行无缝衔接。 为了实现这种无缝衔接,我们需要了解PHP对象和Jav...
    99+
    2023-10-29
    对象 javascript ide
  • JavaScript类数组和可迭代对象如何实现
    本篇内容介绍了“JavaScript类数组和可迭代对象如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2022-10-19
  • JavaScript如何实现多级对象的深度克隆
    这篇文章给大家分享的是有关JavaScript如何实现多级对象的深度克隆的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。多级对象的深度克隆要深度克隆多级对象,可以遍历每个属性,并检查当前属性是否包含对象。如果是,则...
    99+
    2023-06-27
  • Django JSonResponse对象如何实现
    这篇“Django JSonResponse对象如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Django...
    99+
    2023-07-05
  • C++如何实现对象池
    这篇“C++如何实现对象池”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“C++如何实现对象池”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。前言需求...
    99+
    2023-06-26
  • PHP 对象和 JavaScript IDE:如何实现完美互操作?
    PHP 和 JavaScript 是两种不同的编程语言,它们在开发 Web 应用程序时都扮演着重要的角色。PHP 通常用于服务器端编程,而 JavaScript 则用于客户端编程。在开发 Web 应用程序时,经常需要通过 PHP 和 Jav...
    99+
    2023-10-29
    对象 javascript ide
  • 如何记录Java对象的修改历史和实现数据修改日志
    在大多数业务场景中,修改历史是非常重要的信息。例如,当我们对某个对象进行数据修改时,可能需要记录修改之前和修改之后的值,以便于我们对修改进行审核和追溯,以及诊断和解决潜在的问题。 在 Java 开发中,我们可以使用观察者模式来实现记录 Ja...
    99+
    2023-09-16
    java 开发语言 spring 后端 springboot
  • JavaScript如何实现函数防抖
    这篇文章主要介绍了JavaScript如何实现函数防抖,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。函数防抖leading 为是否在进入时立即执行一次, trailing 为...
    99+
    2023-06-27
  • PHP 对象和 JavaScript IDE:如何实现最佳协同工作?
    在现代Web开发中,PHP和JavaScript是两种最常用的编程语言。PHP是一种服务器端语言,用于处理和生成动态Web内容,而JavaScript则是一种用于前端开发的脚本语言。因此,在Web开发中,PHP和JavaScript经常需...
    99+
    2023-10-29
    对象 javascript ide
  • 如何理解javascript中的实例化对象
    本篇内容介绍了“如何理解javascript中的实例化对象”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作