来自 前端技术 2019-09-25 09:48 的文章
当前位置: 六合联盟网 > 前端技术 > 正文

传敏感数据,Get乞求与Post须要的区分

即采纳了 https 也无须通过 query strings 传敏感数据

2017/10/16 · 基本功本领 · HTTPS

本文由 伯乐在线 - xiaoheike 翻译,艾凌风 校稿。未经许可,禁止转发!
罗马尼亚语出处:HttpWatch。应接参与翻译组。

劳动器端的 log 将公开记下完整 url;浏览器上的探访历史也会当着记下完整 url;Referrer headers 里也忠实记下完整 url,然后在别人家的 谷歌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 服务器日志中的条约: **2010-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本田CR-VL之后,以?分割UEscortL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,假如数量是匈牙利(Magyarország)语字母/数字,原样发送,假使是空格,转换为+,假诺是华语/其余字符,则一向把字符串用BASE64加密。

Get传输的数码有大小限制,因为GET是由此U君越L提交数据,那么GET可交付的数据量就跟U奥迪Q3L的长度有直接涉及了,区别的浏览器对U如虎 CTR 3L的尺寸的界定是见仁见智的。

GET央求的多少会被浏览器缓存起来,客商名和密码将公开出现在U福特ExplorerL上,别的人能够查到历史浏览记录,数据不太安全。在劳务器端,用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须要的区分

关键词: