淺談訪問接口的數(shù)據(jù)安全性

數(shù)據(jù)接口的訪問有時常常和和身份唯一合法驗證有關(guān)楼咳。

1.通過session來控制

1.1 控制方式

傳統(tǒng)做法通過session識別身份硫朦,具體步驟

  • 1苟跪、通過過濾器攔截請求状共,判斷用戶session是否存在亲配。登陸等模塊不需要驗證身份的特殊處理尘应。
  • 2惶凝、通過攔截器攔截方法,判斷用戶session是否存在犬钢,不需要驗證登陸加載苍鲜,通過auth自定義注解區(qū)分。此法優(yōu)于1玷犹。

以上兩種方法適合簡單早期的應(yīng)用,如遇到應(yīng)用系統(tǒng)集群混滔,需要解決session共享的問題。又如接口同時提供對外訪問歹颓∨饔欤總不能特殊處理再重寫一下吧?

1.2 session共享方式

spring boot項目使用tomcat服務(wù)器實現(xiàn)session共享的方式巍扛,使用redis存儲session對象值
(1)添加依賴

        <!--使用redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--session 共享 -->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>

(2)在yml中配置redis

spring:
    redis:
        password: 123456
        pool:
            max-active: 21
            max-idle: 8
            max-wait: -1
            min-idle: 0
        sentinel:
            master: sentinel-name
            nodes: 192.168.1.2:6389,192.168.1.3:6390,192.168.1.4:6387
        timeout: 1000

此處配置完全是spring-boot-starter-data-redis相關(guān)配置參數(shù)领跛,跟spring-session-data-redis無關(guān)。后者依賴前者
(3)在項目啟動類上添加如下注解@EnableRedisHttpSession
通過@EnableRedisHttpSession注解開啟Session共享功能

@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds= 3600, flushMode  = FlushMode.ON_SAVE)
public class RedisCacheConfig
{
}

注解的主要作用是注冊一個SessionRepositoryFilter撤奸,這個Filter會攔截到所有的請求吠昭,對Session進行操作

2.通過請求中攜帶cookie或者head身份信息

思路一:

  • 登陸成功后,服務(wù)器產(chǎn)生token(生成規(guī)則自定:IP+瀏覽器類型+時間)令牌寂呛,返回到客戶端token和用戶ID(加密)怎诫。服務(wù)器把toke 對應(yīng)的用戶信息存放session中。
  • 攔截器接收token贷痪,通過session從服務(wù)器中獲取相應(yīng)的用戶信息,如果沒有獲得(session失效或者服務(wù)器不同),則根據(jù)用戶ID后臺自動登錄蹦误,用戶信息再放到session里面劫拢。
    重點:請求cookie中攜帶token和id

思路二:

  • 登錄成功后,服務(wù)產(chǎn)生token(生成規(guī)則:時間 )令牌强胰,令牌存放在redis緩存并且存放在登錄信息表舱沧。令牌通過head返回。
  • 客戶端訪問服務(wù)器偶洋,攔截器接受token熟吏,解析token并驗證是否過期,從redis讀取token
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玄窝,一起剝皮案震驚了整個濱河市牵寺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恩脂,老刑警劉巖帽氓,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俩块,居然都是意外死亡黎休,警方通過查閱死者的電腦和手機浓领,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來势腮,“玉大人联贩,你說我怎么就攤上這事∩诱” “怎么了泪幌?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玄渗。 經(jīng)常有香客問我座菠,道長,這世上最難降的妖魔是什么藤树? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任浴滴,我火速辦了婚禮,結(jié)果婚禮上岁钓,老公的妹妹穿的比我還像新娘升略。我一直安慰自己,他們只是感情好屡限,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布品嚣。 她就那樣靜靜地躺著,像睡著了一般钧大。 火紅的嫁衣襯著肌膚如雪翰撑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天啊央,我揣著相機與錄音眶诈,去河邊找鬼。 笑死瓜饥,一個胖子當(dāng)著我的面吹牛逝撬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乓土,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼宪潮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了趣苏?” 一聲冷哼從身側(cè)響起狡相,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拦键,沒想到半個月后谣光,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡芬为,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年萄金,在試婚紗的時候發(fā)現(xiàn)自己被綠了蟀悦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡氧敢,死狀恐怖日戈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孙乖,我是刑警寧澤浙炼,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站唯袄,受9級特大地震影響弯屈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜恋拷,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一资厉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蔬顾,春花似錦宴偿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舷胜,卻和暖如春娩践,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烹骨。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工欺矫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人展氓。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像脸爱,于是被迫代替她去往敵國和親遇汞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容