韦德国际1946英国 > 计算机网络 > Get请求与Post请求的区别,传敏感数据

原标题:Get请求与Post请求的区别,传敏感数据

浏览次数:111 时间:2019-04-22

即选取了 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 W三SVC432陆 WWW 20八.10一.31.二10 GET /Default.htm password=mypassword 4四三 … 平常感到就是是在服务器上,仓库储存明文密码平昔都不是好主见Get请求与Post请求的区别,传敏感数据。 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 请求头中被传送–倘诺3个康宁网页使用能源,比方 javascript,图片只怕分析服务,URL 将通过 Referrer 请求头传递到每一个放手对象。有时,查询字符串参数恐怕被传送并存放在第贰方站点。在 HttpWatch 中,你能够看来大家的密码字符串正被发送到 Google Analytics图片 4

结论

消除那一个标题亟需两步:

  • 唯有在相对供给的事态下传递敏感数据。壹旦用户被证实,最好使用全部有限生命周期的会话 ID 来标志它们。

使用会话层级的 cookies 传递音讯的优点是:

  • 它们不会蕴藏在浏览器历史记录中或磁盘上
  • 它们常常不存款和储蓄在服务器日志中
  • 它们不会传送到嵌入式资源,举个例子图片或 JavaScript
  • 它们仅适用于请求它们的域和路子

以下是大家的在线公司中,用于识别用户的 ASP.NET 会话 cookie 示例:

图片 5

请注意,cookie 被界定在域 store.httpwatch.com,并且在浏览器会话甘休时过期(即不会累积到磁盘)。

你当然可以由此 HTTPS 传递查询字符串,但是毫无在只怕出现安全难点的气象下使用。比如,你能够高枕而卧的应用它们展现部分数字依旧项目,像 accountview 或者 printpage,不过不要采取它们传递密码,信用卡号码只怕别的不该领会的音讯。

1 赞 收藏 评论

string name=Context.Request.QueryString["name"]

<a target="_blank" name="t9" style="color:rgb(12,137,207)"></a>FileReader类型

FlieReader类型达成的是一种异步文件读取机制。能够把FileReader想象成XMLHttpRequest,区别只是它读取的是文件心疼,而不是长途服务器。为了读取文件中的数据,FileReader提供了如下多少个方法:

  • readAsText(file, encoding):以纯文本的样式读取文件,将读取到的文书保存在result属性中。
  • readAsDataUOdysseyL(file):读取文件并将文件1数额U奥迪Q7I的样式保留在result属性中
  • readAsBinaryString(file)(已屏弃):读取文件并将叁个字符串保存在result属性中,字符串中的各种字符表示一字节
  • readAsArrayBuffer(file):读取文件并将二个带有文件内容的ArrayBuffer保存在result属性中。

鉴于读取进度是异步的,由此FileReader也提供了几个事件。个中最实用的三个事件是progress、error和load,分别表示是还是不是又读取了新数据,是或不是爆发了不当以及是还是不是读完了全体文件。

var filesList = document.getElementById("files-list");
EventUtil.addHandler(filesList, "change", function(event){
    var info = "",
        output = document.getElementById("output"),
        progress = document.getElementById("progress"),
        files = EventUtil.getTarget(event).files,
        type = "default",
        reader = new FileReader();

    if (/image/.test(files[0].type)){
        reader.readAsDataURL(files[0]);
        type = "image";
    } else {
        reader.readAsText(files[0]);
        type = "text";
    }

    reader.onerror = function(){
        output.innerHTML = "Could not read file, error code is "   reader.error.code;
    };

    reader.onprogress = function(event){
        if (event.lengthComputable){
            progress.innerHTML = event.loaded   "/"   event.total;
        }
    };

    reader.onload = function(){

        var html = "";

        switch(type){
            case "image":
                html = "<img src=""   reader.result   "">";
                break;
            case "text":
                html = reader.result;
                break;

        }
        output.innerHTML = html;
    };
});

至于小编:xiaoheike

图片 6

简要介绍还没赶趟写 :) 个人主页 · 作者的作品 · 10 ·      

图片 7

POST表示大概修退换服务器上的财富的央求,在劳动器端,用Post格局提交的数据只可以用Request.Form来获取.

<a name="t6"></a><a target="_blank" name="t13" style="color:rgb(12,137,207)"></a>Web Workers

专用Web Worker提供可贰个简练的措施使的web内容可以在后台运营脚本。1旦worker创造后,它能够向由它的开创者钦点的风浪监听函数字传送递新闻,那样改worker生成的全部义务就都会接到到那一个新闻。worker线程能够在不困扰UI的景观下施行职分。

转载自

h5新特点总览

Post请求则作为http音讯的实际内容发送给web服务器,数据放置在HTML Header内提交,Post未有界定提交的数额。Post比Get安全,当数码是华语只怕不灵活的多少,则用get,因为使用get,参数会来得在地方,对于灵动数据和不是华语字符的数量,则用post;

<a name="t7"></a><a target="_blank" name="t17" style="color:rgb(12,137,207)"></a>history对象

history对象保存着用户上网的历史记录,从窗口被展开的那一刻算起。
使用Go()方法能够在用户的历史记录中随心所欲跳转,能够向后也足以向前。这些措施接受叁个参数,表示向后或向前跳转的页面数的两个整数值。负数表示向后跳转(类似于单击浏览器的‘后退’开关),正数表示向前跳转(类似于单击浏览器的“前进”按键)

history.go(-1);//后退一页
history.go(1);//前进一页
history.go(2);//前进两页

也得以给go()方法传递1个字符串参数,此时浏览器会跳转到历史记录中带有该字符串的首先个地点–可能后退,也可能发展,具体看那么些地方近期。假设历史记录中不分包该字符串,那么那一个主意什么也不做

history.go('wrox.com');//跳到最近的wrox.com页面

除此以外,还足以利用五个简写方法back()和forward()来代替go()。那八个艺术都足以效仿浏览器的‘后退’和‘前进’开关。

history.back();//后退一页
history.forward();//前进一页

history对象还有2个length属性,保存着历史记录的数据。那些数目包罗富有的历史记录,即具有向后和前进的笔录。

string name=context.Request.Form["pwd"];

<a target="_blank" name="t1伍" style="color:rgb(1二,一3七,20七)"></a>传递数据

在主页面与worker之间传递的多少是经过拷贝,而不是共享来产生的。传递给worker的对象急需经过体系化,接下去在另1端还索要反种类化。页面与worker不会共享同一个实例,最终的结果便是在历次通讯甘休时生成了多少的二个别本。大多数浏览器采纳结构化拷贝来促成该脾气。
example.html(主页面)

var myWorker = new Worker("my_task.js");

myWorker.onmessage = function (oEvent) {
  console.log("Worker said : "   oEvent.data);
};

myWorker.postMessage("ali");

my_task.js(worker)

postMessage("I'm working before postMessage('ali').");

onmessage = function (oEvent) {
  postMessage("Hi "   oEvent.data);
};

GET请求的数码会被浏览器缓存起来,用户名和密码将公开出现在UPAJEROL上,其余人可以查到历史浏览记录,数据不太安全。在服务器端,用Request.QueryString来博取Get方式交给来的数据;

<a name="t8"></a><a target="_blank" name="t19" style="color:rgb(12,137,207)"></a>2D绘图(canvas和svg)

Get是获撤消息,而不是修改音讯,类似数据库查询功用雷同,数据不会被涂改;

<a target="_blank" name="t11" style="color:rgb(12,137,207)"></a>对象URL

对象U奥德赛L也被喻为blob U普拉多L,指的是援引保存在File或Blob中数量的URubiconL。使用对象U奥德赛L的功利是足以无需把公文内容读取到JavaScript中而直白选用文件内容。为此,只要在急需文件内容的地点提供对象UXC90L就可以。要成立对象U翼虎L,能够采用window.U卡宴L.createObjectU奥迪Q7L()方法,并传到File或Blob对象。这几个方法在Chrome中的落成叫window.webkitUPRADOL.createObjectULANDL(),由此得以经过如下函数来扫除命名的反差:

function createObjectURL(blob){
    if(window.URL){
        return window.URL.createObjectURL(blob);
    } else if (window.webkitURL) {
        return window.webkitURL.createObjectURL(blob);
    } else {
        return null;
    }
}

那个函数的重回值是二个字符串,指向一块内部存款和储蓄器的位置。因为那一个字符串是U牧马人L,所以在DOM中也能使用。举个例子,以下代码能够在页面中体现一个图像文件:

var filesList = document.getElementById("files-list");
EventUtil.addHandler(filesList, "change", function(event){
      var info = "",
          output = document.getElementById("output"),
          progress = document.getElementById("progress"),
          files = EventUtil.getTarget(event).files,
          type = "default",
          reader = new FileReader();
          url = createObjectURL(files[0]);
      if(url) {

       if (/image/.test(files[0].type)){
           output.innerHTML="<img src =""   url   "">"
       } else {
           output.innerHTML = 'not an image';
       }
    } else {
     output.innerHTML = "your browser doesn't support object URLs";
 }
});

      reader.onerror = function(){
          output.innerHTML = "Could not read file, error code is "   reader.error.code;
      };

      reader.onprogress = function(event){
          if (event.lengthComputable){
              progress.innerHTML = event.loaded   "/"   event.total;
          }
      };

Get是向服务器发索取多少的1种请求,而Post是向服务器交由数据的一种请求;

<a target="_blank" name="t7" style="color:rgb(12,137,207)"></a>localStorage对象

localStorage对象在修订过的HTML5正式中作为持久保存客户端数据的方案替代了globalStorage。与globalStorage差异,不能给localStorage内定别的访问规则;规则达成就设定好了。要访问同三个localStorage对象,页面必须来自同八个域名,使用同样种协议,在同贰个端口上。这一定于globalStorage[location.host]
是因为localStorage是Storage的实例,所以能够像使用sessionStorage同样来使用它。

//使用方法存储数据
localStorage.setItem('name','Nichoalas');
//使用属性存储数据
localStorage.book = 'Professional JavaScript';
//使用方法读取数据
var name = localStorage.getItem('name')
//使用属性读取数据
var book = localStorage.book;

存款和储蓄在localStorage中的数据和仓库储存在globalStorage中的数据壹致,都依据千篇一律的条条框框:数据保存到通过JavaScript
除去或许是用户清除浏览器缓存

本文由韦德国际1946英国发布于计算机网络,转载请注明出处:Get请求与Post请求的区别,传敏感数据

关键词: 日记本 基础技术 区别 方法 Http

上一篇:新伟德国际娱乐:到底加密了什么,https加密原理

下一篇:没有了