网站程序开发公司,wordpress做网站教程,wordpress 友情连接插件,做学校网站会下线吗DOM型XSS从效果上来说也属于反射型XSS,由于形成的原因比较特殊所以进行单独划分。在网站页面中有许多页面的元素#xff0c;当页面到达浏览器时浏览器会为页面创建一个顶级的Document object 文档对象#xff0c;接着生成各个子文档对象#xff0c;每个页面元素对应一个文档…DOM型XSS从效果上来说也属于反射型XSS,由于形成的原因比较特殊所以进行单独划分。在网站页面中有许多页面的元素当页面到达浏览器时浏览器会为页面创建一个顶级的Document object 文档对象接着生成各个子文档对象每个页面元素对应一个文档对象每个文档对象包含属性、方法和事件。可以通过 JS 脚本对文档对象进行编辑从而修改页面的元素。也就是说客户端的脚本程序可以通过 DOM 来动态修改页面内容从客户端获取 DOM 中的数据并在本地执行。当应用程序的客户端代码将不受信的参数直接用于动态更新页面的 DOM 节点应用程序将易于受到基于DOM 的XSS攻击。
对于预防基于DOM的XSS的情况示例给出了不规范用法(javascript 语言)示例。
示例script)function test(){var str document.getElementByld(text).value;document.getElementByld(test).innerHTML(a hrefstr)testLink(/a);/script)div idtest/divinput typetextidtext value/input typebutton valuewrite onclicktest()/
上面的JavaScript 代码片段可从元素 input 中读取 text信息并将其显示给用户。
在这里write按钮的onclick 事件调用了 test()方法而该函数直接引用用户输入的值修改页面 的 DOM 节点当用户输入οnclickalert(/xss/)//,应用程序将受到基于DOM 的 XSS 攻击。
为了避免基于Dom 的 XSS 攻击建议采用以下方式进行防御
a) 与预防反射型XSS 相同对用户的输入进行合理验证(如年龄只能是数字),对特殊字符(如 く、〉、、以及script〉、javascript 等)进行过滤。
b) 与预防反射型 XSS 相同根据数据将要置于HTML上下文中的不同位置(HTML 标签、HTML 属性、JavaScript脚本、CSS、URL), 对所有不可信数据进行恰当的输出编码。
c) 与预防反射型 XSS 相同设置 HttpOnly 属性。