游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

细说web开发里的cookie

  做IT经常会有这种感觉,当初信誓旦旦的观点瞬间崩塌。前两天跟一个同事说到跨域的问题,继而谈到cookie,脑子马上出现了好多问号,于是翻阅资料才有了更深入的理解。cookie的存储位置
  当年初识web开发,就知道cookie存在客户端,session存在服务端。那么cookie到底存在客户端的哪里,是硬盘里,内存里,浏览器里,document里,还是哪里?
  首先思考一个问题,就是前面说的跨域问题。所谓跨域就是A站的页面不能随便请求B站的资源。这里其实有一个细节,请求都是客户端向服务端请求,严格来说跨域是响应到客户端的A站不能请求B站的服务端,而响应到客户端的B站就可以。这就奇怪了既然网页响应到客户端(即浏览器)便与服务端断开了连接,相互之间并没有瓜葛,怎么还能分得清A和B呢,难道html里偷偷藏了cookie在里面。这样才好解释每个请求里携带不同站点的cookie。事实上当然不是这样,html里除了我们自己写的那些标签再没有别的了。通过谷歌或火狐浏览器的设置里都能找到对应的存储cookie的位置,实际上cookie都是存在硬盘里的,安安静静的一个加密的文本文件。每次请求或者响应,浏览器都在根据站点与这个文本发生交互。所以,请暂时忘掉cookie藏在html里的想法。
  cookie的调用
  于是又回到了起初的那个问题,浏览器在请求时是怎么携带上对应的cookie呢?在深入思考前,咱们先做一个简单的模型。每个浏览器上渲染的页面都有地址吧,也就是url。比如说请求‘https:www。baidu。coms?ieUTF8wd火狐的cookie存在哪’这样一个地址,响应的html会被浏览器解析渲染出来,它的html内容与url自然是一一对应的,同样的,属于它的cookie内容也会被打上url的标识,就像xml解析一样。这样便好理解了,页面请求时,浏览器会根据它的url从cookie文件里查找对应的cookie内容一并放在headers(不同于html里的head标签)里发送给服务端。
  前面说的是比较简单的模型,cookie与url一一对应。实际上,cookie与url的对应关系要复杂一些,这要涉及到cookie的两个属性,暂且卖个关子,下面的cookie属性再细说。cookie的属性
  通常咱们使用cookie的属性,有name、value、maxAgeexpires,这三个分别表示cookie内容的名称,值还有过期时间,不常用的属性也有三个,secure、comment、version分别表示安全传输协议、说明、规范版本。下面咱们要说到的是另两个不太常用但是却很重要的属性,即domain和path。
  domain和path分别代表了cookie键值所属的站点和位置。举例来说,全村人把所有家伙什拿出放在一堆儿。而件家伙什都有各自的所属,有的呢只能被张三家使用,有的呢只要姓李就能使用,有的呢只能给王五的媳妇用。下面咱们就拿实例来说了,拿前面提到的url来说,打开谷歌浏览器访问,并打开开发工具里的application下的cookie查看。
  如上图,红标1的domain是www。baidu。com,那么这条cookie就会被www。baidu。com下的页面调起使用;红标2的domain是。baidu。com,那么这条cookie就会被www。baidu。com、live。baidu。com等。baidu。com结尾的页面调起使用。再拓展一下,如果domain是。www。baidu。com,那么a。www。baidu。com当然也能调用,单点登录就是这么实现的。
  domain搞明白了再说path,通常这个属性值都设为也就是根目录,表示这个cookie能被对应domain下所有页面调用,但是如果设置二级目录,比如api,那么必须是这个domain下的api目录才能使用。打个比方,一个庭院,如果院子里放着一个篮球,厨房里放着一个炒锅,卧室放着一个枕头。只要你进入这个庭院就能得到篮球,但是要得到炒锅就要进入厨房,要得到枕头就必须进入卧室。还有,如果你进入卧室,你不仅能拿到枕头,大院里的篮球也能拿到。依此类推,如果厨房的米柜里放着大米,要得到大米不仅要进入厨房还要打开米柜。总而言之,页面能取得当前目录及父级,父级的父级直到根目录的cookie。
  说完了这些参数,cookie的调用就好理解了,也许每个浏览器有自己的寻址逻辑,但是大致思路是一致的。当向服务端请求时,浏览器会根据当前页面的url在cookie文件进行查找,首先根据domain查找,然后再根据path逐层查找,然后把所有合格的cookie带上传送给服务端。cookie的设置
  cookie存储在客户端,正常情况下cookie内容是由服务端控制的。这样才能实现登录或者其他业务。这就要谈到一个问题,服务端是怎么控制客户端的cookie的。
  其实很简单,浏览器向服务端请求时,服务端会在响应的header头里携带setcookie指令告诉浏览器,设置cookie的所有属性。并不是每次请求浏览器都会对cookie文件修改,只有收到这种setcookie指令时才会修改。比如我已经登录了百度贴吧,会写入。ba
  idu。com一些键值记录登录状态,再访问百度地图时就不会再有记录登录信息的setcookie了。
  前面说的是正常情况,当然就会有其他情况。比如js里执行个脚本document。cookieusernameDarren;path;〔domain。csdn。net〕(http:domain3D。csdn。net),可以轻意的修改cookie,或者在浏览器的开发工具里直接修改,还有很多的第三方插件都很容易做到。这样说来,cookie信不过。但是也没有更信得过的好办法了。说直白点,cookie是你存放物品的回执单,一旦被别人拿到就能把你的物品取走。甚至cookie比回执单更不安全,因为它可以复制,无限复制。咱们能做的还是自己小心。cookie的祸端
  许多人利用cookie作恶,最典型的是csrf攻击。就好像盗取了你的微信号然后给你家人打电话要钱。具体怎么实现呢,我举两个例子。
  某个博客网站,删除文章只需要调用一个地址,abc。blog。comarticldelete234。正常情况下,服务端要验证是否是本人删除。非登录状态或者非本人文章是验证不通过的。但是,有这样一种场景。你在登录博客之后,浏览其它网站时,别人把这个链接藏在某个按钮或图片里,一旦你打开这个链接,浏览器首先会根据网址找到你存在电脑上的cookie信息发送给服务端,服务端会认为是本人所为,自然而然执行删除。
  当然了,删除和修改的请求一般不会用get方法。那么我们再把黑客强大一些,即使是post请求,黑客用ajax模拟出了删除脚本,然后以评论或者其它方法写进了网站数据。当其它用户登录并打开了这个页面,就会启动删除脚本,同样会带上用户的cookie发送到服务端,服务端也同样会认为是本人所为,执行操作。
  当然,网站能被植入脚本,网站开发要背锅。cookie的拓展seesion
  既然cookie在客户端被随便修改,那么session在服务端是不是更安全一些呢。我先说结果,就安全而言两者是一模一样的。因为session内容虽然存在服务器上,但是也是通过一个namePHPSESSID的cookie来连接的。只要别人拿了这个cookie,你用seesion在服务器上存了多少信息,也能给你挖出来。session是不能脱离cookie存在的。token
  token是前后分离后,用来跟服务端交互的手段,用来标识用户。曾经我以为token放在请求body里的参数,很容易被窃取,非常不安全。现在想想好天真,不管用cookie还是token都是秃子头上的虱子明摆着。
  好了,今天就说到这了。web开发经过几代大牛的耕耘才发展到现在,实属不易。但是仍然还有很多的路要走。

新能源西电东输通道建设加快白鹤滩浙江特高压工程开工IT之家9月6日消息据上海证券报报道,从业内获悉,为将新能源电力从西部能源基地输送到需求更大的东部,电力通道的建设正在提速。其中,白鹤滩浙江特高压直流输电工程在近期获得批……写了这么多年后端,你知道事务脚本模式吗?什么是事务脚本模式事务脚本模式(TransactionScript)可以简称TS模式,这个模式本身的核心思想就是名称中的两个词,即:事务与脚本。事务可以理解为实际需要执行……为什么说单反相机对于95的年轻人来说都是浪费钱?为什么说单反相机对于95的年轻人来说都是浪费钱?我来和大家交流一下这个问题。我也是玩了十多年的摄影了,也是从年轻走过来的。可能我们有时从我们身边的年轻人来看,……随着ABF基板短缺缓解,厂商希望2022H2能逐步提高显卡出当谈论市场上显卡供应紧张的时候,大家的关注点都在芯片供应上,像台积电(TSMC)和三星这样的大型晶圆代工厂没有足够的产能。事实上,缺乏ABF基板也是影响显卡产量的重要因素之一。……你用过最好用的一款国产软件是什么?这个就各有千秋了。回答这个问题前,先扯几句国产软件吧,每次看到这样的话题,总会给人带来一种偏见,所以我要多说几句。什么样的软件可以谈论国产呢?编程方面的我说不清楚,因为我……楚天科技与德国Romaco集团最新合作研发成果Macofar楚天科技与德国Romaco集团合作研发的最新技术成果MacofarE联动线,8月18日上午在楚天科技正式发布,楚天科技董事长兼总裁唐岳在发布会上致辞表示,MacofarE联动线……吃华为老本的荣耀该如何翻盘?来源:DoNews1月18日上午10:08,荣耀首款折叠屏手机荣耀MagicV迎来了首次开售。出乎所有人意料的是,荣耀MagicV几乎在一秒钟内售罄,而上一次一经开售便被……进入18周岁的京东618更懂得了责任价值和存在的意义5月31日前夜,一年一度的京东618已经枕戈待旦。这一天,京东零售集团CEO徐雷在誓师大会讲话上,向所有员工分享了目前京东零售所面对的外界形势变化,他再次向所有员工重申,当京东……老电脑慢得像蜗牛还有救吗?根据你的配置截图根据你发的配置截图,这个配置确实太老了,都要10年以上了。升级的硬件费用可能都要比你电脑值钱了。如果实在舍不得丢掉,想继续用,那就按一下方案升级吧。……苹果13还能香起来吗01略显平淡的发布会熬夜看了苹果的发布会,苹果发布了刘海更小的iPhone13系列;支持自适应高刷新率、影像系统升级的iPhone13Pro系列;屏幕更大的AppleWa……为啥很多车主都后悔买新能源汽车?但路上的新能源汽车却越来越多对于新能源汽车,市场的反馈一直褒贬不一,不过,有一点可以肯定,这是未来发展的趋势。从目前各大车企推出的新车型中,燃油车与新能源的比例也可以看出。但为什么会有很多车主都开始后悔买……A00级新能源小车中的王牌,零跑T03成为消费者新选择过去,马路上奔跑着的,停车场里面停放着的汽车,都是两田一众,日系和德系,它们牢牢的占据着中国汽车市场的大半江山。现在,中国汽车市场则是呈现一种百花齐放的态势,尤其在新能源领域除……
油性耳朵戴助听器要注意些什么?每天戴之前用棉签把耳道清理一下,定期到门店清洗耵聍帽或耳塞您好,油性耳朵戴助听器要注意些什么?耳垢的组成有油、硬脂、脂肪酸、蛋白质和黄色素,还有0。1的水以及少许白……赢创和Samaplast合作提升聚醚醚酮植入物性能特种化学品公司赢创与瑞士高性能聚合物注塑专业公司Samaplast展开合作,成功通过注塑成型工艺生产出基于骨传导性聚醚醚酮(PEEK)材料的脊柱植入物原型。这一成果整合双方专长……全能来袭一汽39。99万6月24日,一汽大众揽境上市发布会在西安举行,提供2。0T标准功率、2。0T高功率、以及2。5TV6三种动力组合共6款车型,全系均提供6座7座两种版本供选择,价格区间为29。9……Android11曝光,看到这些功能,网友直呼安卓稳了!根据外媒的爆料我们对下一个Android版本的首次了解,该版本要等到今年第三季度才能稳定发行。在深入了解所有细节之前,我们发现有许多功能我们正在体验。在过去的几年中,开发人员预……为年轻人而来北京U5PLUS成都车展将开启抢订今年的成都车展虽迟但到,8月29日即将拉开大幕。一年一度的西部汽车盛宴即将开启,重磅新车给力促销一大堆惊喜等着你。看到惊喜一定要翻译翻译,那么我给你翻译一下惊喜就是北京汽车专为……讴歌NSX最终代TypeS于北美地区上市24小时极速售罄本田旗下豪华汽车品牌Acura讴歌在上月中正式推出了超跑NSX的最终回车型TypeS,此车被誉为有史以来最速、最强悍、操控性最佳的量产版本NSX,其搭载的3。5升双涡轮增压引擎……南卡骨传导蓝牙耳机粉色款,满足你的少女心,给你优质听歌体验一般来说,想到粉色,很多人都认为是女生的专属颜色,这个颜色让人感到浪漫和清新,当粉色和科技融合,就会碰撞出不一样的感受。南卡前段时间推出的RunnerCCII骨传导蓝牙耳机,不……iPhone13为什么不采用屏下指纹解锁,苹果公司的无奈之举屏下指纹识别技术最早诞生于2018年,最早量产的机型是VIVO的X21屏幕指纹版,这也算是目前屏幕指纹识别技术的祖师爷了。以为首的光电感应,利用OLED屏幕可以部分区域单……三星OPPO新品神似?S21FE渲染图曝光,Reno6星黛紫随着三星新品发布会的临近,即将上线的新品消息也越来越多。近日,三星S21FE国行版通过工信部入网审核,真机证件照也随之曝光,整体的外观设计和与三星GalaxyS21十分接近,均……滴滴出行被网信办通告严重违法违规,网友早该整顿了7月4日晚,国家网信办发布关于下架滴滴出行APP的通报,根据举报,经检测核实,滴滴出行App存在严重违法违规收集使用个人信息问题。国家互联网信息办公室依据《中华人民共和国网络安……架构设计标准Web系统的架构分层1、架构体系分层图在上图中我们描述了Web系统架构中的组成部分。并且给出了每一层常用的技术组件服务实现。需要注意以下几点:系统架构是灵活的,根据需求的不同,不一定每一层的……耳机为何要有左右之分据英国广播公司《科学焦点杂志》网站3月4日报道,声音的移动相当缓慢。回声可以展示声音的移动是多么慢对着一幢遥远的建筑大喊一声,你会听到你的声音在稍稍延迟后反弹回来。它的缓慢移动……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网