当前位置:美高梅官方网站59599 > 前端科技 > 请求的数据会附在URL之后

请求的数据会附在URL之后

文章作者:前端科技 上传时间:2019-10-08

即采纳了 https 也不要通过 query strings 传敏感数据

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

本文由 伯乐在线 - xiaoheike 翻译,艾凌风 校稿。未经许可,禁绝转发!
土耳其(Turkey)语出处: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 服务器日志中的条目款项: **二零零六-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后开展传递,恳求的数额会附在UWranglerL之后,以?分割U瑞鹰L和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,即使数额是法语字母/数字,原样发送,如若是空格,转变为+,假如是汉语/其他字符,则一直把字符串用BASE64加密。

Get传输的数据有大大小小限制,因为GET是经过UHighlanderL提交数据,那么GET可交付的数据量就跟U君越L的尺寸有直接关系了,分裂的浏览器对UENVISIONL的长短的界定是例外的。

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"];

本文由美高梅官方网站59599发布于前端科技,转载请注明出处:请求的数据会附在URL之后

关键词: