>

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

- 编辑:正版管家婆马报彩图 -

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

即采纳了 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后开展传递,哀告的多少会附在ULX570L之后,以?分割U陆风X8L和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,假使数额是土耳其(Turkey)语字母/数字,原样发送,假诺是空格,转变为+,要是是中文/其余字符,则间接把字符串用BASE64加密。

Get传输的数量有高低限制,因为GET是通过U奥迪Q5L提交数据,那么GET可提交的数据量就跟URL的长短有一向关联了,差异的浏览器对URubiconL的长度的限量是见仁见智的。

GET央求的数目会被浏览器缓存起来,客商名和密码将公开出今后U凯雷德L上,其余人能够查到历史浏览记录,数据不太安全。在劳务器端,用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"];

本文由web前端发布,转载请注明来源:传敏感数据,Get请求与Post请求的区别