人文艺术 > 假设我拿到了别的用户的淘宝网站的cookie,我放到自己的http请求

假设我拿到了别的用户的淘宝网站的cookie,我放到自己的http请求

2020-07-30 10:47阅读(114)

假设我拿到了别的用户的淘宝网站的cookie,我放到自己的http请求里,我就可以冒充这个用户吗?:大家都知道,Cookie是会话保持技术方案的一种,从理论上说拿到了C

1

大家都知道,Cookie是会话保持技术方案的一种,从理论上说拿到了Cookie是可以冒充用户的。下面具体分析下:

Cookie的机制原理

我们知道HTTP协议本身就是无状态的,服务器端默认情况下是无法分辨用户的,这样显然是不合理的,所以我们需要给每个访客加上一个“标识口令”。当分配了标识口令给客户端后,客户端浏览器后续发起的请求都会把这个“标识口令”附带在请求头参数里,这样服务器端就能分辨哪些请求是同一个用户了。

这个“标识口令”由服务器端生成,放置在客户端浏览器Cookie中,而服务器端对应会有一个Session,这个Session的唯一标识(SessionID)也是存储在Cookie中。

篡改Cookie可以冒用请求

上面讲到了,服务器端的SessionID是存储在客户端Cookie中的,这样一来其它用户一旦拿到Cookie中的SessionID后,是可以冒充原始用户发起请求的。

这看上去是不合理的!

但是,Cookie和Session的机制如此。我们说Cookie禁用后Session可能不能正常使用,但是我们可以将SessionID以GET方式传递给服务器端,所以SessionID如果明文传输就存在安全隐患。

拿到了淘宝的Cookie是无法冒充用户的

正因为Cookie是存储在客户端且不安全的,所以我们将用户数据存储在Cookie中时都会对数据进行加密。比如会验证用户的IP、终端特征标识等。即使其他用户伪造了Cookie依旧是无法验证通过的。

2

就这个问题,理解了http协议就知道了。本题按常识来说就不可能会冒充用户,那么大的平台怎么可能安全度那么低。

脱离常识,好好掰扯掰扯http协议才有意思。http的下层是tcp协议,tcp协议是面向连接的。http实现的时候,服务器在对客户端请求做出响应后,会主动断开连接,所以一个http请求是tcp连接到断开的一套操作。所以每次http请求都是无状态,独立的,互不联系的,也就是上次请求和下次请求没任何关系。为了让http请求间产生联系,于是就有了会话和cookie。那么会话和cookie到底是什么?你甚至可以把他俩理解成是一个东西。

http协议的一个请求由请求行、请求头和请求数据组成,这个知识点可以自己百度。cookie其实就是请求头中的一个,它其实就是个字符串,这个字符串保存着session的唯一标识或者服务器想让保存的信息。那么这俩东西是咋用的,又是如何让多个请求联系到一起的呢?

当你使用浏览器第一次访问某个网站的时候,http请求是不带cookie的,如果服务器使用了session或者cookie,就会在http响应中的响应头中带上cookie返回给浏览器。http响应和请求差不多,可以自行百度。浏览器收到cookie就会保存起来,同时,服务器也会把session保存起来,保存的形式可能是个文件,也可能是文件中的字符串,也可能是数据库中的一个记录等等。前面说过,cookie中保存着session的唯一标识,这样当浏览器再次请求的时候,会带上cookie,服务器就会知道请求的是那个session,这样,相互独立的http请求就产生了联系!

题目可能没这么复杂,也没提到session,所以就更简单了!cookie如果不保存session的唯一标识,那可能会保存用户的账号和密码。如果服务器不做任何安全验证,那么肯定可以冒充用户。这和普通的用户登录没啥区别!

但是就常识而言,淘宝网站不可能不做任何的安全验证,具体如何验证的我也不知道,有可能通过ip,有可能在cookie的基础上加个token或者其他什么的请求头!

3

如果能拿到别人的cookie是可以冒充别人的。首先要清楚,cookie存储于客户端,session存储于服务器端,而http请求是无状态的。因此服务器要识别某人通常都是用session完成,而session是依赖于cookie的。浏览器在每次发送请求时,会带上cookie 而cookie会自动带上session id,这样服务器就知道这个请求是基于那个session的,也就知道了是谁。

然而有些特殊情况,比如客户端禁用了cookie,如果要保持用户登录的状态可以在发送请求时,在请求的参数里带上session id,服务器也是可以知道用户是谁,但现在讨论的是有cookie的情况,顺带说一下这个问题。

所以在cookie冒充这个问题上服务器的防范措施比较有限,比如当用户重新登录,将之前的session作废,同一用户只能有一个session。保证用户账户同一时间只能有一个设备登录。另外,某些关键性的问题上用户要输入登录密码,或者使用手机验证码,以验证身份。比如修改密码,支付时。防范cookie冒充,更多还是需要用户多注意网络安全,比如安装防病毒软件,定时查杀病毒等等。

前面看到有的说验证IP,这个基本是行不通的,现在多数APP或浏览器因为用户体验问题都需要保证用户长时间登录,而网络的不稳定会导致设备时常断网,重新连接网络后IP就会改变。从而会导致用户需要重新登录(这句是后加的)。所以验证IP是行不通的。

还有就是有人说cookie带tooken也是行不通的,都能拿到你的cookie,凭什么就拿不到你的token?

4

不要干这个事情,违法的,我16年给一个老板开发了一个取QQcookie的插件,他和网维合作,发QQ广告,结果连累我被判了9个月

5

不行,淘宝的cookie的生命周期只是一次会话而已,关闭浏览器就失去作用了。但是据我研究,淘宝应该有两个cookie,一个是还没登录用的,这个拿到了也没用。一个是登录后用的,到这个是前面说的那样,拿到了也没用。即使你拿到之后,趁人家还没下线,你马上用这个cookie来登入淘宝,淘宝后台还有ip检测机制。但是,如果在同一个局域网内,估计有戏。

6

session值是不会放在cookie里的吧,否则session就和cookie变成一个东西了,确实,cookie是存在客户端的,不太安全,所以我们需要引入session,但从根本来说,用cookie却实会引发安全问题,只有单纯使用session,才能避免安全问题,但这需要每次用户登陆手动输入用户名密码,这样用户体验很不好

7

仅仅cookie是不行,一般都有设备验证,所以也要带上设备IMEI uuid之类。同时还有人机校验,比如我1分钟提交60次订单,系统就有可能让你 进行人机认证,让你滑动拼图之类。一般来说客户端都是token之类,这类是有有效期的,你之所以感受不到要重新获取token,是因为在token的有效期快过前你使用了客服端,服务端发现设备没有异常就给你生了新的 替换了旧的。这个过程用户是无感知的。所以仅仅cookie是不够的,仅仅token也是不够的。要充分考虑各种机制,一一破解。

8

我觉得小网站可能会存在类似的漏洞,对于阿里来说,个人信息验证不可能仅仅只有一个cookies,服务器端的session,网关加验证码那肯定也是必备,所以楼主还是洗洗睡吧

9

就只说结论吧,别的不多说了。

将别人的cookie放到请求里发给服务器,是可以冒充的,不过仅限于2000年之前的服务器安全技术条件下。(这里说的2000年只是大概时间,表示比较远古的时代)。

你不要觉得奇怪,上网经历早的人都知道天涯社区,最早的时候有时候你切换账号登录,都会把帖子发到之前账号去,就是因为切换账号对cookie的处理不到位,验证机制也太少。

现在是绝对没可能了,因为cookie只会保存一些非核心的信息,现在主要是cookie加session加token联合验证身份,就算你自己正常浏览淘宝,你每次发的cookie都是不同的,你复制一份有用吗?

10

想多了

相关问答推荐