防止 XSS 攻击 解决方案

摘要:
标记不解析内部html元素,也不执行内部JavaScript脚本代码。但是,应防止攻击代码将插入数据以绕过第五个保护。使用框架防止数据页攻击。主页面使用文档。要控制的域属性˂!

1、

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 valign="top">
    <iframe src="http://t.zoukankan.com/http://bb.pimshell.com/pimshell/test/b.htm" onload="frame1_onload();"></iframe>
    <br />
    <br />
    <button onclick="changebackcolor();" disabled>--&gt; 改变IFrame的背景颜色</button>
</td>
<td valign="top">
    iframe中的代码:
    <br />
    <pre style=" 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=" 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 攻击 解决方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux中,查看某个进程打开的文件数?使用反射机制调用属性和私有成员与代理模式的介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【安全】CSRF、XSS攻击了解与防范

============================== 目录   一、了解CSRF攻击及防范   二、了解XSS攻击及防范 =============================== 一、了解CSRF攻击及防范 1、了解csrf   中文叫跨站请求伪造,指攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击...

XSS的高级利用部分总结 -蠕虫

XSS的高级利用部分总结 -蠕虫,HTTP-only,AJAX本地文件操作,镜象网页本帖最后由 racle 于 2009-5-30 09:19 编辑 XSS的高级利用总结 -蠕虫,HTTPONLY,AJAX本地文件操作,镜象网页By racle@tian6.com http://bbs.tian6.com/thread-12711-1-1.html转帖请保...

网页制作技巧:iframe自适应高度

转自:http://www.enet.com.cn/article/2012/0620/A20120620126237.shtml 通过Google搜索iframe 自适应高度,结果5W多条,搜索iframe 高度自适应,结果2W多条。 我翻了前面的几十条,刨去大量的转载,有那么三五篇是原创的。而这几篇原创里面,基本上只谈到如何自适应静的东西,就是没有考虑...

vue使用iframe嵌入html,js方法互调

前段时间 使用h5搞了个用cesium.js做的地图服务功能,后来想整合到vue项目,当然最简单的就是iframe直接拿来用了。但html和vue的方法交互就是成了问题,vue调用html种方法还好,尤其是html调用vue中的方法当初就没有解决,忙着项目上线直接搞了个setInterval不停轮询,哎不说他了;现在空点了来把问题解决了,俗话说得好闲时学来...

WebPack前端打包工具

​ Webpack是一款用户打包前端模块的工具,它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。主要是用来打包在浏览器端使用的javascript的。同时也能转换、捆绑、打包其他的静态资源,包括css、image、font file、template等 webpack的官网是 http://webpack.github....

Selenium-Switch--切换浏览器tab/iframe/alart

Switch 我们在UI自动化测试时,总会出现新建一个tab页面、弹出一个浏览器级别的弹框或者是出现一个iframe标签,这时我们用WebDriver提供的Api接口就无法处理这些情况了。需要用到Selenium单独提供的模块switch_to模块 引用路径 # 第一种方式可以通过直接导入SwitchTo模块来进行操作 from selenium.webd...