zoukankan      html  css  js  c++  java
  • 跨域那些事(2)

    上一篇文章有些細節沒有講明白.

    比如我說redis做存儲化比較安全,那爲何我不用redis去存用戶登錄名呢,雖然cookie中存當前登錄名被改不會有什麼影響,但是這裏涉及到一些redis的使用.

    redis是一種key-value映射的高效存儲方式,從內存中讀取數據,速度非常quick.如果我能確定key的唯一性,我自然可以使用redis的set key value.但是當前用戶名存儲,我們該用什麼樣的key呢.current_username?如果用這個,所有人都使用這個key,大家會根據登錄先後順序去覆蓋current_username對應的鍵值.這樣根本就達不到我們的要求.

    同樣的token也是一樣,如果單純地用auth_token作爲鍵名,只要有人登錄過,其他人都可以從redis裏面讀取到,也就失去了auth的效果.

    這就是爲什麼多個系統之間要做單點登錄的原因,甚至單獨做個系統來做單點登錄的接入口.

    In a word,事情並沒有我們想的那麼簡單.我仔細思考後決定利用key的唯一確定,去規避共享redis data的弊端.

    username還是交給cookie去弄,在token的寫入的時候,用username+key的方式,如下:

    $this->MyRedis->set($user_name . '_auth_token', 'xxsdrewercdscerrtc', 3000);

    跨域之後讀取的時候:

    $auth_token = $this->MyRedis->get($_COOKIE['login_name'] . '_auth_token');

    loginout的時候redis在del這個key,保持唯一性.

    總結:使用任何技術一定要考慮周全,盲目使用任何都是沒有什麼卵用.

  • 相关阅读:
    python定义函数时的默认返回值
    【UNIX网络编程】配置unp.h和apueerror.h
    【UNIX网络编程】套接字编程简介
    【UNIX网络编程】概述
    【VSCode】Ubuntu下VSC编译运行c++程序
    【UNIX网络编程】传输层:TCP、UDP和SCTP
    nginx跨域配置
    centOS7.*安装nginx和简单使用
    nginx日志切割
    nginx静态资源防盗链
  • 原文地址:https://www.cnblogs.com/freephp/p/4657196.html
Copyright © 2011-2022 走看看