web安全机制

作者: IrisLong | 来源:发表于2018-04-07 20:31 被阅读193次

    一、HTTP & HTTPS
    首先,数据传输是否安全体现为:
    1、我发的数据不该看的人看不懂
    2、我发的数据不该看的人不能伪造或修改(修改后接收方能察觉)
    3、我发的数据,过期之后不该看的人不能偷偷拿过来继续用
    其次,我们来分析HTTP不安全的原因,以及HTTPS安全的原因:
    HTTP,全称Hyper Text Transfer Protocol超文本传输协议(不安全的协议)
    原因:一个请求到达最终服务器,中间会经过很多节点(如:路由器、代理服务器、网关等),任何请求都可能被途径的众多节点转发,但 http 是明文的,所以会导致请求被途径的节点窃听或嗅探等。
    HTTPS,全称Hyper Text Transfer Protocol over Secure Layer以安全为目标的HTTP通道(安全的协议)
    原因:通过 非对称加密 + 对称加密 + CA认证 这三个技术混合在一起,使得 https 协议安全。
    HTTPS是如何保证安全的?

    二、XSS攻击
    XSS又叫CSS(Cross-SiteScripting),跨站脚本攻击。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
    简而言之,通过客户端脚本语言(最常见如:JavaScript)
    在一个论坛发帖中发布一段恶意的JavaScript代码就是脚本注入,如果这个代码内容有请求外部服务器,那么就叫做XSS!

    三、CSRF攻击
    CSRF(Cross-site request forgery),跨站请求伪造。是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方法基本相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。
    简而言之,就是冒充用户发起请求(在用户不知情的情况下),完成一些违背用户意愿的请求(如恶意发帖,删帖,改密码,发邮件等)。
    一个小故事弄懂CSRF

    四、如何防护XSS&CSRF攻击?
    中心思想:一切的一切外部来源数据,都要我们服务端代码的过滤,才能让他展示到页面上,也就是说,一切外部数据都是非法的,一定要做好过滤。
    1、尽量使用innerText(IE)和textContent(Firefox),也就是jQuery的text()来输出文本内容
    2、必须要用innerHTML等等函数,则需要做类似php的htmlspecialchars的过滤
    3、尽量不要使用 eval
    4、在输出html时,加上Content Security Policy的Http Header
    (作用:可以防止页面被XSS攻击时,嵌入第三方的脚本文件等)
    (缺陷:IE或低版本的浏览器可能不支持)
    5、在设置Cookie时,加上HttpOnly参数
    (作用:可以防止页面被XSS攻击时,Cookie信息被盗取,可兼容至IE6)
    (缺陷:网站本身的JS代码也无法操作Cookie,而且作用有限,只能保证Cookie的安全)
    6、在开发API时,检验请求的Referer参数
    (作用:可以在一定程度上防止CSRF攻击)
    (缺陷:IE或低版本的浏览器中,Referer参数可以被伪造)

    相关文章

      网友评论

        本文标题:web安全机制

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