原型链劫持检测_第1页
原型链劫持检测_第2页
原型链劫持检测_第3页
原型链劫持检测_第4页
原型链劫持检测_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/1原型链劫持检测第一部分原型链劫持原理与危害 2第二部分检测原型链劫持的常规方法 5第三部分异常继承关系的识别 8第四部分异常原型属性的检测 11第五部分污染原型链的方法论 13第六部分检测污染原型链的策略 17第七部分原型链劫持防御机制 19第八部分原型链劫持检测的未来趋势 21

第一部分原型链劫持原理与危害关键词关键要点原型链劫持

1.原型链劫持是一种攻击技术,其通过修改对象的原型链来操纵其行为。

2.对象的原型链是一条指向其父类的对象引用链,它定义了该对象可以访问的属性和方法。

3.攻击者可以劫持原型链,使其指向恶意原型,从而导致对象的属性和方法被篡改。

劫持方式

1.重写现有属性或方法:攻击者修改原型链中现有对象的属性或方法,使其执行恶意行为。

2.添加新的属性或方法:攻击者向原型链中添加新的恶意属性或方法,从而扩大对象的攻击面。

3.修改构造函数:攻击者通过修改构造函数,在创建新对象时植入恶意代码。

危害影响

1.数据泄露:原型链劫持可导致敏感数据(如密码、会话令牌)被盗取。

2.功能滥用:攻击者可以获得对系统功能的未经授权访问,执行恶意操作。

3.权限提升:攻击者可以利用原型链劫持来提升其权限级别,获得对受保护资源的访问权限。

检测方法

1.原型链完整性检查:验证对象的原型链是否指向预期父类,没有被恶意篡改。

2.属性和方法审查:检查对象的属性和方法是否符合预期行为,没有出现异常或恶意代码。

3.输入过滤:对用户输入进行严格过滤,防止恶意数据被注入并修改原型链。

防护措施

1.使用安全框架:采用经过安全审计并可防御原型链劫持的开发框架。

2.严格输入验证:对用户输入进行严格验证,防止恶意数据被注入。

3.及时更新:及时更新软件和依赖项,修补安全漏洞并防止攻击者利用已知漏洞。

技术趋势

1.静态分析:利用静态分析工具检测代码中的原型链劫持漏洞。

2.模糊测试:使用模糊测试工具发现难以检测的原型链劫持漏洞。

3.沙箱技术:隔离可疑代码并限制其对系统其他部分的影响,从而防止原型链劫持攻击。原型链劫持原理

原型链劫持是一种攻击技术,攻击者利用原型链中对象的属性继承机制,改变对象的原型对象,从而劫持对象的方法和属性。

以下是原型链劫持的原理:

*原型链的建立:JavaScript中的每个对象都具有一个内部属性[[Prototype]],该属性指向其原型对象。原型对象也可以拥有一个[[Prototype]]属性,依此类推,形成原型链。

*属性查找:当访问对象的属性时,JavaScript引擎会在原型链中逐级向上查找,直到找到该属性或到达原型链的顶端(Ototype对象)。

*原型劫持:攻击者可以通过修改对象的[[Prototype]]属性来改变查找属性的原型链。通过将指向恶意原型对象的指针插入原型链,攻击者可以劫持对象的行为。

原型链劫持的危害

原型链劫持攻击可能造成严重后果,包括:

*权限提升:攻击者可以劫持系统或第三方库对象的原型,获得未经授权的访问权限或执行特权操作。

*数据窃取:通过劫持XMLHttpRequest对象或类似对象的原型,攻击者可以窃取敏感数据,如凭据、会话令牌或PII。

*恶意代码执行:攻击者可以将恶意代码注入对象的原型中,从而在对象实例化后执行恶意代码。

*网站仿冒:原型链劫持攻击可以被用来欺骗浏览器中的网站地址栏,使受害者相信他们正在访问合法的网站。

*DoS攻击:攻击者可以通过反复劫持对象的原型,耗尽内存或导致应用程序崩溃。

具体示例

以下示例演示了Prototype链劫持的危害:

```javascript

//原始对象

name:"Alice",

isAdmin:false

};

//创建恶意原型

isAdmin:true

};

//劫持原型的[[Prototype]]属性

Object.setPrototypeOf(user,maliciousPrototype);

//检查用户是否具有管理员权限

//用户现在具有管理员权限,即使原始对象中没有设置

console.log("用户拥有管理员权限");

}

```

在上面的示例中,攻击者通过劫持`user`对象的[[Prototype]]属性来修改其行为,使`user`对象错误地获得了管理员权限。

防御措施

可以使用以下措施来防御原型链劫持攻击:

*对象冻结:使用`Object.freeze()`方法冻结关键对象的原型和属性,防止它们被修改。

*原型验证:在访问敏感属性或执行特权操作之前,验证对象的原型是否指向预期的原型对象。

*限制属性设置:通过使用严格模式或ES6getter/setter,限制对关键对象的属性设置。

*沙盒化:在受限的环境(例如WebWorkers)中执行不可信的代码,以限制其影响。

*安全库:使用安全库,如Underscore或Lodash,它们提供了防护原型链劫持攻击的函数。第二部分检测原型链劫持的常规方法关键词关键要点异常值检测

1.监控与原型链行为不一致的异常值,例如访问未定义的原型链属性。

2.检测不符合预期行为模式的对象行为,例如突然获得新属性或方法。

3.利用机器学习算法建立基准模型,识别原型链劫持攻击的异常偏差。

上下文敏感分析

1.根据对象创建和使用时的上下文,分析原型链操作的合理性。

2.检测不符合对象预期上下文的原型链操作,例如在错误的范围内或时间点访问属性。

3.监控原型链操作与其他对象交互的一致性,识别恶意注入或修改。

TaintTracking

1.标记和跟踪用户输入或其他不信任来源的信息,以识别其在原型链中的流动。

2.检测被污染对象与原型链操作之间的关联,指示可能存在注入或劫持。

3.通过限制污染对象的原型链访问,缓解劫持风险并确保数据完整性。

沙箱环境

1.在受控的环境中执行代码,隔离原型链劫持攻击的潜在影响。

2.监控沙箱中对象的原型链操作,检测异常行为或未授权的修改。

3.使用沙箱环境测试和验证修复措施,确保其有效性。

访问控制

1.限制对关键原型链对象的访问,例如Ototype、Atotype等。

2.审计原型链修改操作,检测恶意代码注入或篡改。

3.实现基于角色的访问控制机制,根据用户权限授予对原型链的访问。

主动防御

1.采用免疫技术,通过在原型链中注入不可劫持的属性,阻止攻击者劫持。

2.使用原型链锁定策略,在对象创建时冻结其原型链,防止恶意修改。

3.探索前沿技术,例如原型链签名和验证机制,增强对原型链劫持攻击的抵抗力。检测原型链劫持的常规方法

1.对象完整性检测

*Object.getOwnPropertyDescriptors():检查对象的属性描述符,确保未被劫持。

*Object.keys():检查对象的可枚举属性列表,确保没有意外的属性。

*Object.getPrototypeOf():检查对象的原型链,确保未被劫持。

2.值类型比较

*typeof:检查值的类型,确保未被劫持。

*Object.is():比较两个值,确保相等性未被破坏。

3.隐式类型转换检测

*Ototype.toString():检查对象的隐式类型转换字符串,确保未被劫持。

*hasOwnProperty:检查对象的属性是否存在,确保原型链未被劫持。

4.沙箱环境

*创建一个限制访问全局对象的沙箱环境。

*在沙箱中运行代码,观察是否存在原型链劫持。

5.异常处理

*尝试访问不存在的属性或方法。

*捕获错误,检查是否由原型链劫持触发。

6.数据流分析

*使用数据流分析工具(例如TaintFlow)跟踪变量和对象之间的关系。

*识别数据流异常,例如从不可信来源更改敏感对象。

7.静态代码分析

*使用静态代码分析工具(例如ESLint)扫描代码,检测潜在的原型链劫持漏洞。

*查找对`Ototype`的修改或对不可信来源对象的赋值操作。

8.Web浏览器特定的防御

*Object.freeze():使用`Object.freeze()`冻结关键对象,防止原型链修改。

*ContentSecurityPolicy(CSP):使用CSP限制脚本对全局对象的访问。

*Same-OriginPolicy:限制不同域的脚本对全局对象的访问。

9.自定义防御

*自定义原型链验证:实现自定义函数来验证对象的原型链完整性。

*代理对象:使用代理对象拦截对对象的访问,执行额外的安全性检查。

*实时监控:持续监控对象的行为,检测原型链劫持迹象。第三部分异常继承关系的识别关键词关键要点【异常继承关系的识别】

1.原型でない継承関係の検出:原型でないスーパークラスからサブクラスが継承するインスタンスプロパティを特定。通常、このような継承は不正な操作を示唆する。

2.プロパティ間の論理的依存関係の分析:プロパティ間の異なる値の関連性を分析。関係のないプロパティ間の関連付けは、原型チェーンの操作を疑わせる。

3.ライブラリモジュールの依存関係の検討:サードパーティライブラリのモジュールをチェック。これらのモジュールに継承チェーンへの操作が組み込まれている可能性がある。

【継承チェーン内の無関係なオブジェクトの特定】

异常继承关系的识别

原型链劫持攻击中,攻击者可能会尝试修改或替换对象的原型,从而导致意外的继承关系。为了检测此类异常,可以使用以下技术:

1.检查对象原型的规范性

对于大多数对象,它们的原型应该遵循一个预定义的规范。例如,内置JavaScript对象的原型应该是`Ototype`,而数组的原型应该是`Atotype`。任何偏离这些预定义原型的行为都可能是劫持的迹象。

2.比较对象的原型链

对于具有复杂继承关系的对象,可以比较它们的原型链以识别异常。原型链是对象到其根原型(通常为`Ototype`)的连续链。异常的继承关系可能表现为原型链中丢失或意外连接的环节。

3.检查原型属性的访问权限

攻击者可能会通过修改对象的原型来添加或修改属性。通过检查原型属性的访问权限,可以识别异常。例如,如果一个不可枚举的原型属性突然变得可枚举,这可能是劫持的迹象。

4.监控对象行为的更改

原型链劫持攻击可能会导致对象行为发生意外的变化。例如,如果一个函数突然开始以不同的方式执行,或者一个对象不再响应其预期的方法,这可能是劫持的迹象。

5.使用原型感知工具

原型感知工具,例如V8Inspector或ChromeDevTools,可以提供有关对象原型的深入信息。这些工具可以帮助识别异常的继承关系和原型修改。

异常继承关系的示例

以下是一些异常继承关系的示例:

*对象继承自非预期原型:例如,一个`Date`对象继承自`Atotype`。

*多重继承:例如,一个对象继承自两个或多个不同的原型。

*循环继承:例如,一个对象继承自自身或通过其他对象形成循环。

*原型修改:例如,修改`Ototype`以影响所有对象的行为。

检测异常继承关系的重要性

检测异常继承关系至关重要,因为它可以指示原型链劫持攻击。通过识别和修复这些异常,可以防止攻击者访问或修改敏感数据,并维持应用程序的安全性。

结论

原型链劫持攻击是一种严重的安全威胁。通过识别异常的继承关系,可以有效检测此类攻击。利用上述技术,开发人员可以保护应用程序免受此类攻击,并确保应用程序的安全性和数据的完整性。第四部分异常原型属性的检测异常原型属性的检测

简介

原型链劫持攻击利用原型链的机制,恶意修改对象的原型对象,从而影响到对象的行为。异常原型属性的检测是检测原型链劫持攻击的关键技术之一。

检测原理

异常原型属性检测的基本原理是:通过检查对象的原型对象的属性列表,识别是否存在异常属性或修改过的属性。如果检测到异常属性,则表示可能存在原型链劫持攻击。

检测方法

常用的异常原型属性检测方法包括:

*黑名单匹配:维护一个已知恶意原型属性的黑名单,检查对象的原型对象的属性列表是否包含这些恶意属性。

*白名单匹配:维护一个合法原型属性的白名单,检查对象的原型对象的属性列表是否仅包含这些合法属性。

*属性类型检查:检查对象的原型对象的属性是否具有预期的类型,例如函数、对象或字符串。

*原型链遍历:遍历对象的原型链,检查每个原型对象上的属性是否异常。

检测工具

*Securify:一款用于检测和预防原型链劫持攻击的开源工具,提供多种异常原型属性检测功能。

*PrototypePollutionScanner:一款用于扫描JavaScript应用程序中潜在原型链污染的工具。

*ProtoTest:一款用于检测JavaScript应用程序中原型链劫持和污染的工具。

具体检测步骤

以下是异常原型属性检测的具体步骤:

1.获取对象的原型对象:通过`Object.getPrototypeOf()`或`__proto__`属性获取对象的原型对象。

2.检查属性列表:获取原型对象的属性列表,并进行以下检查:

*是否存在异常属性:与黑名单进行匹配,识别是否存在恶意属性。

*是否存在修改过的属性:与白名单进行匹配,识别是否存在预期的属性但属性类型或值已被修改。

*是否存在异常类型:检查属性类型是否符合预期,例如函数、对象或字符串。

3.遍历原型链:对对象的原型链进行递归遍历,重复执行步骤1-2,直到到达最终的原型对象。

4.报告结果:如果检测到异常属性,则报告潜在的原型链劫持攻击。

检测局限性

异常原型属性检测虽然能够有效识别原型链劫持攻击,但存在一些局限性:

*隐蔽攻击:攻击者可以利用隐蔽技术绕过检测,例如使用匿名函数或动态属性添加。

*高消耗:检测过程可能消耗大量计算资源,特别是对于大型应用程序。

*误报:检测算法可能产生误报,例如当合法代码使用异常原型属性时。

缓解措施

为了缓解原型链劫持攻击,除了检测之外,还应采取以下缓解措施:

*对象冻结:使用`Object.freeze()`或`Object.seal()`方法冻结对象,防止修改其原型对象。

*原型链限制:限制对象的原型链深度,防止攻击者通过长原型链进行劫持。

*安全沙箱:在受限环境中运行代码,阻止攻击者访问系统原型对象。第五部分污染原型链的方法论关键词关键要点反射属性污染

1.利用Object.getPrototypeOf()、Object.setPrototypeOf()或Reflect.getPrototypeOf()、Reflect.setPrototypeOf()函数修改对象的原型链。

2.通过直接访问原型链上的属性,修改或覆盖内置或第三方对象的属性。

3.以隐蔽的方式篡改对象的属性和方法,难以被检测到。

构造函数污染

1.在构造函数中修改原型链,将恶意代码注入到目标对象的原型链中。

2.当创建新对象时,恶意代码会被随着原型链继承到所有新创建的对象中。

3.这种攻击手法不易被防御,因为原型链的修改发生在对象创建之前。

原型扩展污染

1.将恶意属性或方法扩展到内置或第三方对象的原型上。

2.当使用这些对象时,恶意代码会被隐式调用,带来安全隐患。

3.与构造函数污染类似,这种攻击手法也难以检测和防御。

原型覆盖污染

1.创建与内置或第三方对象具有相同名称的自定义对象,并将其原型链覆盖到目标对象的原型链上。

2.恶意对象将拥有目标对象的原型,并可以修改或替换其属性和方法。

3.这种攻击手法通常发生在对象创建后,因此可以通过使用对象冻结或深拷贝来防御。

原型链接污染

1.将恶意对象的原型链接到目标对象的原型链上。

2.恶意对象可以访问目标对象的原型及其上的属性和方法。

3.这种攻击手法可以用来实现跨站点脚本(XSS)攻击或其他恶意行为。

隐式原型污染

1.利用JavaScript自动原型链机制,通过创建未指定原型的对象来隐式创建一个新的原型。

2.将恶意代码注入到该隐式原型中,并在稍后使用其他对象继承该原型链时触发恶意行为。

3.这种攻击手法难以检测和防御,因为隐式原型在代码中不容易识别。污染原型链的方法论

原型链污染是一种攻击技术,它涉及修改对象的原型链,从而允许攻击者控制对象的属性和行为。这种攻击可以导致各种安全问题,例如数据泄露、权限提升和恶意代码执行。

污染原型链的类型

原型链污染有两种主要类型:

*内置对象的污染:这种类型的污染涉及修改内置对象的原型链,例如`String`、`Array`或`Object`。这种方法通常更难检测,因为它可能不会引起明显的副作用。

*自定义对象的污染:这种类型的污染涉及修改自定义对象的原型链,例如由开发人员创建的类或函数。这种方法更容易检测,因为它往往会导致应用程序行为中的明显变化。

污染原型链的方法

有几种方法可以污染原型链:

*直接修改:这涉及使用`Object.setPrototypeOf()`或`Ototype.__proto__`直接修改对象的原型链。

*污染构造函数:这涉及修改构造函数的`prototype`属性,从而影响所有由该构造函数创建的对象。

*中间代理:这涉及创建代理对象,其`__proto__`属性指向目标对象的原型链。

*数组污染:这涉及在对象数组中创建循环引用,从而污染数组对象的原型链。

污染原型链的检测

检测原型链污染至关重要,可以防止攻击者利用此漏洞。有几种方法可以检测污染:

*类型检查:检查对象的`[[Class]]`或`constructor`属性,以验证它是否具有预期的值。

*原型链验证:检查对象的`__proto__`属性,以验证它指向预期的原型链。

*深度遍历:递归遍历对象的原型链,以检测任何循环引用或意外修改。

*代理检测:检查对象是否实现`Proxy`接口,这表明它可能是一个污染的代理。

预防原型链污染

可以采取以下预防措施来防止原型链污染:

*限制对象创建:限制不可信用户创建或修改对象的能力。

*使用安全库:使用经过审核的库,这些库可以提供对原型链攻击的保护。

*实施安全实践:遵守安全最佳实践,例如输入验证和数据净化。

*监控异常行为:监控应用程序中的异常行为,例如意外的对象属性或方法。

缓解措施

如果检测到原型链污染,应采取以下缓解措施:

*终止受感染进程:终止受污染进程或对象,以防止进一步损害。

*隔离受感染系统:将受感染系统与其他系统隔离,以防止污染蔓延。

*清除污染:使用安全方法(例如重新实例化对象)清除污染并恢复系统完整性。

*更新软件:安装包含原型链保护补丁的最新软件更新。

原型链污染是一个严重的安全漏洞,可能对应用程序和系统造成严重后果。通过理解污染方法、检测技术和预防措施,组织可以保护其系统免受这种攻击。第六部分检测污染原型链的策略关键词关键要点主题名称:污染检测

1.监测原型链中是否存在异常属性或方法,如Ototype.toString被重写。

2.识别异常的原型链继承关系,例如Ftotype继承自Ototype,但如果该关系被改变,则可能是污染的迹象。

3.检查原型链的深度和复杂度,不寻常的深度或复杂度表明可能存在污染。

主题名称:数据验证

检测污染原型链的策略

1.监测原型链修改

*定期检查原型链中对象的属性和方法是否被修改。

*使用异常检测算法识别原型链中异常的变化,如属性或方法的意外添加或删除。

2.检查原型污染漏洞

*扫描代码以识别可能导致原型污染的漏洞,如未验证的输入或对象扩展操作。

*使用静态分析工具检测可能允许写入原型链的代码路径。

3.利用污点跟踪

*使用污点跟踪技术跟踪污染原型链的对象。

*识别从污染对象传播到其他对象的污点,以便检测原型链劫持。

4.审计对象属性

*检查对象的属性是否被修改或被注入恶意内容。

*使用模式匹配算法识别在对象属性中出现的可疑模式或异常值。

5.限制对象可修改性

*将对象的属性和方法设置为只读,以防止对原型链的修改。

*使用访问控制机制限制对象属性的修改,只允许授权用户进行修改。

6.使用隔离沙箱

*在隔离沙箱中执行可能有风险的代码,以防止原型链劫持影响其他代码部分。

*限制沙箱中对系统资源的访问,以最大限度地减少原型链劫持的影响。

7.使用安全库或框架

*使用经过安全审计的库或框架,这些库或框架可以帮助防止原型链劫持漏洞。

*确保这些库或框架始终是最新的,以解决任何已知的漏洞。

8.对原型链进行白名单

*仅允许对原型链进行预定义的修改。

*使用访问控制机制限制对原型链的修改,只允许授权用户进行修改。

9.实时监控

*部署实时监控系统以监测原型链的变更。

*检测任何异常的变更并立即采取补救措施,以防止原型链劫持。

10.教育和培训

*为开发人员和安全专业人员提供关于原型链劫持及其缓解措施的教育和培训。

*提高对这种威胁的认识,并确保所有相关方了解其风险和预防措施。第七部分原型链劫持防御机制关键词关键要点【原型链毒化检测】

1.采用安全沙箱环境,限制攻击者对原型链的恶意修改。

2.使用严格的数据验证机制,确保输入对象和属性符合预期的格式和范围。

3.定期扫描和监控原型链,查找异常或可疑变化。

【原型扩展强制】

原型链劫持防御机制

一、防御机制概述

原型链劫持防御机制旨在防止攻击者通过修改对象的原型链来操作对象的行为,从而避免恶意代码执行或数据泄露等安全事件。

二、防御机制原理

原型链劫持防御机制主要通过以下方式实现:

1.对象冻结

一旦对象被创建,其原型链将被冻结,无法被修改。这样,攻击者就无法通过修改原型链来劫持对象的行为。

2.安全属性设置

在对象的构造函数中,可以设置对象属性的访问权限,如只读或只写。这可以防止攻击者修改对象的属性,进而修改原型链。

3.限制原型链的修改

可以限制脚本引擎对原型链的修改操作。例如,在V8引擎中,可以通过设置`Object.preventExtensions()`方法来禁止修改对象原型链。

三、防御机制应用场景

原型链劫持防御机制适用于以下场景:

1.Web应用开发

保护Web应用免受原型链劫持攻击,确保用户数据安全和应用程序稳定性。

2.JavaScript框架开发

为JavaScript框架提供防御机制,防止恶意代码通过原型链劫持攻击框架对象。

3.移动应用开发

保护移动应用免受原型链劫持攻击,保障用户隐私和数据安全。

四、防御机制局限性

原型链劫持防御机制虽然有效,但仍存在一些局限性:

1.冻结对象可能会影响性能

冻结对象会阻止原型链的修改,这也可能影响对象的性能,特别是对于经常修改属性的对象。

2.无法完全防止原型链劫持

在某些情况下,攻击者可能绕过原型链劫持防御机制,例如利用`Object.getPrototypeOf()`方法获取对象的原型链。

3.需要综合防御

原型链劫持防御机制只是安全防御体系的一部分,需要与其他防御机制相结合才能有效防止安全事件。

五、最佳实践

为了有效防御原型链劫持,建议遵循以下最佳实践:

1.冻结关键对象

冻结应用程序中关键对象,如DOM元素、内建对象等,以防止原型链被修改。

2.设置安全属性

为对象的属性设置安全的访问权限,以限制攻击者对对象的任意修改。

3.限制原型链的修改

通过脚本引擎的API或其他手段限制原型链的修改,防止攻击者利用原型链劫持进行攻击。

4.保持软件更新

及时更新应用程序和脚本引擎,以获取最新的安全补丁和防御机制。

5.使用安全库和框架

使用提供原型链劫持防御机制的安全库和框架,减少开发过程中的安全漏洞。第八部分原型链劫持检测的未来趋势关键词关键要点主题名称:人工智能与机器学习

1.应用深度学习算法分析原型链劫持行为模式,自动识别异常并预测攻击。

2.基于自然语言处理技术,对代码上下文进行语义分析,识别可能存在原型链劫持漏洞的代码块。

3.运用强化学习反馈,不断优化机器学习模型,提升原型链劫持检测的准确性和效率。

主题名称:区块链与分布式账本技术

原型链劫持检测的未来趋势

随着网络技术的发展,原型链劫持攻击变得日益普遍。为了应对这一威胁,原型链劫持检测技术也不断更新迭代。以下是原型链劫持检测的未来趋势:

1.利用机器学习和人工智能

机器学习和人工智能技术能够自动化检测原型链劫持攻击,提高检测准确性和效率。机器学习算法可以分析大量数据,识别攻击模式和异常行为。深度学习模型还可以从历史攻击数据中提取特征,建立更精准的检测模型。

2.基于浏览器的检测

浏览器扩展和插件可以嵌入浏览器中,实时监视和分析网页和脚本的执行。这些扩展可以检测可疑对象行为,如对象的意外属性访问和原型链污染,从而发现原型链劫持攻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论