大家都知道,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依旧是无法验证通过的。
就这个问题,理解了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或者其他什么的请求头!
如果能拿到别人的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?
除非你知道服务器的登录机制。服务器只要稍微修改登录机制,你就很难伪装了,比如,我不在cookie存用户id,或者是加密的id你,或者对session id转换加密,或者根本不用cookie信息,总之,session在服务器,有很多种方法避免cookie伪装,当然,如果你能有什么办法侵入系统,但是能侵入系统了,你还费劲登录系统啊
session值是不会放在cookie里的吧,否则session就和cookie变成一个东西了,确实,cookie是存在客户端的,不太安全,所以我们需要引入session,但从根本来说,用cookie却实会引发安全问题,只有单纯使用session,才能避免安全问题,但这需要每次用户登陆手动输入用户名密码,这样用户体验很不好
以上内容就是关于ugtoken总量多少的问题全部解答了,如果对你有所帮助的话,请收藏关注本站,这里将更新更多关于ugtoken总量多少的内容。
正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |