三度网教程:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

常见跨站攻击的防御教程

时间:2018-01-01作者:未知 来源:三度网教程人气:70

 

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

 

以下是一个恶意js脚本的范例:

 

下面简单介绍一下Cross脚本的防御方法:

大体的思路很简单,一般XSS攻击都是程序没有过滤掉用户输入中的恶意js脚本,以致恶意的js脚本被解释执行。所以我们只需要将用户输入字符串进行检测,去掉标签,或者转义'<'字符。

PHP代码:

 

if($_SERVER['REQUEST_URI']) { 
    $temp = urldecode($_SERVER['REQUEST_URI']); 
    if(strexists($temp, '<') || strexists($temp, '"')) { 
        $_GET = shtmlspecialchars($_GET);//XSS 
    } 
} 
                                                
//取消HTML代码 
function shtmlspecialchars($string) { 
    if(is_array($string)) { 
        foreach($string as $key => $val) { 
            $string[$key] = shtmlspecialchars($val); 
        } 
    } else { 
        $string = preg_replace('/&amp;((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1', 
            str_replace(array('&', '"', '<', '>'), array('&amp;', '&quot;', '&lt;', '&gt;'), $string)); 
    } 
    return $string; 
}

当然也可以转义:
1、htmlspecialchars() 转义特别的字符为HTML实体
•'&' (ampersand) becomes '&amp;'

•'"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.

•''' (single quote) becomes '&#039;' only when ENT_QUOTES is set.

•'<' (less than) becomes '&lt;'

•'>' (greater than) becomes '&gt;'

2、htmlspecialchars_decode()将实体转成HTML代码,函数1的反函数
3、 htmlentities()这个是全部转换html实体,和htmlspecialchars()区别在于,这个函数是转义全部的字符,而htmlspecialchars()仅仅转义上面限定的5个特殊字符


jsp中同样有转义函数:

 

综论
XSS攻击作为Web业务的最大威胁之一,不仅危害Web业务本身,对访问Web业务的用户也会带来直接的影响,如何防范和阻止XSS攻击,保障Web站点的业务安全,是定位于业务威胁防御的入侵防御产品的本职工作。

关键词:跨站攻击,防御教程,常见跨站攻击的防御教程





Copyright © 2012-2018 三度网教程(http://www.3du8.cn) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版