什么樣的登錄方式才是最安全的?

目錄

一、基礎協議:HTTP與HTTPS

HTTP協議

HTTPS協議

二、常見Web攻擊與防御

2.1 XSS

常見攻擊手段

針對XSS 攻擊竊取 Cookie

2.2 CSRF

CSRF攻擊的核心特點

與XSS的區別

常見防御措施

三、疑問解答

四、登錄方式演變

4.1 方案一🐶狗都不用

介紹

問題

4.2 方案二🐶狗都不用

介紹

問題

4.3 方案三 🐕小狗用一下

問題

總結:

4.4 方案四🐶

普通Token實現

JWT(JSON Web Token)

關鍵差異對比

使用建議

相交于session機制

需注意的例外情況


在Web開發中,用戶認證是保障系統安全的第一道防線。本文將系統性地介紹HTTP/HTTPS、Cookie、Session、Token等核心概念,分析常見攻擊手段(XSS/CSRF),并對比不同認證方案的優劣,幫助開發者構建安全的認證體系。

在回答這個問題前,我想先通過幾個問題,來建立起登錄相關的基本概念,再進行回答。

一、基礎協議:HTTP與HTTPS

HTTP協議

  • ??明文傳輸??:請求和響應報文均為明文形式
  • ??無狀態??:每次請求獨立,服務器不保留連接信息
  • ??端口??:默認使用80端口
  • ??風險??:易受中間人攻擊,敏感信息可能被竊取

HTTPS協議

  • ??加密傳輸??:在HTTP基礎上加入SSL/TLS加密層
  • ??身份驗證??:通過CA證書驗證服務器真實性
  • ??端口??:默認使用443端口
  • ??優勢??:
    • 防止數據竊聽(傳輸加密)
    • 防止數據篡改(完整性校驗)
    • 防止身份冒充(證書認證)

雖然HTTPS解決了傳輸安全問題,但無法防御XSS、CSRF等攻擊手段。

二、常見Web攻擊與防御

2.1 XSS

XSS(跨站腳本攻擊,Cross-Site Scripting)是一種常見的Web安全漏洞,攻擊者通過在網頁中注入惡意腳本代碼,當其他用戶訪問該頁面時,這些腳本會在用戶瀏覽器中執行,從而達到竊取信息或進行其他惡意操作的目的。

常見攻擊手段

  1. 盜取用戶Cookie和會話信息
  2. 偽造用戶身份執行操作(如轉賬、發帖等)
  3. 植入惡意軟件或釣魚內容
  4. 發起DDoS攻擊

針對XSS 攻擊竊取 Cookie

  • 攻擊方式:黑客注入惡意 JavaScript(如 <script>alert(document.cookie)</script>),竊取 HttpOnly 未設置的 Cookie。

  • 防御措施:

    • 設置 HttpOnly 屬性,禁止 JavaScript 訪問 Cookie。

    • 啟用 Secure 屬性,強制 HTTPS 傳輸。

    • 使用 Content-Security-Policy (CSP) 防止 XSS。

2.2 CSRF

CSRF(Cross-Site Request Forgery,跨站請求偽造)是一種利用用戶已登錄狀態,誘使用戶在不知情的情況下向目標網站發送惡意請求的網絡攻擊手段。攻擊者通過偽造用戶請求,冒充用戶執行非本意的操作(如轉賬、修改密碼等)。

CSRF攻擊的核心特點

  1. ??利用信任機制??:依賴網站對用戶瀏覽器的信任(如Cookie/Session認證)
  2. ??無需竊取憑證??:攻擊者無需獲取用戶密碼或Cookie內容
  3. ??隱蔽性強??:攻擊過程用戶無感知,通常只需點擊鏈接或訪問頁面

與XSS的區別

特性CSRFXSS
攻擊目標利用網站對用戶的信任利用用戶對網站的信任
數據獲取不直接竊取數據直接竊取Cookie/敏感信息
實現方式偽造請求(如<img>標簽自動加載)注入惡意腳本執行
防御重點請求來源驗證輸入輸出過濾

常見防御措施

  1. ??CSRF Token??:服務器生成隨機Token,嵌入表單或請求頭
    <form action="/transfer" method="POST"> <input type="hidden" name="csrf_token" value="a1b2c3d4"> <!-- 其他表單字段 --> 
    </form>
  2. ??SameSite Cookie??:設置SameSite=Strict限制跨站Cookie發送
  3. ??驗證Referer??:檢查請求來源域名是否合法
  4. ??敏感操作二次驗證??:如短信驗證碼、密碼確認等
根據OWASP統計,CSRF在Web安全威脅中長期位列前十,正確實施Token驗證可防范99%的CSRF攻擊

三、疑問解答

問題:通過瀏覽器的控制臺能看到當前請求的路徑以及輸入的賬號密碼等信息,這些信息難道不會被黑客直接看到嗎?

控制臺信息需通過物理接觸設備或植入惡意腳本才有可能獲取,普通網絡攻擊無法直接利用。

  • 通過XSS漏洞注入腳本可竊取控制臺數據
  • 特定瀏覽器漏洞可能繞過CSP策略(如Chrome CVE-2020-6519)
  • 未啟用HTTPS時網絡嗅探可獲取明文數據
  • 惡意WiFi熱點可能劫持HTTP連接

那么為什么說cookie和session不一定安全,不都是用https加密了嗎

即使使用了 HTTPS 加密傳輸,CookieSession 仍然存在安全風險,因為 HTTPS 僅能保護傳輸過程的相對安全,而無法完全防御其他攻擊手段。以下是具體原因分析:

1. HTTPS 的作用與局限

HTTPS(SSL/TLS)主要解決:

  • 傳輸加密:防止數據在傳輸過程中被竊聽(如中間人攻擊)。

  • 身份驗證:確保客戶端連接的是真實的服務器(通過 CA 證書)。

但 HTTPS 無法防御以下攻擊:

  • XSS(跨站腳本攻擊):竊取 Cookie 或 Session ID。

  • CSRF(跨站請求偽造):利用瀏覽器自動攜帶 Cookie 的特性發起惡意請求。

  • Session 劫持:通過竊取 Session ID 冒充用戶。

  • Cookie 泄露:服務器或客戶端存儲不當導致泄露。


2. Cookie 的安全風險(即使使用 HTTPS)

(1) XSS 攻擊竊取 Cookie

  • 攻擊方式:黑客注入惡意 JavaScript(如 <script>alert(document.cookie)</script>),竊取 HttpOnly 未設置的 Cookie。

  • 防御措施:

    • 設置 HttpOnly 屬性,禁止 JavaScript 訪問 Cookie。

    • 啟用 Secure 屬性,強制 HTTPS 傳輸。

    • 使用 Content-Security-Policy (CSP) 防止 XSS。

(2) CSRF 攻擊(跨站請求偽造)

  • 攻擊方式:誘導用戶點擊惡意鏈接,瀏覽器自動攜帶 Cookie 發起請求(如轉賬)。

  • 防御措施:

    • 設置 SameSite 屬性(StrictLax),限制跨站請求。

    • 使用 CSRF Token(服務端驗證)。

(3) Cookie 泄露

  • 攻擊方式:

    • 服務器日志、數據庫泄露未加密的 Cookie。

    • 客戶端存儲的 Cookie 被惡意軟件讀取。

  • 防御措施:

    • 加密敏感 Cookie 數據。

    • 定期更換 Session ID。


3. Session 的安全風險(即使使用 HTTPS)

(1) Session 劫持(Session Hijacking)

  • 攻擊方式:

    • 通過 XSS 竊取 Session ID。

    • 網絡嗅探(如公共 Wi-Fi)獲取未加密的 Session ID(如果 HTTPS 配置不當)。

  • 防御措施:

    • 綁定 Session 到用戶 IP 或 User-Agent(但可能影響用戶體驗)。

    • 使用短 Session 有效期 + 自動注銷。

(2) Session 固定(Session Fixation)

  • 攻擊方式:

    • 攻擊者預先設置 Session ID(如 ?PHPSESSID=123),誘導用戶登錄后劫持會話。

  • 防御措施:

    • 登錄后生成新 Session ID(如 session_regenerate_id())。

    • 禁用 URL 傳遞 Session ID。

(3) 服務器端 Session 存儲泄露

  • 攻擊方式:

    • 服務器文件或數據庫被入侵,導致 Session 數據泄露。

  • 防御措施:

    • 加密存儲 Session 數據。

    • 使用 Redis 等內存數據庫,而非文件存儲。


4. 為什么 JWT 相對更安全?

JWT(JSON Web Token)的安全性依賴于簽名機制,但同樣需要配合 HTTPS 使用:

  • 防篡改:簽名確保數據未被修改(如 HMAC 或 RSA)。

  • 無狀態:服務端無需存儲 Session,降低數據庫泄露風險。

  • 但仍需防范:

    • Token 泄露(XSS 攻擊)。

    • 弱密鑰(如 123456)。

    • 過期時間過長(需設置短 exp)。

四、登錄方式演變

問題:

希望頁面的相關請求都要維持一個登錄狀態?怎么做?

換句話說,每次請求都需要知道當前用戶是不是登錄的狀態,怎么實現?

4.1 方案一🐶狗都不用

沒有cookie、session、token這些技術

介紹

如果沒有cookie、session、token這些技術的話,那么這個問題將會變得非常麻煩。

首先,用戶在登錄頁面,帶著用戶名密碼傳遞給后端。后端校驗通過后,成功響應。

此后,用戶再在任何頁面發起后端請求時,都要攜帶這個用戶名密碼信息,等于說每個接口后端也都需要校驗用戶名密碼。

問題

這樣做有什么問題呢?

  1. 安全性極低 (0%)

    每次請求明文傳輸密碼,易被攔截(如中間人攻擊),即使使用HTTPS也無法避免密碼在客戶端存儲的風險。

    密碼長期暴露在請求中,泄露概率大幅增加。

  2. 性能開銷大

    每次請求需查詢數據庫校驗密碼,高頻請求下數據庫壓力劇增,而Session/Token只需首次登錄時校驗。

  3. 用戶體驗差

    用戶需手動輸入或客戶端持久化存儲密碼,前者操作繁瑣,后者不安全。

  4. 無法實現關鍵功能

    會話管理:無法主動踢人、強制下線或限制并發登錄

    短期授權:如Token可設置過期時間,而密碼無法動態失效

4.2 方案二🐶狗都不用

單cookie。即僅依賴Cookie存儲用戶信息并維持登錄狀態。

介紹

Cookie是服務器發送到用戶瀏覽器并保存在本地的一小塊數據(通常不超過4KB),會在瀏覽器下次向同一服務器發起請求時被攜帶并發送到服務器上。

首先,用戶登錄時通過用戶名密碼發起請求,后端校驗通過后,通過HTTP響應頭中的Set-Cookie字段發送Cookie到客戶端(這個cookie記錄了用戶信息,例如可以是用戶名)。

前端收到響應報文后,會將這個cookie保存起來,此后每次請求都攜帶這個cookie。后端只要能解析到這個cookie。就認為是已登錄的。

Cookie的組成

一個完整的Cookie包含以下屬性

  • 名稱(Name)值(Value):存儲的實際數據

  • Expires/Max-Age:設置過期時間(不設置則為會話Cookie,關閉瀏覽器即失效)

  • Path:定義可訪問該Cookie的網站路徑

  • Domain:指定可訪問該Cookie的域名

  • Secure:僅通過HTTPS協議傳輸

  • HttpOnly:防止JavaScript訪問,增強安全性

Cookie的類型

  1. 會話Cookie:臨時性,存儲在內存中,瀏覽器關閉后刪除

  2. 持久Cookie:設置過期時間,存儲在硬盤上,在服務器設置的過期時間前一直有效

問題

相較于方案一,每次通過用戶名密碼,這樣的好處僅僅是

  • 密碼沒有明文傳遞

  • 不需要每次手動輸入用戶名密碼

但是問題依舊嚴重。

  1. 安全性極低(1%)

    若Cookie直接存儲用戶名、密碼或未加密的用戶數據,一旦被竊取(如XSS攻擊、網絡嗅探),攻擊者可輕易偽造用戶身份

    Cookie默認隨請求自動發送,攻擊者可誘導用戶點擊惡意鏈接,利用已登錄狀態發起偽造請求(如轉賬操作)

    Cookie若未設置HttpOnlySecure屬性,可能被JavaScript讀取或通過非HTTPS傳輸,導致信息泄露。

    Cooike有容量限制:最大4kb。

    相比較方案一:僅僅是沒有明文傳遞,對于正兒八經的的黑客,這沒有一點優勢,甚至于熟悉cookie攻擊的黑客來講,安全性更差。

  2. 無法實現關鍵功能

    會話管理:無法主動踢人、強制下線或限制并發登錄

    短期授權:無法主動使Cookie失效,如用戶修改密碼后仍需等待Cookie過期,而Session或Token可通過服務端黑名單即時撤銷。

  3. 跨域限制

    Cookie默認僅在同域名下發送,難以支持跨域單點登錄。

  4. 客戶端依賴

    瀏覽器禁用Cookie時功能完全失效。

4.3 方案三 🐕小狗用一下

采用cookie和session機制。

  1. 客戶端首次請求時,服務器創建Session并生成唯一Session ID。(Session是一種服務器端的會話管理機制,服務器為每個客戶端用戶創建一個唯一的Session對象來存儲會話數據)

  2. 服務器通過Set-Cookie將Session ID發送給客戶端(通常名為JSESSIONID或PHPSESSID)

    Session ID的傳遞方式:

    1. Cookie(最常見方式)

    2. URL重寫:當Cookie被禁用時,將Session ID附加在URL后

    3. 隱藏表單字段:通過表單隱藏字段傳遞

  3. 客戶端保存Session ID并在后續請求中攜帶

  4. 服務器通過Session ID查找對應的Session數據

注意:整個過程我們只需要往session中存儲數據,處理數據即可。其他的像設置cookie這些瀏覽器就幫我們完成了。

Session的生命周期

  • 創建:用戶首次訪問時

  • 維護:通過Session ID保持會話狀態

  • 銷毀:可通過以下方式:

    • 用戶主動注銷

    • Session超時(默認通常30分鐘)

    • 服務器主動銷毀

Cookie與Session的比較

特性CookieSession
存儲位置客戶端服務器端
安全性較低,易被篡改較高,數據在服務器端
存儲容量有限(約4KB)無嚴格限制
生命周期可長期保存通常較短
性能影響幾乎無影響占用服務器資源
數據類型僅文本任意類型

問題

  1. 安全性(??)

    Cookie安全問題:

    • 竊取:需要設置HttpOnly和Secure標志,否則XSS攻擊可能獲取Cookie

    • 偽造:修改客戶端Cookie值

    • CSRF攻擊:利用用戶已認證狀態發起惡意請求

    Session安全問題:

    • 會話劫持:獲取有效Session ID

    • 會話固定:強制用戶使用攻擊者提供的Session ID

    • 防護措施

      • 使用安全的Session ID生成算法

      • 用戶登錄后更換Session ID

      • 設置合理的超時時間

  2. 服務器資源消耗

    • session占用服務器內存,用戶量大會導致內存壓力

    • 可能引發內存溢出,特別是Session數據復雜時

    • 需要定期清理過期Session,增加服務器負擔

  3. 分布式環境問題

    • 多服務器環境下需要Session共享機制,處理起來就比較復雜了

    • Session同步可能成為性能瓶頸

    • 需要額外配置如Redis等中間件來共享Session

  4. 依賴性問題

    • 默認依賴Cookie傳遞Session ID,當Cookie被禁用時需要URL重寫

    • URL重寫方式安全性較低且使用不便

總結:

雖然這里我標記的兩顆星,在應對一些簡單的場景時,還是可以用的。但是多集群部署、分布式,甚至高并發場景,對安全性要求更高,那么就不推薦使用了,而且用起來也非常復雜。

4.4 方案四🐶

Token(令牌)

Token是一個廣義概念,指任何形式的身份驗證令牌,用于在客戶端和服務器之間傳遞身份驗證和授權信息。Token可以有多種實現方式,如基于會話的Token、基于時間的Token等。

普通Token實現

通常是一個隨機生成的字符串(如UUID),存儲在服務器端(如Redis),需要查詢驗證。

JWT(JSON Web Token)

JWT是一種具體的Token實現方式,遵循RFC 7519標準。它是自包含的,意味著包含了所有必要信息(包括用戶信息和簽名),無需查詢數據庫即可驗證其有效性。JWT由三部分組成,用點號(.)分隔

  1. Header:聲明類型和算法(如HS256)

  2. Payload:包含聲明(用戶信息等)

  3. Signature:對前兩部分的簽名,防止篡改

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

說明:

包含關系:JWT是Token的一種特殊形式,所有JWT都是Token,但并非所有Token都是JWT。

信息承載方式

  • 普通Token:通常只是一個隨機字符串,本身不包含信息,需要服務器查詢數據庫驗證。

  • JWT:自身包含認證信息(JSON格式),通過簽名保證完整性,無需服務器存儲

驗證機制

  • 普通Token:服務器需要查詢數據庫驗證Token有效性

  • JWT:服務器直接通過密鑰驗證簽名,無需查詢數據庫(除非使用黑名單機制)

應用場景

  1. 普通Token適用場景:

    • 需要即時撤銷Token的情況

    • 對安全性要求極高,需要完全控制Token生命周期的場景

  1. JWT適用場景:

    • 無狀態認證(如RESTful API)

    • 跨域認證(如單點登錄)

    • 微服務架構中的服務間認證

關鍵差異對比

特性普通TokenJWT
服務器存儲需要不需要
驗證方式查數據庫驗證簽名
信息包含無用戶信息包含用戶信息
吊銷機制可即時吊銷只能等待過期
跨域支持有限優秀
性能影響數據庫I/O開銷加密/解密開銷
適用場景傳統Web應用分布式系統/API

使用建議

  • 選擇普通Token:當需要即時吊銷能力、對安全性要求極高或系統規模較小時

  • 選擇JWT:在分布式系統、無狀態API、前后端分離或需要跨域認證的場景

  • 混合使用:某些場景可結合兩者優勢,如使用JWT作為短期Access Token,配合可吊銷的Refresh Token

相交于session機制

Token相比Session在某些方面確實具有更高的安全性。

  1. 防CSRF攻擊能力 Token機制天然免疫CSRF(跨站請求偽造)攻擊。

    因為Token通常放在HTTP頭部的Authorization字段中,而非Cookie,攻擊者無法通過偽造鏈接誘導用戶發送攜帶Token的請求。

    而Session依賴Cookie傳遞Session ID,容易遭受CSRF攻擊。

  2. 無狀態架構優勢 Token無需服務器存儲會話狀態,避免了Session面臨的會話劫持風險(如Session ID被竊取后可直接冒充用戶)。即使Token泄露,也可通過短期有效期和黑名單機制降低風險。

  3. 分布式場景安全性 在微服務架構中,Token無需Session同步機制,避免了集中式Session存儲的單點故障風險。

  4. 傳輸安全性 Token可通過HTTPS+加密存儲(如HttpOnly Cookie)雙重保護,而Session ID默認通過Cookie傳輸,若未設置Secure標志可能被明文截獲。

需注意的例外情況

  • 若Token未設置合理過期時間或未加密敏感信息,安全性可能低于嚴格管理的Session。

  • Session可通過服務端即時吊銷(如支付寶退出即銷毀Session),而Token需依賴黑名單或等待自然過期。

Token的安全優勢主要體現在防篡改、防CSRF和無狀態架構設計上,但實際安全性仍取決于具體實現方式(如是否啟用HTTPS、簽名算法強度等)

在網絡安全領域,"沒有最安全的方案,只有更安全"這一理念深刻揭示了安全防護的動態本質。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84544.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84544.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84544.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android studio底部導航欄

實現底部導航欄切換 將java文件return的xml文件賦值給頁面FrameLayout控件 java文件BottomNavigationView&#xff0c;監聽器setOnNavigationItemSelectedListener MainActivity.java代碼 package com.example.myapplication;import android.os.Bundle;import androidx.appc…

vue-router相關理解

一、前言 隨著 Vue.js 在前端開發中的廣泛應用&#xff0c;Vue Router 成為了 Vue 官方推薦的路由管理器。它不僅支持單頁面應用&#xff08;SPA&#xff09;中常見的路由跳轉、嵌套路由、懶加載等功能&#xff0c;還提供了導航守衛、動態路由等高級特性。 本文將帶你深入了解…

uni-app 自定義路由封裝模塊詳解(附源碼逐行解讀)

&#x1f680;uni-app 自定義路由封裝模塊詳解&#xff08;附源碼逐行解讀&#xff09; &#x1f4cc; 請收藏 點贊 關注&#xff0c;獲取更多 uni-app 項目實用技巧&#xff01; 在實際 uni-app 項目中&#xff0c;我們常常需要對 uni.navigateTo、uni.switchTab 等 API 做…

QML顯示圖片問題解決辦法

以前用qtwediget的時候&#xff0c;好像是放在qlabel或者什么組件上面&#xff0c;把圖片的路徑放上去就可以直接加載&#xff0c;但我用QML創建界面的時候就遇到了問題&#xff0c;哦對&#xff0c;qtwedget用qpixmap組件顯示圖片&#xff0c;也有image。話說回來&#xff0c;…

Vue中使用jsx

1. jsx的babel配置 1.1 在項目中使用jsx&#xff0c;需要添加對jsx的支持&#xff1a; jsx通常會通過Babel來進行轉換(React編寫的jsx就是通過babel轉換的)Vue中&#xff0c;只需要在Babel中配置對應的插件即可以下列舉需要支持轉換的案例&#xff1a; template -> vue-l…

Spring Cache+Redis緩存方案 vs 傳統redis緩存直接使用RedisTemplate 方案對比

結合 Spring Cache 和 Redis 的緩存方案&#xff08;即 Spring Cache Redis&#xff09;相較于普通的 Redis 緩存使用&#xff08;如直接通過 RedisTemplate 操作&#xff09;&#xff0c;具有以下顯著優勢&#xff1a; 具體實現方案請參考&#xff1a;Spring CacheRedis緩存…

Web應用安全漏洞掃描:原理、常用方法及潛在風險解析?

Web應用安全的關鍵環節在于進行漏洞掃描&#xff0c;這種掃描通過自動化或半自動化的方式&#xff0c;對應用進行安全測試。它能揭示出配置錯誤、代碼缺陷等眾多安全風險。接下來&#xff0c;我將詳細闡述這些情況。 掃描原理 它主要模擬攻擊者的行為&#xff0c;以探測和攻擊…

Spring中@Value注解:原理、加載順序與實戰指南

文章目錄 前言一、Value注解的核心原理1.1 容器啟動階段&#xff1a;環境準備1.2 Bean實例化階段&#xff1a;后置處理器介入1.3 值解析階段&#xff1a;雙引擎處理1. 占位符解析&#xff08;${...}&#xff09;2. SpEL表達式解析&#xff08;#{...}&#xff09; 1.4 類型轉換與…

MySQL 8配置文件詳解

MySQL 8 配置文件詳解 MySQL 8 的配置文件(my.cnf或my.ini)是MySQL服務器啟動時讀取的主要配置文件&#xff0c;它包含了服務器運行所需的各種參數設置。以下是MySQL 8配置文件的詳細解析&#xff1a; 配置文件位置 MySQL 8 會按照以下順序查找配置文件&#xff1a; /etc/m…

臺灣住宅IP哪家好,怎么找到靠譜的海外住宅IP代理商

探索臺灣住宅IP&#xff1a;如何找到靠譜的海外住宅IP代理商&#xff1f; 在當今數字化時代&#xff0c;海外住宅IP的需求日益增長&#xff0c;尤其在跨境電商、網絡營銷、數據抓取等領域。對于需要臺灣住宅IP的用戶來說&#xff0c;找到一家靠譜的海外住宅IP代理商至關重要。本…

讀研一些畢業感想

回首過往三年&#xff0c;從躊躇迷茫到明晰堅定&#xff0c;從稚嫩懵懂到明理成熟&#xff0c;一切只覺輕舟已過萬重山。 依稀記得我拉著行李箱跋山涉水來到學校的那天&#xff0c;早上從廣東中山乘坐10小時高鐵到北京西&#xff0c;然后坐1一個多小時地鐵到學校&#x…

《飛算JavaAI:穩定、高效、跨平臺的AI編程工具優勢解析》

隨著人工智能技術的不斷發展&#xff0c;AI編程工具越來越成為開發者們在研究和應用AI模型時不可或缺的利器。國內外的AI編程工具多種多樣&#xff0c;涵蓋了從基礎編程語言、框架到圖形化界面的多種選擇。然而&#xff0c;在這些工具中&#xff0c;飛算JavaAI作為一種基于Java…

day27/60重寫(補充)

DAY 27 函數專題2&#xff1a;裝飾器 ps&#xff1a;第一期day27對應5月16日 知識點回顧&#xff1a; 裝飾器的思想&#xff1a;進一步復用函數的裝飾器寫法注意內部函數的返回值 作業&#xff1a; 編寫一個裝飾器 logger&#xff0c;在函數執行前后打印日志信息&#xff08;如…

網傳西門子12億美元收購云原生工業軟件,云化PLM系統轉機在協同

近日&#xff0c;網傳西門子將以12億美元全現金交易收購云原生MES公司FlexFact&#xff0c;并整合其技術至Xcelerator工業軟件平臺。如果此次收購動作完成&#xff0c;將會成為西門子加速工業云轉型的標志性動作&#xff0c;背后的意義也極為深遠&#xff0c;不僅會直接響應競爭…

大模型筆記_檢索增強生成(RAG)

1. RAG的概念 RAG&#xff08;Retrieval-Augmented Generation&#xff09; 是一種結合 信息檢索&#xff08;Retrieval&#xff09;與文本生成&#xff08;Generation&#xff09;的模型架構&#xff0c;旨在通過動態引入外部知識庫或實時數據&#xff0c;提升大語言模型&…

Spring Security是如何完成身份認證的?

1. 用戶名和密碼被過濾器獲取到&#xff0c;封裝成 Authentication ,通常情況下是 UsernamePasswordAuthenticationToken 這個實現類。 2. AuthenticationManager 身份管理器負責驗證這個 Authentication 3. 認證成功后&#xff0c; AuthenticationManager 身份管理器返回一…

Python爬蟲實戰:研究xmltodict庫相關技術

1. 引言 1.1 研究背景與意義 氣象數據是環境研究、農業生產、城市規劃等領域的重要基礎。隨著互聯網技術的發展,越來越多的氣象數據以 XML 格式在網絡上公開。XML(可擴展標記語言)因其結構化和自描述性的特點,成為數據交換的標準格式之一。然而,這些數據通常分散在不同的…

中小企業無線局域網絡搭建與優化指南

1. 引言&#xff1a;無線網絡——驅動中國中小企業數字化轉型的引擎 無線網絡已成為現代企業運營的基礎設施&#xff0c;直接影響員工工作效率和客戶體驗。隨著Wi-Fi7技術的成熟和普及&#xff0c;中小企業網絡建設正迎來全新機遇。在數字經濟浪潮席卷全球的今天&#xff0c;無…

【已解決】python的kafka-python包連接kafka報認證失敗

先說原因&#xff1a;安裝python包的時候&#xff0c;多裝了一個kafka的包&#xff1a;kafka 1.3.5 我把py文件打包成二進制文件&#xff0c;在linux上執行就一直報認證失敗&#xff0c;后來確認登錄信息、認證方式沒有問題&#xff0c;把這個kafka包卸載…

傳輸層協議TCP(下)

上一篇https://blog.csdn.net/Small_entreprene/article/details/148193741?sharetypeblogdetail&sharerId148193741&sharereferPC&sharesourceSmall_entreprene&sharefrommp_from_link 接下來&#xff0c;我們來談論TCP具體的機制&#xff01; 具體TCP機制 …