地种格桑花可以吗?

小说:地种格桑花可以吗?作者:伯宗更新时间:2019-05-24字数:90574

一、为什么Cookie需要防篡改

为什么要做Cookie防篡改,一个重要原因是 Cookie中存储有判断当前登陆用户会话信息(Session)的会话票据-SessionID和一些用户信息
当发起一个HTTP请求,HTTP请求头会带上Cookie,Cookie里面就包含有SessionID。
后端服务根据SessionID,去获取当前的会话信息。如果会话信息存在,则代表该请求的用户已经登陆。
服务器根据登陆用户的权限,返回请求的数据到浏览器端。

因为Cookie是存储在客户端,用户可以随意修改。所以,存在一定的安全隐患。

二、例子

  1. 用户wall在浏览器端输入用户名密码,发起POST请求到后端服务器。后端服务器验证合法,返回Response,并Set-Cookiesessionid=***;username=wall;
  2. 浏览器端在接收到HTTP响应后,发现Set-Cookie,将其存入本地内存或硬盘中。
  3. 浏览器端再次发起请求,带上Cookie信息sessionid=***;username=wall;,请求修改自己的头像信息。
  4. 服务器根据sessionid验证当前用户已登陆,根据username,查找数据库中的对应数据,修改头像信息。

如果当前用户知道username的作用,修改username=pony。再次发起请求,则服务器接收到请求后,会去修改usernamepony的数据。
这样,就暴露出数据被恶意篡改的风险。

三、防篡改签名

服务器为每个Cookie项生成签名。如果用户篡改Cookie,则与签名无法对应上。以此,来判断数据是否被篡改。

原理如下:

  • 服务端提供一个签名生成算法secret
  • 根据方法生成签名secret(wall)=34Yult8i
  • 将生成的签名放入对应的Cookie项username=wall|34Yult8i。其中,内容和签名用|隔开。
  • 服务端根据接收到的内容和签名,校验内容是否被篡改。

举个栗子:

比如服务器接收到请求中的Cookie项username=pony|34Yult8i,然后使用签名生成算法secret(pony)=666
算法得到的签名666和请求中数据的签名不一致,则证明数据被篡改。

四、敏感数据的保护

鉴于Cookie的安全性隐患,敏感数据都应避免存储在Cookie。
应该根据SessionID,将敏感数据存储在后端。取数据时,根据SessionID去后端服务器获取即可。
另外,对一些重要的Cookie项,应该生成对应的签名,来防止被恶意篡改。

当前文章:http://www.cnsdbtzg.com/content/2019-01/18/content_40200.html

发布时间:2019-05-24 00:00:00

红梅花最珍贵的品种是什么? 美人焦可以种到水里吗? 长度400公分的爬山虎苗哪里有批发的? 精品水杉树哪家好,江苏沭阳一家有 米径3公分红枫树什么价格能买到? 【货源分享】全国最大的草坪早熟禾批发基地直销 奶牛场牧草种植方案有哪些? 虞美人多长时间浇次水? 格桑花可以种植在阳台上吗? 冬天的草花有哪些?

90728 45682 93965 56387 29230 34218 94936 80256 62738 78881 98731 33242 55960 96094 68993 32003 41405 85965 40348 57123 41615 90498 46761

我要说两句: (0人参与)

发布