쿠키로 Facebook에 로그인하기: 쿠키가 무엇이고, 무엇이 아닌지, 그리고 인계 체크리스트
이 마켓플레이스에서 쿠키는 페이스북 계정의 일반적인 전달 형식이지, 예외적인 경우가 아닙니다. 실제로 전체 활성 목록의 57%에 등장하죠. 여기서 세션 쿠키가 실제로 무엇을 제공하는지, 다른 건 아무것도 제공하지 않는 목록이 오히려 더 비싼 이유, 그리고 이후 소유권을 확실히 가져오기 위한 정확한 설정 경로를 설명드립니다.
Sarah Johnson第一次拿到一包cookies却没有密码,感觉像是出了什么差错。在决定怎么处理之前,值得先弄清楚这种情况到底有多常见。
按今天本站上活跃的Facebook账号列表来算,57%的列表提到了cookies,三分之一把cookies写进了标题。Cookies在这里并不是什么罕见的备选方案。它们是默认的交付格式,大多数列表上都是和登录名、密码一起出现,少数列表则只有cookies。
那少数的定价方向,大多数人猜不到。明确写着只有cookies能登录的列表,并不是货架上的便宜货;它们的价格大约是货架中位数的1.5倍。不管一个只有cookies的账号是什么,市场并没有把它当折扣品对待。
一句话说清cookie是什么
Cookie不是凭证。它是登录已经发生过的证据。
当有人正常登录时,Facebook会往那个浏览器里写入几个值。之后的每个请求都会把这些值带回去,Facebook读到它们就当作"这个会话已经通过认证",而不会重新核实你是谁。把这些值复制到另一个浏览器里,那个浏览器就继承了会话。没有绕过任何东西,也没有攻破任何安全措施;你只是在延续一个已经存在的东西。
这正是cookie比密码更脆弱的原因。会话会在账号主人登出、Facebook觉得哪里不对劲、或者会话自然过期时结束。到那时,cookie不会降级,也不会要求输入密码。它就是失效了,而且没有任何重试的余地。
在这个语境下有两个名字经常出现,c_user和xs,有必要直说它们从哪来。它们是浏览器自己的存储视图里显示的内容。Meta对此没有任何文档:cookie政策没有点名任何单个cookie,也没有对它们做任何技术说明。把这些名字当作恰好可靠的操作惯例就好,别当成你能指着某个支持页面来证明的东西。
加载它们,以及搜索结果里反复出现的平台问题
搜索这个问题的人绝大多数都在问"在什么设备上"。诚实的回答是,这是桌面浏览器的操作流程,移动端的结果大多是噪音。
手动操作。打开facebook.com,打开浏览器开发者工具,进入存储或应用面板,找到该域名的cookie列表,然后输入值。能用,但很繁琐。会搞砸的两件事是域名不对和路径不对,而这两者都不会产生错误提示。页面就是保持未登录状态。
用cookie编辑器扩展。任何能导入JSON数组的工具都更快,而且出错概率低得多,因为域名和路径跟着数据走,不用重新输入。格式是一个对象列表,每个对象带一个.facebook.com的域名、一个/的路径、一个名称和一个值。导入、保存、刷新页面。如果会话还活着,你立刻就进去了。
决定能否成功的规则很短。域名必须带前导点,路径几乎总是站点根目录,名称和值必须完全一致,包括复制粘贴可能丢掉的那些尾部字符。如果xs缺失或错误,其余那组值单独撑不起一个会话。
在手机上,扩展这条路基本不存在,所以搜索建议里才会堆满独立应用和安装包。那些是第三方软件,要求替你保管一个你在乎的账号的活跃会话,这比登录本身要大得多的决定。如果账号重要,用桌面浏览器。
Cookies和访问令牌不是同一种购买
人们常搭配问的另一个问题是,他们到底要cookies还是令牌,而我们自己货架上的价格差比任何解释都更能回答这个问题。提到访问令牌的列表价格大约是货架中位数的三倍。以JSON形式提供cookies的列表价格不到中位数的三分之一。九比一,两个人们混着说的东西之间。
原因在于各自能触达什么。会话cookie让浏览器进入人用的界面。令牌面向程序化接口,在没有浏览器参与的情况下也能持续工作。需要自动化的买家为后者付费,而且没法用前者替代,这正是价格差衡量的东西。如果你拿到的是cookies却指望驱动API,你得到的不是同一个东西的便宜版。你得到的是另一个东西。
如果账号现在是你的,头十分钟该做什么
Cookie本质上就是临时访问。如果意图是你拥有这个账号而不是借用会话,那么交接就没完成,直到那些比会话活得更久的凭证归你所有,而这一切都不会自动发生。
先提一个导航上的注意事项,否则它会白白浪费你的时间。Meta正在迁移中,它自己的帮助页面也这么说:你可能会看到Accounts Center或Meta Account settings作为管理账号设置的地方。修改密码的文章甚至自带备选分支,告诉你如果Accounts Center不在,就直接选Password and security。所以预期会有两种布局之一,按区块名称导航,别数点击次数。
Meta文档给出的路径是:点你的头像,然后Settings and privacy,然后Settings,然后Accounts Center,然后Password and security。下面几乎所有内容都在这一个区块里。
- 结束其他会话。在Password and security下,打开Where you're logged in,选中账号,然后选择所有设备并登出。要主动做这一步,别以为改密码就自动搞定了。Meta的改密码文档对其它设备只字未提,它唯一记录的结束会话方式就是你自己动手。
- 修改密码。Password and security,然后Change password,然后选择账号。
- 设置双重认证,在同一个区块里。然后拿恢复代码:在双重认证里,在获取登录代码的方式下,打开Additional methods,然后Recovery codes,然后获取新代码。会发十个。生成一组新的才会让之前持有者手里的那组失效,这一步是大家最容易跳过的。
- 检查通行密钥列表。通行密钥是一种独立的登录途径,存在于某人的物理设备上,留着一个就等于留了一条新密码未必能堵上的后门。Meta没有发布任何声明说明改密码对已有通行密钥有什么影响,这本身就足够让你自己去看看列表而不是想当然。移除一个需要重新输入密码,所以等设好你掌控的密码之后再操作。
顺序在这里很重要。先结束会话,这样其他在里面的人在你开始改他们能看到的东西之前就被清出去了。然后密码,然后双重认证,然后恢复代码,然后通行密钥。
Cookies不能为你做什么
持有会话不等于持有账号,这个差距恰好就在上面那些步骤里显现。改密码要的是你没有的东西。移除通行密钥需要重新认证。如果cookies真的就是交到你手上的全部,那你只是那个会话里的客人,能待多久算多久,而每一个能让访问永久化的操作都挡在一个你没拿到的凭证后面。
这就是检验只有cookies的交接是不是你想要的标尺。要跑一个星期的账号,没问题。要拥有它,光靠cookies到不了那里,付款前该谈的是密码和邮箱,不是cookie格式。
这和Facebook条款的关系
值得直说而不是藏着。Facebook的服务条款要求用户不要分享密码或把Facebook账号的访问权交给别人。那条款存在,没有歧义,而且无论访问权以什么形式打包、是谁同意交出去的,它都适用。
接下来的是风险评估,不是操作指南。以这种方式获得的会话随时可能被Facebook终止,账号可能被限制,而且没有任何申诉渠道是从"别人给了我cookies"开始的。规模化做这种事的人把每个账号都当一次性用品,把损失算进成本里。把买来的账号当基础设施,是在承担平台事先声明过的风险。
本站的Facebook账号列表在标题里就披露了交付格式,所以只有cookies、cookies加登录名、以及带令牌的货品可以在购买前就区分开,而不是买完之后。Facebook账号安全概览覆盖了周边的安全面,如何正确锁定账号则覆盖了最终状态。


