你不可不知的WEB安全知识(第一部分:HTTPS, TLS, SSL, CORS, CSP)


  原文地址:https://dev.to/ahmedatefae/web-security-knowledge-you-must-understand-it-part-i-https-tls-ssl-cors-csp-298l


什么是Web安全?

网络对每个用户都不是绝对安全的,每天我们都会听到网站因为拒绝服务攻击而变得不可用,或者页面被伪造。

系列文章对于理解web安全基础知识很有帮助。

系列文章总结了最常见的攻击,并给出了了对应的应对策略。


不同类型的Web安全

  • HTTPS
  • TLS
  • SSL
  • CORS
  • CSP
  • OWASP (安全风险) >> 我将在本系列的第二部分中讲解它
  • 哈希算法 >> 我会在本系列的第二部分中讲解它
    • MD5
    • SHA
    • scrypt
    • bcrypt

在这里插入图片描述

HTTPS

它是HTTP的安全版本,该协议的全称是Hypertext transfer protocol secure,它主要用于在web浏览器和网站之间发送数据。

其他人不能访问数据,因为它使用TSL协议加密通信,我将在下一个主题中解释它。


HTTPS的工作原理

它使用称为传输层安全(TLS)的加密通信协议,前身称为安全套接字层(SSL)。

此加密使用两个密钥,一个称为公钥,另一个称为私钥。

  • 1、公钥:在浏览器和网站之间共享。
  • 2、私钥:此密钥用于解密由公钥加密的信息,并且不会在服务器之外共享。

在这里插入图片描述


TLS

它是目前使用最多的协议,旨在促进互联网上通信的隐私、数据安全,TLS的使用案例是加密应用程序与服务器之间的通信、电子邮件、消息传递语音(VoIP)。

TLS的工作原理

任何要使用TSL的应用程序或网站,必须将TLS证书(也称为“ SSL证书”)安装到基本服务器上 。

它包含证书持有者、私钥和公钥的非常重要的信息,用于解密和加密通信。

此过程称为TLS握手🤝,步骤:

  • 确定会话期间将使用的TLS版本。
  • 通过使用TLS证书验证服务器的身份。
  • 握手过程结束后,生成会话密钥供会话期间使用。

为此,该主题需要进一步的解释,我将写一篇文章,并在此处添加一个链接。

在这里插入图片描述


SSL

安全套接字层(SSL)是一种基于加密的Internet安全协议,它是Netscape公司于1995年为确保Internet连接的完整性和私密性而创建的,如今已将其命名为TLS。

SSL的工作原理

就像基于握手TLS概念的TLS版本。

TLS和SSL有什么区别

SSL是TSL的旧版本,在国际互联网工程任务组(IETF)继Netscape之后负责SSL的发展,其名称已更改,如今一些开发人员使用SSL和TLS来指代同一事物。

注意自1996年以来,SSL没有任何新更新,这使它非常容易受到黑客攻击,并且所有现代浏览器不再支持它,它们仅支持TLS。

在这里插入图片描述


CORS

跨域资源共享(CORS)是一种机制,它使用HTTP报头来指定哪些外源可以访问本地资源,以及如何访问它,这意味着我们可以为允许的跨域访问我们的资源列出一个白名单。


CORS的工作原理

  • 1、当站点发出获取请求以从外部服务器获取资源时,浏览器将添加一个标头,其中包含标有示例Origin的源:http://www.example.com
  • 2、服务器接收预检请求,并在白名单中搜索有关给定来源的Access-Control-Allow-Origins,然后发送给浏览器选项调用,然后浏览器将确定实际请求是否可以安全发送,例如 Access-Control-Allow-Origin:http://www.example.com 或此标头Access-Control-Allow-Origin:* 将允许任何请求获取资源。
  • 3、如果服务器指定方法,则它将请求方法与示例 比较 Access-Control-Allow-Methods: PUT, DELETE.

在这里插入图片描述


CSP

内容安全策略是一个更高的安全层,可帮助检测和缓解不同类型的恶意攻击,例如(跨站脚本(XSS),数据注入攻击,点击劫持,等等……)。

  • 跨站脚本攻击(XSS):它是一个漏洞,允许黑客网站中注入恶意代码,并且用于使客户端执行该代码以获取敏感数据(例如Cookie,会话信息和特定于站点的信息),这是因为Web应用未使用足够的验证或编码,用户的浏览器无法检测到恶意脚本不可信。

  • 注入攻击:是一种注入到网站中的恶意代码,该代码从数据库中获取所有信息给攻击者,而其中的第一类是SQL注入。

  • 点击劫持:也被称为 “UI覆盖攻击” ,是指攻击者诱使用户在单击顶层时,实际是点击了透明或不透明的按钮,链接到另外的页面。

CSP原理

它使用了指令概念,每个指令都必须指定可以从何处加载资源,从而防止浏览器从任何其他位置加载数据。

最常用的指令

  • default-src:默认的加载策略(JavaScript,图像,CSS,AJAX请求,ETC ...)示例: default-src ‘self’ cdn.example.com;
  • img-src: 定义图片来源,示例:img-src ‘self’ img.example.com;
  • style-src: 定义CSS文件来源,示例:style-src ‘self’ css.example.com;
  • script-src : 定义JavaScript 文件来源 ,示例:script-src ‘self’ js.example.com;
  • connect-src: 为XMLHttpRequest(AJAX),WebSockets或EventSource定义合法的目标。如果它与主机建立了任何不允许连接,浏览器将响应400错误,示例:connect-src ‘self’;
  • 多标签指令定义: default-src ‘none’; script-src ‘self’; connect-src ‘self’; img-src ‘self’; style-src ‘self’;

在这里插入图片描述


总结

我希望我已经充分说明这个主题的重要性,并且向你解释了在这一广泛领域中进步和获得知识的第一步,并且我将在本系列中定期添加有关此主题的任何新信息,以便本系列的所有部分保持同步。

别忘了阅读接下来关于这个主题的文章。

posted @ 2020-09-30 18:02  三分恶  阅读(502)  评论(0编辑  收藏  举报