XSS和CSRF

XSS篇:

XSS,(cross site scripting),跨站脚本注入,指攻击者利用一些技巧向页面注入脚本代码并让其执行,从而达成攻击效果。

XSS原理

攻击者利用页面输入和输出的功能,在输入时使用闭标签再加脚本代码等技巧,当服务器输出这些输入信息到页面时,就会插入并执行脚本代码。解决方法是可以在服务端对客户端的输入进行过滤或转义。注意:这里不一定只用script标签,还可以用img等其他标签,或者用onclick等事件方法达到执行脚本代码。简单例子如下:

//Web 请求如下所示:
GET http://www.somesite.com/page.asppageid=10&lang=en&title=Section%20Title
//在发出请求后,服务器返回的 HTML 内容包括:
<h1>Section Title</h1>
//攻击者可以通过摆脱 <h1> 标记来注入代码:
http://www.somesite.com/page.asp?pageid=10&lang=en&title=Section%20Title</h1><script>alert(‘XSS%20attack’)</script>
//最终这个请求的 HTML 输出将为:
<h1>Section Title</h1><script>alert(‘XSS attack’)</script>
XSS危害与防范

攻击者可以使用 XSS 漏洞搞恶作剧,窃取 Cookie,劫持帐户,执行 ActiveX,执行 Flash 内容,强迫您下载软件,官网挂钓鱼网站,或者是对硬盘和数据采取操作。防范的方法就是服务端对能被攻击的输入进行过滤或转义。

CSRF篇

CSRF,(Cross-site request forgery),跨站请求伪造,指通过伪装来自受信任用户的请求来进行对受信任的网站一些操作。

CSRF原理

攻击者一般通过XSS使用户在已经授权的网站中不知不觉发起某些请求,从而实现自己的目的。XSS是实现CSRF的有效方法,但不是唯一方法。常见的例子有:

//假如一论坛网站的发贴是通过 GET 请求访问,点击发贴之后 JS 把发贴内容拼接成目标 URL 并访问:
http://example.com/bbs/create_post.php?title=标题&content=内容
//那么,我只需要在论坛中发一帖,包含一链接:
http://example.com/bbs/create_post.php?title=我是脑残&content=哈哈
//只要有用户点击了这个链接,那么他们的帐户就会在不知情的情况下发布了这一帖子。
CSRF危害与防范

既然发贴的请求可以伪造,那么删帖、转帐、改密码、发邮件全都可以伪造。CSRF不能绝对的防范,因为他是通过伪造请求来实现的,而请求可以来自各自各样的方式。我们可以通过提高CSRF的攻击门槛进行适当的防范,做法有:重要的请求应该通过post方式进行(杜绝通过点击链接进行攻击)、服务端生成随机token,保存在页面隐藏域中,在发出请求的时候一并发出,服务端在验证其在session中的token,两者一致后才处理请求,处理请求后必须马上销毁token。(这种做法可以提高攻击难度)、防范XSS攻击(这样能有效防范CSRF)。

参考文献

  1. http://www.ruanyifeng.com/notes/2006/12/xss.html (阮一峰XSS)
  2. http://www.cnblogs.com/wangyuyu/p/3388180.html (XSS和CSRF)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CSRF(Cross-site request forgery,跨站请求伪造),是通过伪造请求,冒充用户在站内进行...
    07120665a058阅读 3,031评论 1 6
  • XSS XSS: Cross-Site Scripting 原理概述: 简单来说 正常用户 A 提交正常内容,显...
    DeeJay_Y阅读 288评论 0 0
  • xss(cross site script),跨站脚本攻击,简称本应该是css,但是为了避免和css层叠样式表冲突...
    Quilljou阅读 610评论 0 0
  • XSS是什么?它的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS。是一...
    圆心角阅读 527评论 2 0
  • http://www.91ri.org/tag/fuzz-bug 通常情况下,有三种方法被广泛用来防御CSRF攻击...
    jdyzm阅读 4,245评论 0 5