传敏感数据,Get请求与Post请求的区别
分类:前端操作

即采取了 https 也毫无通过 query strings 传敏感数据

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

本文由 伯乐在线 - xiaoheike 翻译,艾凌风 校稿。未经许可,禁绝转发!
立陶宛(Lithuania)语出处: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昂CoraL之后,以?分割URubiconL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,如若数额是意大利语字母/数字,原样发送,假使是空格,调换为+,假设是中文/其余字符,则直接把字符串用BASE64加密。

Get传输的数额有高低限制,因为GET是经过USportageL提交数据,那么GET可交付的数据量就跟UQX56L的长短有直接关系了,不一样的浏览器对U卡宴L的长度的限制是差别的。

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请求的区别

上一篇:防护与检查评定,页面中的 下一篇:没有了
猜你喜欢
热门排行
精彩图文