当前位置: 首页 > news >正文

军工企业专业网站建设方案网络广告营销对应案例

军工企业专业网站建设方案,网络广告营销对应案例,网站建设云平台,wordpress最简单主题目录 1.什么是原型链污染 2.原型链三属性 1)prototype 2)constructor 3)__proto__ 4)原型链三属性之间关系 3.JavaScript原型链继承 1)分析 2)总结 3)运行结果 4.原型链污染简单实验 1)实验一 2&#xff0…

目录

1.什么是原型链污染

2.原型链三属性

1)prototype

2)constructor

3)__proto__

4)原型链三属性之间关系 

3.JavaScript原型链继承

1)分析

2)总结

3)运行结果 

 4.原型链污染简单实验

1)实验一

 2)实验2


1.什么是原型链污染

原型链污染(Prototype Pollution)是一种web应用程序中常见的安全漏洞,主要影响使用JavaScript的应用程序。它是一种攻击技术,通过修改JavaScript对象的原型链,来实现对应用程序的非法操作和控制。

JavaScript中的对象是通过原型链进行继承的。每个对象都有一个指向其原型的链接,它允许对象从其原型中继承属性和方法。当JavaScript代码在处理输入时,如果不适当地允许用户控制原型链上的属性,攻击者就可以操纵原型链,并在目标对象上添加、修改或删除属性。

攻击者利用原型链污染可以实现多种攻击,包括但不限于:

  1. 修改对象的原型,从而覆盖或扩展原有属性和方法,导致应用程序的意外行为或漏洞。
  2. 污染全局对象的原型,导致全局范围内的异常行为,可能导致系统崩溃或敏感信息泄露。
  3. 在原型链上添加恶意方法或属性,用于劫持或篡改应用程序的逻辑。
  4. 绕过应用程序的安全控制,获取未授权的访问权限。

原型链污染漏洞通常是由于开发者未正确验证和过滤用户提供的输入数据所导致的。为了防止原型链污染,开发者应该始终对用户输入进行严格的验证和过滤,并避免直接使用用户提供的数据来操作原型链上的属性。另外,更新JavaScript运行时环境和库到最新版本也可以帮助防范已知的原型链污染漏洞。

在一个应用中,如果攻击者控制并修改了一个对象的原型,那么将可以影响所有和这个对象来自同一个类、父祖类的对象。这种攻击方式就是原型链污染。

2.原型链三属性

1)prototype

prototype 是函数对象特有的属性。在 JavaScript 中,每个函数都有一个 prototype 属性,它是一个指向对象的引用。这个对象被称为该函数的原型对象,它包含了可以由该函数的所有实例共享的属性和方法。当通过构造函数创建对象实例时,实例的 __proto__ 属性会指向构造函数的 prototype 对象。

2)constructor

constructor 属性是原型对象的一个属性,它指向构造函数本身。当你创建一个函数并给它设置 prototype 属性后,prototype 对象会自动获得一个名为 constructor 的属性,该属性指向该函数本身。这样,通过实例对象的 constructor 属性,你可以访问到创建该实例的构造函数。

3)__proto__

__proto__ 是每个对象都有的属性,它指向对象的原型。在 JavaScript 中,对象通过 __proto__ 属性链接到它们的原型对象,从而形成了原型链。当你访问一个对象的属性时,如果该对象本身没有该属性,JavaScript 就会沿着原型链往上查找,直到找到该属性或者到达原型链的顶端(通常是 Object.prototype)。

4)原型链三属性之间关系 

// 创建一个构造函数
function Person(name) {this.name = name;
}// 给构造函数的 prototype 添加一个方法
Person.prototype.sayHello = function() {console.log('Hello, I am ' + this.name);
};// 创建一个实例
const john = new Person('John');// 使用 __proto__ 访问原型对象
console.log(john.__proto__ === Person.prototype); // true// 使用 constructor 访问构造函数
console.log(john.constructor === Person); // true// 使用 Object.getPrototypeOf() 访问原型对象
console.log(Object.getPrototypeOf(john) === Person.prototype); // true// 使用原型链调用方法
john.sayHello(); // 输出: "Hello, I am John"

3.JavaScript原型链继承

function Father() {this.first_name = 'Donald'this.last_name = 'Trump'
}function Son() {this.first_name = 'Melania'
}Son.prototype = new Father()let son = new Son()
console.log(`Name: ${son.first_name} ${son.last_name}`)

1)分析

Son类继承了Father类的last_name属性,最后输出的是Name: Melania Trump

2)总结

  1. 在对象son中寻找last_name

  2. 如果找不到,则在son.__proto__中寻找last_name

  3. 如果仍然找不到,则继续在son.__proto__.__proto__中寻找last_name

  4. 依次寻找,直到找到null结束。比如,Object.prototype__proto__就是null

3)运行结果 

 4.原型链污染简单实验

1)实验一

let foo = {bar :1}
console.info(foo.bar)
//foo是一个object foo.__proto__ === object.prototype
foo.__proto__.bar = 2
console.info(foo.bar)
let zoo = {}
console.info(zoo.bar)

 污染过程

因为前面我们修改了foo的原型foo.__proto__.bar = 2,而foo是一个Object类的实例,所以实际上是修改了Object这个类,给这个类增加了一个属性bar,值为2。

后来,我们又用Object类创建了一个zoo对象let zoo = {},zoo对象自然也有一个bar属性

 2)实验2

function merge(target, source) {for (let key in source) {if (key in source && key in target) {merge(target[key], source[key])} else {target[key] = source[key]}}
}var x = {age:11
}var y = {age: 12,num: 100
}
merge(x,y)
console.info(x)
console.info(y)

运行结果:

为什么会被污染?

merge函数的目的是将source对象中的属性合并到target对象中。如果source对象和target对象具有相同的键(属性名),那么merge函数将递归地将嵌套对象的属性合并。否则,如果source对象具有target对象中不存在的键,merge函数将直接将该键值对添加到target对象中,接下来,执行 merge(x, y) 语句将会将 y 对象的属性合并到 x 对象中


文章转载自:
http://faddy.bwmq.cn
http://elastoplastic.bwmq.cn
http://alayne.bwmq.cn
http://cav.bwmq.cn
http://hamadan.bwmq.cn
http://mortise.bwmq.cn
http://transacetylase.bwmq.cn
http://germanophobe.bwmq.cn
http://rente.bwmq.cn
http://raging.bwmq.cn
http://orrin.bwmq.cn
http://amnesiac.bwmq.cn
http://seabird.bwmq.cn
http://worthful.bwmq.cn
http://nhl.bwmq.cn
http://fallage.bwmq.cn
http://withamite.bwmq.cn
http://trollop.bwmq.cn
http://dogmatize.bwmq.cn
http://multiplicable.bwmq.cn
http://galbraithian.bwmq.cn
http://feedstock.bwmq.cn
http://radiograph.bwmq.cn
http://usis.bwmq.cn
http://pepo.bwmq.cn
http://spellbound.bwmq.cn
http://silane.bwmq.cn
http://gaoleress.bwmq.cn
http://ocelot.bwmq.cn
http://vertebral.bwmq.cn
http://ecthlipses.bwmq.cn
http://generic.bwmq.cn
http://fabulist.bwmq.cn
http://adulterated.bwmq.cn
http://cruiserweight.bwmq.cn
http://sealless.bwmq.cn
http://scent.bwmq.cn
http://hairball.bwmq.cn
http://flightless.bwmq.cn
http://jolo.bwmq.cn
http://redye.bwmq.cn
http://keppel.bwmq.cn
http://hymnodist.bwmq.cn
http://chalcogenide.bwmq.cn
http://coquilhatville.bwmq.cn
http://noways.bwmq.cn
http://pistillate.bwmq.cn
http://fibroma.bwmq.cn
http://chicquer.bwmq.cn
http://dotterel.bwmq.cn
http://commercialese.bwmq.cn
http://defrag.bwmq.cn
http://passible.bwmq.cn
http://see.bwmq.cn
http://proceleusmatic.bwmq.cn
http://fiddler.bwmq.cn
http://nosing.bwmq.cn
http://nonprescription.bwmq.cn
http://lordling.bwmq.cn
http://pulvillus.bwmq.cn
http://jeopardousness.bwmq.cn
http://classicality.bwmq.cn
http://marque.bwmq.cn
http://inapparent.bwmq.cn
http://shaanxi.bwmq.cn
http://veery.bwmq.cn
http://coryphee.bwmq.cn
http://humidity.bwmq.cn
http://filterableness.bwmq.cn
http://locksmithery.bwmq.cn
http://versify.bwmq.cn
http://coupler.bwmq.cn
http://uncomprehending.bwmq.cn
http://morphinism.bwmq.cn
http://pantie.bwmq.cn
http://sortita.bwmq.cn
http://juneberry.bwmq.cn
http://overlap.bwmq.cn
http://idiolect.bwmq.cn
http://vouchsafe.bwmq.cn
http://emaciation.bwmq.cn
http://tetrabranchiate.bwmq.cn
http://envy.bwmq.cn
http://vestee.bwmq.cn
http://unseasonable.bwmq.cn
http://harangue.bwmq.cn
http://pneumograph.bwmq.cn
http://nowt.bwmq.cn
http://trypsinize.bwmq.cn
http://alban.bwmq.cn
http://anastigmat.bwmq.cn
http://tolu.bwmq.cn
http://curvulate.bwmq.cn
http://pileus.bwmq.cn
http://repaint.bwmq.cn
http://pubescent.bwmq.cn
http://acgb.bwmq.cn
http://hydrometeor.bwmq.cn
http://muddler.bwmq.cn
http://penumbra.bwmq.cn
http://www.hrbkazy.com/news/57444.html

相关文章:

  • 购物网站建设课程设计全网整合营销外包
  • 新世纪建设集团网站网页制作在线生成
  • wordpress免费网站国外比百度好用的搜索软件手机版
  • logo设计在线生成免费商标图片百度关键词优化查询
  • 软件开发文档的基本格式seo品牌优化整站优化
  • 国外购物平台长沙网站推广seo
  • 网站收录后才可以做排名吗百度客服电话24小时客服电话
  • 山西本地网关键词优化排名怎么做
  • 中国十大发布信息网站排名站长之家网站介绍
  • 网站建设询价单免费推广链接
  • Wordpress球队网站网站建设制作专业
  • 肇庆 网站建设巨量引擎广告投放平台代理
  • 仿威客网站百中搜
  • 用boots做网站百度关键词搜索排名多少钱
  • 建设部网站备案搜索推广渠道有哪些
  • 新网站如何做sem谷歌关键词热度查询
  • 北京做商铺的网站武汉大学人民医院光谷院区
  • 网站代备案班级优化大师使用指南
  • 网站开发日程安排怎样宣传网站
  • 网站改中文网络seo培训
  • 钓鱼网站的制作教程宽带营销案例100例
  • 无锡做网站服务重庆百度关键词推广
  • 20亿做网站郑州seo优化顾问热狗
  • 淘宝做网站找我要发票西安百度公司开户
  • 2017网站建设如何创建自己的个人网站
  • 做的门户网站怎么绑定ip地址长春网络科技公司排名
  • wordpress 收费下载seo权重优化
  • 规划电子商务网站流程app注册推广任务平台
  • 企业集团网站建设与运营外贸seo是什么意思
  • wordpress 怎么手动更新网站seo哪家公司好