Get请求与Post请求的区别,传敏感数据

作者: 前端应用  发布:2019-09-28

即利用了 https 也毫无通过 query strings 传敏感数据

2017/10/16 · 基本功才能 · HTTPS

本文由 伯乐在线 - xiaoheike 翻译,艾凌风 校稿。未经许可,禁绝转发!
阿拉伯语出处:HttpWatch。迎接到场翻译组。

劳务器端的 log 将公开记下完整 url;浏览器上的拜望历史也会当面记下完整 url;Referrer headers 里也忠实记下总体 url,然后在别人家的 谷歌(Google)Analytics 上显得。

大家常常听到的二个宽广难点是:“URL 中的参数是还是不是能够安全地传递到安全网址?”那几个标题时常出现在客商看了 HttpWatch 捕获的 HTTPS 央浼后,想驾驭还会有哪个人能够看来这个数据。

 

举个例子,假诺在一个查询中,使用如下安全的 URL 传递密码字符串:

HttpWatch 能够显得安全恳求的剧情,因为它与浏览器集成,因而它能够在 HTTPS 请求的 SSL 连接对数码加密以前查看数据。图片 1

若果您利用网络嗅探器查看,比方 Network Monitor,对于同一个伸手,你只好够查阅加密随后的数码。在数量包追踪中从未可见的网站,标题或内容:

图片 2

您能够信赖 HTTPS 央求是安枕无忧的,只要:

  • 未忽略任何SSL证书警告
  • Web 服务器用于运维 SSL 连接的私钥在 Web 服务器本人之外不可用。

于是,在网络规模,URL 参数是安全的,不过还或然有局地别的依据 URL 泄漏数据的法子:

  1. URL 存款和储蓄在 Web 服务器日志中–平日各类央求的完好 URL 都被寄存在在服务器日志中。这意味着 URL 中的任何敏感数据(比如密码)会以公开格局保留在服务器上。以下是采纳查询字符串通过 HTTPS 发送密码时存款和储蓄在 httpwatch.com 服务器日志中的条目款项: **2009-02-20 10:18:27 W3SVC4326 WWW 208.101.31.210 GET /Default.htm password=mypassword 443 … 常常以为正是是在服务器上,累积明文密码向来都不是好主张 2.URLs are stored in the browser history – browsers save URL parameters in their history even if the secure pages themselves are not cached. Here’s the IE history displaying the URL parameter:
  2. URL 存款和储蓄在浏览器历史记录中–就算安全网页本人未缓存,浏览器也会将 URL 参数保存在其历史记录中。以下是 IE 的历史记录,呈现了 URL 的伏乞参数:图片 3

假设客户创设书签,查询字符串参数也将被贮存。

  1. URLReferrer 须要头中被传送–假若一个安然无恙网页使用财富,举例 javascript,图片也许分析服务,URL 将通过 Referrer 央浼头传递到每八个松手对象。一时,查询字符串参数只怕被传送并寄存在第三方站点。在 HttpWatch 中,你可以观望大家的密码字符串正被发送到 Google Analytics图片 4

结论

减轻那一个难题亟待两步:

  • 只有在相对须求的状态下传递敏感数据。一旦客户被认证,最棒使用全数有限生命周期的会话 ID 来标记它们。

运用会话层级的 cookies 传递信息的独到之处是:

  • 它们不会积攒在浏览器历史记录中或磁盘上
  • 它们经常不存款和储蓄在服务器日志中
  • 它们不会传送到嵌入式财富,比方图片或 JavaScript
  • 它们仅适用于诉求它们的域和路径

以下是大家的在线集团中,用于识别客户的 ASP.NET 会话 cookie 示例:

图片 5

请注意,cookie 被限定在域 store.httpwatch.com,况兼在浏览器会话结束时过期(即不会储存到磁盘)。

你本来能够因此 HTTPS 传递查询字符串,可是并非在或然出现安全问题的光景下选拔。举个例子,你能够安全的使用它们显示部分数字依然项目,像 accountview 或者 printpage,可是毫无接纳它们传递密码,银行卡号码或许其余不应有公开的消息。

1 赞 收藏 评论

转载自

至于小编:xiaoheike

图片 6

简要介绍还没来得及写 :) 个人主页 · 作者的篇章 · 10 ·      

图片 7

Get是向服务器发索取多少的一种要求,而Post是向服务器交由数据的一种恳求;

Get是获取新闻,实际不是修改新闻,类似数据库查询成效雷同,数据不会被改换;

Get供给的参数会跟在url后开展传递,要求的多寡会附在UPAJEROL之后,以?分割U牧马人L和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,如果数量是印度语印尼语字母/数字,原样发送,假如是空格,调换为+,假诺是普通话/其余字符,则直接把字符串用BASE64加密。

Get传输的数目有大大小小限制,因为GET是由此UWranglerL提交数据,那么GET可交付的数据量就跟UEnclaveL的尺寸有直接涉及了,不相同的浏览器对USportageL的长短的界定是例外的。

GET须求的数码会被浏览器缓存起来,顾客名和密码将公开出现在UENCOREL上,其余人能够查到历史浏览记录,数据不太安全。在服务器端,用Request.QueryString来收获Get格局提交来的数据;

Post伏乞则作为http消息的实际内容发送给web服务器,数据放置在HTML Header内提交,Post未有范围提交的数量。Post比Get安全,当数码是汉语大概不灵动的数目,则用get,因为使用get,参数会展现在地方,对于灵动数据和不是华语字符的数额,则用post;

string name=Context.Request.QueryString["name"]

POST表示或许修退换服务器上的能源的伸手,在服务器端,用Post格局提交的数码只可以用Request.Form来获取.

string name=context.Request.Form["pwd"];

本文由今晚买四不像发布于前端应用,转载请注明出处:Get请求与Post请求的区别,传敏感数据

关键词:

上一篇:手拉手来看
下一篇:没有了