Force.com中跨站脚本(XSS)识别与预防
Posted Salesforce中文知识库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Force.com中跨站脚本(XSS)识别与预防相关的知识,希望对你有一定的参考价值。
跨站脚本攻击(Cross-site Scripting),缩写CSS 或 XSS,指的是恶意攻击者往Web页面里插入恶意html代码。XSS属于被动式的攻击,因其被动且不好利用,所以许多人常忽略其危害性。
1. XSS攻击的类型:
存储行XSS攻击:指恶意代码注入后并存储在服务器端(通常存在数据库中),然后每次返回恶意结果给客户。
反射性XSS 攻击:指恶意代码发送到服务器端,并立刻将含有恶意结果的页面返回给用户。恶意代码不会存储在服务器端。
基于DOM的XSS攻击:DOM-based XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,通过url传入参数去控制触发的。该种类型的攻击不会发送到服务器端。
2. 预防的方式:
输入过滤:设置字符黑名单,黑名单中的字符不会进行解析或存储。
输出转码:将特殊字符进行转码输出。例如将 "<" 转成 "<" 。
3. VisualForce 页面中的XSS攻击预防:
如果变量会被javascript 解析器处理,则用JSENCODE() 方法处理变量。
<script>
var x = '{!JSENCODE({$CurrentPage.parameters.uerInput)}';
</script>
如果变量被HTML解析器处理,则用HTMLENCODE() 方法处理变量。
<apex:outputText escape="false" value="<i>Hello {!HTMLENCODE(Account.Name)}</i>" />
如果变量即用于Javascript中,同时也用于 HTML解析器,则用JSINHTMLENCODE()方法处理变量。
<div onclick="console.log('{!JSINHTMLENCODE(Account.Name)}')"> Click me! </div>
以上是关于Force.com中跨站脚本(XSS)识别与预防的主要内容,如果未能解决你的问题,请参考以下文章