zoukankan      html  css  js  c++  java
  • Web安全相关

    1. HTTPS和HTTP
    区别:
    HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
    使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
    HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
    http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
    HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。

    HTTPS 默认工作在 TCP 协议443端口,它的工作流程一般如以下方式:

    1、TCP 三次同步握手
    2、客户端验证服务器数字证书
    3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
    4、SSL 安全加密隧道协商完成
    5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。

    http://www.runoob.com/w3cnote/http-vs-https.html

    2. https能不能防范中间人攻击?
    正常情况下浏览器与服务器在TLS链接下内容是加密的,第三方即使可以嗅探到所有的数据,也不能解密。
    但是中间人可以与你建立链接,然后中间人再与服务器建立链接,转发你们之间的内容。这时候中间人就获得了明文的信息。
    https://en.wikipedia.org/wiki/Man-in-the-middle_attack


    3. CSRF(Cross-site request forgery)
    中文名称:跨站请求伪造
    解释:攻击者盗用了你的身份,以你的名义发送恶意请求

    解决方案:

    Same-Site Cookies
    Strict/Lax模式
    Strict:浏览器在任何跨域请求中都不会携带 cookie
    Lax:Lax 模式下有一个例外,就是在顶级导航中使用一个安全的 HTTP 方法发送的请求可以携带 cookie

    1.检查Origin
    2.Anti-CSRF tokens
    当请求一个页面时,可以在返回的页面中嵌入一个随机的token。当真正的用户提交请求时,要求其同时提交该token(同源策略(SOP)会阻止attacker的页面读取该内容),这样就可以通过之前嵌入的那个随机 token 来校验。

    refs:https://juejin.im/post/58c669b6a22b9d0058b3c630


    4. MITM(Man in the middle)
    中间人攻击
    攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

    解决方案:
    公钥基础建设PKI,客户端验证服务器,服务器验证客户端
    更强力的相互认证
    延迟测试
    使用复杂加密哈希函数进行计算以造成数十秒的延迟;如果双方通常情况下都要花费20秒来计算,并且整个通讯花费了60秒计算才到达对方,这就能表明存在第三方中间人。
    https://www.zhihu.com/question/20744215

    XSS(Cross-Site Scripting)
    跨站脚本攻击
    代码注入。通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

    解决方案:
    转义HTML,过滤特殊字符
    使用HTTP头指定类型,Content Security Policy

    https://en.wikipedia.org/wiki/Cross-site_scripting
    https://tech.meituan.com/2018/09/27/fe-security.html

  • 相关阅读:
    CSS3笔记!
    Charles与Jmeter结合编写接口测试
    Charles测试点集锦
    pom文件报错关于maven-compiler-plugin:3.1
    Jmeter获取数据库值并作为参数请求(转载)
    mysql基础操作语言
    JMeter之Ramp-up Period(in seconds)说明
    Jmeter查看QPS和响应时间随着时间的变化曲线(转载)
    Charles篡改后台数据
    接口测试之——Charles抓包及常见问题解决(转载自https://www.jianshu.com/p/831c0114179f)
  • 原文地址:https://www.cnblogs.com/cnsec/p/13547552.html
Copyright © 2011-2022 走看看