深入浅出HTTP/HTTPS和网络安全:HTTP/HTTPS的工作原理和常见的网络安全问题,如XSS、CSRF、SQL注入等

HTTP和HTTPS

HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是浏览器和服务器之间传输信息的通信协议。两者的主要区别在于HTTPS使用了SSL/TLS协议进行了加密处理。

  • HTTP: HTTP只是一个纯文本信息传输协议,没有加密机制,数据都是未加密的,安全性较低。如果黑客截取了web浏览器和网站服务器之间的传输通信数据,就能直接获知其中的信息。

  • HTTPS: HTTPS是经由SSL安全套装层对网络连接进行加密处理来防止数据在传输过程中被窃取或篡改。安全性较高。

网络安全

网络中常见的几种安全问题:

  1. **XSS (Cross Site Scripting)**:XSS是一种常见的巧妙利用网站未做好用户输入过滤来盗取用户信息甚至进行恶意操作的攻击方式。因为有些网站并没有有效地过滤用户的输入,攻击者就可以输入一段脚本代码,其他用户在看见攻击者发布的内容时这段代码就会被执行,实现攻击的目的。

  2. **CSRF (Cross Site Request Forgery)**:CSRF攻击是攻击者利用用户的身份去执行某种操作,跟XSS不同,XSS是攻击数据接收对象,而CSRF是攻击数据请求的对象。

  3. SQL注入:SQL注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

如何防御

  • 防御XSS攻击:可以使用如下手段:

    • 对用户的输入进行过滤或者转码
    • 使用HTTP-only来禁止脚本访问cookie
    • 使用CSP(Content Security Policy)来禁止浏览器加载第三方的资源
  • 防御CSRF攻击:常见的手段是使用Token,即在用户请求某个需要安全防护的操作时,服务器会创建一个Token,附在用户的Session中,然后将这个Token发送给客户端,当客户端再次发送该操作请求时,必须携带这个服务器颁发的Token,服务器会验证这个Token的合法性。

  • 防御SQL注入:使用预编译的SQL查询和参数化的查询可以有效防御SQL注入。

更安全的HTTPS

HTTPS端到端的加密通过TLS/SSL实现。TLS协议的握手过程会使用公钥基础设施(PKI)通过对称加密生成一个会话密钥。这样,服务器和客户端之间的所有通信均由该会话密钥加密,为数据提供了保密性和完整性保障。

使用HTTPS的优势包括:

  1. 数据保密:所有通信内容都是加密的,网络中间人很难直接看到明文内容。
  2. 数据完整性:可以防止数据在传输过程中被改变。
  3. 服务器身份验证:通过查看SSL证书用户可以确认自己是与真正的服务器通信。

Cookie的安全性

Cookie 是网站用于保持用户会话的重要工具。然而,Cookie 也可能成为潜在的安全问题。设置 Cookie 的时候,应考虑以下几个安全性选项:

  • Secure:标记为 Secure 的 Cookie 只能通过被加密的安全连接 HTTPS 发送。
  • HttpOnly:标记为 HttpOnly 的 Cookie 不能被客户端 JavaScript 访问,这有助于缓解 XSS 攻击。

内容安全策略(CSP)

CSP 可以作为防范 XSS 攻击的重要工具。它的工作原理是,网站管理员定义哪些内容是可信的,浏览器则只会执行来源于可信列表的资源。例如,这可以用来阻止来自未经批准的网站的JavaScript执行,防止恶意外部脚本对网页进行篡改。

相关推荐
测试界吖吖1 小时前
HTTPS 之fiddler抓包--jmeter请求
自动化测试·软件测试·功能测试·jmeter·程序人生·https·fiddler
信徒_4 小时前
一个完整的 HTTP/HTTPS 请求流程
网络协议·http·https
virelin_Y.lin11 小时前
系统与网络安全------Windows系统安全(9)
windows·web安全·系统安全·iis
forestsea13 小时前
HTTP 黑科技
科技·网络协议·http
zhu128930355613 小时前
网络安全防护与挑战
网络·安全·web安全
网络安全天地14 小时前
使用 Flutter 制作地图应用
websocket·网络协议·tcp/ip·http·网络安全·https·udp
神经毒素15 小时前
WEB安全--文件上传漏洞--36C3 CTF includer bypass
linux·安全·web安全
洗发水很好用17 小时前
Nginx接收https并内部转发成http
nginx·http·https
无名之逆18 小时前
探索轻量高性能的 Rust HTTP 服务器框架 —— Hyperlane
服务器·开发语言·windows·后端·http·rust
网络安全指导员18 小时前
如何在JMeter中配置断言,将非200状态码视为测试成功
网络·学习·jmeter·安全·web安全·架构