XSS又叫CSS英文缩写为Cross Site Script
中文意思为跨站脚本攻击
具体内容指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,
嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的.

解决方案

第一。过滤

过滤 标签 等字符 ,但是这样 对用户是不公平的。

第二。用asii 码替换

如 <  >  ! 等

第三 。 用 element.innerText 显示用户数据

这样要写大量的 js

第四。 使用 <xmp>

<xmp>标签不解析内部的html元素,而且不执行内部的javascript脚本代码

但是要防止攻击代码在数据中间插入</xmp>从而绕过保护

第五。通过 frame 来防止 数据页面攻击 主页面

使用 document.domain 属性 来控制

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>测试iframe的单向访问</title>
    <style>
        body
        {
         font-size:12px;
        }
    </style>
</head>
<script language="javascript">

//frame1的document
var oDocument=null;

//响应frame1的onload事件
function frame1_onload()
{    
    //旧的domain
    var sDomainOld=document.domain;
    
    //降级domain
    document.domain="pimshell.com";
    
    //保存frame1的document
    oDocument=frame1.document;
    
    //恢复domain
    document.domain=sDomainOld;
    
    //准备就绪
    button1.disabled=false;
}

//改变IFrame的背景颜色
function changebackcolor()
{
    if(oDocument.body.style.backgroundColor=="")
        oDocument.body.style.backgroundColor="blue";
    else
        oDocument.body.style.backgroundColor="";
}

</script>
<body>
为了避免XSS跨站攻击,在大多数html编辑器的设计中,都是要将用户输入的HTML内容进行过滤。过滤代码繁琐暂且不说,关键是不能保证考虑到所有已知和未知的攻击类型。
<br />
如果我们能设计一个iframe的单向访问模型,就可以让用户输入的HTML内容在受控的环境中执行,也就不需要再进行过滤了。
<br />
举例来说,我们html编辑器所在的主页面为a,嵌入一个iframe为b。a可以访问b的内容,而b却不能访问a的内容。这样的话,b中的HTML内容即使包含攻击代码,也无法发挥作用了。
<br />
<br />
<table>
<tr>
<td width="300px;" valign="top">
    <iframe src="http://bb.pimshell.com/pimshell/test/b.htm" id="frame1" onload="frame1_onload();"></iframe>
    <br />
    <br />
    <button id="button1" onclick="changebackcolor();" disabled>--&gt; 改变IFrame的背景颜色</button>
</td>
<td valign="top">
    iframe中的代码:
    <br />
    <pre style="background-color:whitesmoke; border:dashed 1px black; padding:4px;">
        &lt;script language="javascript"&gt;

//domain
        document.domain="pimshell.com";

//访问主页面试试看
        function geta()
        {
            alert(parent.document.body.innerHTML);
        }

&lt;/script&gt;    
    </pre>
    <br />
    主页面中的代码:
    <br />
    <pre style="background-color:whitesmoke; border:dashed 1px black; padding:4px;">
        &lt;script language="javascript"&gt;

//frame1的document
            var oDocument=null;

//响应frame1的onload事件
            function frame1_onload()
            {    
                //旧的domain
                var sDomainOld=document.domain;
                
                //降级domain
                document.domain="pimshell.com";
                
                //保存frame1的document
                oDocument=frame1.document;
                
                //恢复domain
                document.domain=sDomainOld;
                
                //准备就绪
                button1.disabled=false;
            }

//改变IFrame的背景颜色
            function changebackcolor()
            {
                if(oDocument.body.style.backgroundColor=="")
                    oDocument.body.style.backgroundColor="blue";
                else
                    oDocument.body.style.backgroundColor="";
            }

&lt;/script&gt;
    </pre>
</td>
</tr></table>
</table>

</div>

</body>
</html>

防止 XSS 攻击 解决方案的更多相关文章

  1. XSS攻击&CSRF攻击 ----Django解决方案

    XSS攻击: XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执 ...

  2. 360[警告]跨站脚本攻击漏洞/java web利用Filter防止XSS/Spring MVC防止XSS攻击

    就以这张图片作为开篇和问题引入吧 <options>问题解决办法请参考上一篇 如何获取360站长邀请码,360网站安全站长邀请码 首先360能够提供一个这样平台去检测还是不错的.但是当体检 ...

  3. 来自内部的XSS攻击的防范

    来自内部的XSS攻击的防范 引入:前面我们分2篇文章分别探讨了来自外部的XSS攻击和来自内部的XSS攻击,现在我们来专门探讨如何防范来自内部的XSS攻击. 实践:其实从 http://www.2cto ...

  4. validateRequest="false"属性及xss攻击

    validateRequest="false"   指是否要IIS验证页面提交的非法字符,比如:>,<号等,当我们需要将一定格式得html代码获得,插入数据库时候,就要 ...

  5. XSS研究2-来自内部的XSS攻击的防范

    引入: 前面我们分2篇文章分别探讨了来自外部的XSS攻击和来自内部的XSS攻击,现在我们来专门探讨如何防范来自内部的XSS攻击.   实践:  http://www.cnblogs.com/crazy ...

  6. 游戏行业DDoS攻击解决方案

    行业综述 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游戏市场收入超过美国和日本,成为全球榜首. 游戏行业的快速发展.高额的攻击利润.日 ...

  7. .net core xss攻击防御

    XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意 ...

  8. xss攻击问题以及如何防范

    当用户提交评论的时候,比如如下评论内容 111 <scripy>alert(111);</scripy> 这样当现实评论的时候会先弹出111弹框,再显示评论.这就是xss攻击. ...

  9. 阿里云:游戏行业DDoS攻击解决方案

    转自:http://www.gamelook.com.cn/2018/01/319420 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游 ...

随机推荐

  1. Delphi OleVariant 类型的用法

    因客户需求,对客户的指纹机与公司产品进行集成,需要对指纹机做接口的二次开发,郁闷的是产商只提供了VB和C的DEMO示例,没有Delphi的,公司没有VB,C的环境,不能打开这二种语言的示例,因为本公司 ...

  2. 解决:未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0

    开发环境:Microsoft Visual Studio 2013 MVC4.0 使用SignalR的过程中随着版本的升级,其它程序集也跟着升级,如Newtonsoft.Json,一般编译的时候,如果 ...

  3. aliyun 启用ECS iptables

    iptables -t nat -A POSTROUTING -s 0.0.0.0/24 -o eth0 -j MASQUERADEservice iptables saveecho 1 > / ...

  4. #include <iostream>

    1 static_assert 2 std::nothrow 3 std::ref() 4 std::string 1 static_assert 执行编译时断言检查 语法 static_assert ...

  5. 2013 多校联合 F Magic Ball Game (hdu 4605)

    http://acm.hdu.edu.cn/showproblem.php?pid=4605 Magic Ball Game Time Limit: 10000/5000 MS (Java/Other ...

  6. NPOI 辅助类

    using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using S ...

  7. ASP.NET导出EXCEl方法使用EXCEl对象

    导出功能必须使用  office中EXCEl对象,整个操作如同在操作EXCEl一样,建立EXCEl应用----建立工作簿---建立sheet表单页, 代码实现过程中,如果想对单元格实现一些操作,或者汇 ...

  8. Dearmweaver CS6 如何添加emmet 插件

     一.关于emmet插件 已经接触前端工具的小伙伴们早听说过这个插件的鼎鼎大名了吧,emmet可以说是前端工程师的利器,就连老牌dreamweaver 都可以支持,我们怎么好意思拒绝这个好东西呢? 有 ...

  9. CSS定位深入理解 完全掌握CSS定位 相对定位和绝对定位

    其实前面的标准流和浮动流都很理解,就是定位不太好理解,特别是相对定位和绝对定位,很多刚开始学的同学不好区分.因此这里,小强老师和大家一起分享CSS定位的学习. 通过我们前面的学习,我们网页布局方法: ...

  10. Truncate Delete 用法

    Truncate /Delete  Table 1.含义上都是删除表全部记录 2.Truncate 是属于数据定义语言,系统不会写每一笔记录操作事务日志,无法恢复记录数据的操作 Truncate Ta ...