Get请求与Post请求的区别,即使用了

作者: 前端技术  发布:2019-10-13

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

2017/10/16 · 基础技艺 · HTTPS

本文由 伯乐在线 - xiaoheike 翻译,艾凌风 校稿。未经许可,幸免转发!
德文出处:HttpWatch。接待参预翻译组。

劳务器端的 log 将公开记下完整 url;浏览器上的拜见历史也会理解记下完整 url;Referrer headers 里也忠实记下全部 url,然后在别人家的 GoogleAnalytics 上出示。

笔者们日常听到的二个科学普及难点是:“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 服务器日志中的条目款项: **二〇一〇-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后开展传递,央求的多少会附在U奇骏L之后,以?分割U传祺L和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,假使数额是匈牙利(Hungary)语字母/数字,原样发送,如果是空格,调换为+,若是是汉语/其余字符,则直接把字符串用BASE64加密。

Get传输的数量有高低限制,因为GET是通过UWranglerL提交数据,那么GET可提交的数据量就跟U大切诺基L的长短有一向关联了,差别的浏览器对UWranglerL的长度的限定是见仁见智的。

GET诉求的数目会被浏览器缓存起来,客户名和密码将公开出以往USportageL上,别的人可以查到历史浏览记录,数据不太安全。在劳务器端,用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请求的区别,即使用了

关键词: