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

作者: 前端技术  发布:2019-09-26

即利用了 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奥迪Q5L和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,假如数额是葡萄牙语字母/数字,原样发送,若是是空格,转变为+,假设是华语/其余字符,则直接把字符串用BASE64加密。

Get传输的数目有高低限制,因为GET是经过U奥德赛L提交数据,那么GET可提交的数据量就跟UEvoqueL的长度有平素涉及了,不相同的浏览器对ULX570L的长短的界定是差别的。

GET需要的数码会被浏览器缓存起来,顾客名和密码将公开出现在UQashqaiL上,别的人能够查到历史浏览记录,数据不太安全。在劳务器端,用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"];

本文由金沙澳门官网送注册58发布于前端技术,转载请注明出处:Get请求与Post请求的区别,也不要通过

关键词:

上一篇:5分钟从入门到领会
下一篇:没有了