HTTP方法:GET和POST央求的区分

HTTP方法:GET和POST央求的区分

关于小编:xiaoheike

澳门新萄京8522 1

简介还没赶趟写 :)
个人主页 ·
作者的稿子 ·
10 ·
     

澳门新萄京8522 2

Get是向服务器发索取多少的一种央浼,而Post是向服务器交由数据的一种需要;

h5新特色总览

Get央浼的参数会跟在url后张开传递,须求的数据会附在U福特ExplorerL之后,以?分割U本田CR-VL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,假若数额是匈牙利语字母/数字,原样发送,要是是空格,调换为+,倘若是中文/其余字符,则一贯把字符串用BASE64加密。

即选拔了 https 也不用通过 query strings 传敏感数据

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

本文由 伯乐在线 –
xiaoheike
翻译,艾凌风
校稿。未经许可,禁绝转发!
英语出处:HttpWatch。款待参预翻译组。

劳务器端的 log 将公开记下完整 url;浏览器上的探访历史也会当面记下完整
url;Referrer headers 里也忠实记下完全 url,然后在外人家的 谷歌Analytics 上出示。

我们平常听到的二个科学普及难点是:“URL
中的参数是还是不是能够安全地传递到安全网址?”这几个主题材料时常出现在客商看了
HttpWatch 捕获的 HTTPS 央求后,想通晓还应该有什么人能够看来那几个多少。

 

比如,假如在贰个查询中,使用如下安全的 URL 传递密码字符串:

HttpWatch 能够体现安全央浼的剧情,因为它与浏览器集成,由此它亦可在
HTTPS 请求的 SSL
连接对数码加密从前查看数据。澳门新萄京8522 3

要是您采纳网络嗅探器查看,举例
Network Monitor,对于同多少个央浼,你只能够查阅加密事后的数额。在多少包追踪中未有可知的网站,标题或内容:

澳门新萄京8522 4

您能够信赖 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
    的哀求参数:澳门新萄京8522 5

若是客商创制书签,查询字符串参数也将被储存。

  1. URLReferrer 伏乞头中被传送–假诺三个平安网页使用能源,举个例子
    javascript,图片或许分析服务,URL 将通过 Referrer
    央浼头传递到每三个放到对象。不经常,查询字符串参数只怕被传送并存放在第三方站点。在
    HttpWatch澳门新萄京8522, 中,你能够观望大家的密码字符串正被发送到
    Google Analytics澳门新萄京8522 6

结论

杀鸡取蛋这么些难题必要两步:

  • 除非在相对供给的地方下传递敏感数据。一旦客户被验证,最棒使用全部有限生命周期的会话
    ID 来标志它们。

采纳会话层级的 cookies 传递音信的独到之处是:

  • 它们不会储存在浏览器历史记录中或磁盘上
  • 它们平常不存款和储蓄在服务器日志中
  • 它们不会传递到嵌入式能源,例如图片或 JavaScript
  • 它们仅适用于乞请它们的域和路径

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

澳门新萄京8522 7

请注意,cookie 被界定在域
store.httpwatch.com,何况在浏览器会话结束时过期(即不会蕴藏到磁盘)。

您本来能够透过 HTTPS
传递查询字符串,然而绝不在大概出现安全难题的景色下行使。比如,你能够高枕而卧的使用它们显示部分数字依然项目,像
accountview 或者
printpage,然则不要使用它们传递密码,信用卡号码或然其余不应有公开的信息。

1 赞 收藏
评论

Post需要则作为http信息的其实内容发送给web服务器,数据放置在HTML
Header内提交,Post未有范围提交的数目。Post比Get安全,当数码是汉语或然不灵动的数量,则用get,因为运用get,参数博览会示在地点,对于灵动数据和不是汉语字符的数目,则用post;

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

FlieReader类型完成的是一种异步文件读取机制。能够把FileReader想象成XMLHttpRequest,差别只是它读取的是文本心疼,而不是远程服务器。为了读取文件中的数据,FileReader提供了之类几个办法:

  • readAsText(file,
    encoding):以纯文本的款型读取文件,将读取到的文书保存在result属性中。
  • readAsDataUTiggoL(file):读取文件并将文件一多少U途乐I的花样保留在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;
    };
});

POST表示只怕修改动服务器上的能源的乞请,在劳务器端,用Post格局提交的数目只好用Request.Form来得到

Get诉求的参数会跟在url后开展传递,诉求的多少会附在U景逸SUVL之后,以?分割U奥迪Q3L和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,倘诺数据是克罗地亚(Croatia)语字母/数字,原样发送,如若是空格,调换为+,要是是汉语/别的字符,则一向把字符串用BASE64加密。

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

Get是向服务器发索取多少的一种诉求,而Post是向服务器交由数据的一种伏乞。

string
name=Context.Request.QueryString[“name”]

<a name=”t1″></a><a target=”_blank” name=”t1″ style=”color:rgb(12,137,207)”></a>移除的要素

纯表现的要素:

basefont、big、center、font等

对可用性发生负面影响的成分:

frame、frameset、noframes

*GET伸手的数据会被浏览器缓存起来顾客名和密码将公开现身在UENCOREL上,其余人能够查到历史浏览记录,**数量不太安全**。在劳动器端,用Request.QueryString来获得Get情势交给来的数码。*

string
name=context.Request.Form[“pwd”];

<a name=”t4″></a><a target=”_blank” name=”t4″ style=”color:rgb(12,137,207)”></a>web存款和储蓄机制

Web
Storage的目标是克制由cookie带来的一对限制,当数码供给被严控在客商端上时,没有要求不断地将数据发回服务器。Web
Storage的多少个首要对象是:提供一种在cookie之外部存款和储蓄器储会话数据的路线;提供一种存款和储蓄大量足以跨会话存在的数量机制。最先的Web
Storage标准满含了两种对象的定义:sessionStorage和globalStorage。那八个对象在帮衬的浏览器中都是以windows对象属性的花样存在的。

Get传输的数占领大大小小限制,因为GET是经过U本田CR-VL提交数据,那么GET可交付的数据量就跟UPRADOL的尺寸有直接关乎了,分歧的浏览器对URAV4L的长短的限定是见仁见智的。

GET伏乞的数量会被浏览器缓存起来,顾客名和密码将公开出现在U昂科威L上,其余人能够查到历史浏览记录,数据不太安全。在服务器端,用Request.QueryString来获得Get格局提交来的数码;

<a name=”t9″></a><a target=”_blank” name=”t23″ style=”color:rgb(12,137,207)”></a>h5的宽容性难点

IE6/IE7/IE8扶助通过document.createElement方法产生的价签,能够动用这一特征让那一个浏览器帮衬HTML5新标签。不过浏览器支持新标签后,还索要加上标签默许的体裁。

Get是获取新闻,实际不是修改消息,类似数据库查询功效雷同,数码不会被涂改。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图