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. 预防的方式:

  • 输入过滤:设置字符黑名单,黑名单中的字符不会进行解析或存储。

  • 输出转码:将特殊字符进行转码输出。例如将 "<" 转成 "&lt" 。


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)识别与预防的主要内容,如果未能解决你的问题,请参考以下文章

XSS分析及预防

XSS跨站脚本攻击剖析与防御的作品目录

独家分享:跨站脚本攻击XSS详解

独家分享:跨站脚本攻击XSS详解

独家分享:跨站脚本攻击XSS详解

独家分享:跨站脚本攻击XSS详解