1、如果不用HTTPS , HTTP协议如何安全的传输密码信息?
HTTP协议是纯文本协议 , 没有任何加密措施 。通过HTTP协议传输的数据都可以在网络上被完全监听 。如果用户登陆时将用户名和密码直接明文通过HTTP协议传输过去了 , 那么密码可能会被黑客窃取 。
一种方法是使用非对称加密 。GET登陆页面时 , 将公钥以JAVAscript变量的形式暴露给浏览器 。然后用公钥对用户的密码加密后 , 再将密码密文、用户名和公钥一起发送给服务器 。服务器会提前存储公钥和私钥的映射信息 , 通过客户端发过来的公钥就可以查出对应的私钥 , 然后对密码密文进行解密就可以还原出密码的明文 。
为了加强公钥私钥的安全性 , 服务器应该动态生成公钥私钥对 , 并且使用后立即销毁 。但是动态生成又是非常耗费计算资源的 , 所以一般服务器会选择Pool方法提供有限数量的公钥私钥对池 , 然后每隔一段时间刷新一次Pool 。
文章插图
2、文件路径攻击
很多操作系统都会使用..符号表示上层目录 。如果黑客在URL的路径里面使用..符号引用上层目录 , 而服务器没有做好防范的话就有可能导致黑客可以直接访问权限之外的文件 。比如使用多级..符号就可以引用到根目录 , 进一步就可以访问任意文件 。
所以很多服务器都禁止在URL路径里出现..符号以避免被攻击 。
文件路径攻击也是很多黑客非常喜爱使用的攻击方法之一 。如果你的服务器有一定的访问量 , 打开你的Nginx日志 , 你就会偶尔发现有一些奇怪的URL里面有一堆..符号 , 这种URL的出现就表示网络上的黑客正在尝试攻击你的服务器 。
3、DNS欺骗
HTTP协议严重依赖于DNS域名解析 。任意一个域名类网址的访问都需要经过域名解析的过程得到目标服务的IP地址才能成功继续下去 。
如果掌管DNS服务的运营商作恶将域名解析到不正确的IP , 指向一个钓鱼的网页服务 。用户如果没有觉察 , 就可能会将自己的敏感信息提交给冒牌的服务器 。
文章插图
4、谨慎使用外部的HTTP代理
HTTP代理作为客户端到服务器之间的中间路由节点 , 它起到传话人和翻译官的角色 。
如果这个翻译官不靠谱的话 , 客户端是会拿到错误的返回数据的 。它同DNS欺骗一样 , 是可以对客户端进行钓鱼攻击的 。
如果这个翻译官口风不严的话 , 它可能会将它听到的敏感信息泄露给别人
文章插图
5、413 Request Entity Too Large
客户端上传图片太大超过服务器限制时 , 服务器返回413错误 。
6、414 Request-URI Too Long
客户端访问的URI太长 , 超出了服务器允许限制 , 服务器返回414错误 。
7、202 Accepted
常用于异步请求 。客户端发送请求到服务器 , 服务器立即返回一个202 Accepted表示已经成功接收到客户端的请求 。
后面怎么处理由服务器自己决定 , 一般服务器会给客户端预留一个可以查询处理状态的接口 , 客户端可以选择轮训该接口来知道请求的处理进度和结果 。
8、POST提交数据的方式
(1)Application/x-www-form-urlencoded
提交数据表单时经常使用 , Body内部存放的是转码后的键值对 。
POST http://xyz.com HTTP/1.1Content-Type: application/x-www-form-urlencoded;charset=utf-8a=1&b=2&c=3&c=4(2)application/json
提交结构化表单时使用 , Body内部存放的是JSON字符串 。ElasticSearch的查询协议使用的是这种方式 。
POST http://xyz.com HTTP/1.1Content-Type: application/json;charset=utf-8{"a": 1, "b": 2, "c": [3, 4]}(3)multipart/form-data
上传文件时经常使用 。这种格式比较复杂 , 它是为了支持多文件上传混合表单数据而设计的一种特殊的格式 。
文章插图
用户填充了表单设置了待上传的文件 , 点击Submit , 传输数据大致如下
推荐阅读
- 基于隐私保护技术的DNS通信协议
- 图解HTTP原理
- Http、Socket、WebSocket之间联系与区别
- 5分钟理解SSH的工作原理
- 强 Fiddler抓取HTTPS最全攻略!后悔没有早知道
- HTTPS是什么?加密原理和证书。SSL/TLS握手过程
- 最通俗的语言讲清楚RPC和HTTP
- 生成树协议在华为交换机的简单应用
- 快速了解HTTPS,SSL证书知识点
- 一文了解阿里云CDN HTTP2.0