Get请求与Post请求的区别,也不要通过

时间:2019-10-04 14:48来源:网页制作
即采用了 https 也不要通过 query strings 传敏感数据 2017/10/16 · 基本功技术 ·HTTPS 本文由 伯乐在线 -xiaoheike翻译,艾凌风校稿。未经许可,禁绝转发! 韩文出处:HttpWatch。招待参预翻译组

即采用了 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 服务器日志中的条约: **2008-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福特ExplorerL之后,以?分割UCR-VL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,假使数额是希伯来语字母/数字,原样发送,假使是空格,调换为+,如若是普通话/其余字符,则间接把字符串用BASE64加密。

Get传输的数额有大大小小限制,因为GET是透过U冠道L提交数据,那么GET可交付的数据量就跟UCR-VL的尺寸有一向涉及了,区别的浏览器对UEvoqueL的长短的限制是差别的。

GET诉求的多寡会被浏览器缓存起来,客商名和密码将公开现身在U奔驰M级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"];

编辑:网页制作 本文来源:Get请求与Post请求的区别,也不要通过

关键词:

  • 上一篇:没有了
  • 下一篇:没有了