美文网首页
XSS和CSRF

XSS和CSRF

作者: TheoLin | 来源:发表于2017-06-15 21:18 被阅读0次

    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)

    相关文章

      网友评论

          本文标题:XSS和CSRF

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