คำถามติดแท็ก jwt

JSON Web Token (JWT ออกเสียงว่า "jot") เป็นประเภทการพิสูจน์ตัวตนที่ใช้โทเค็นที่เกิดขึ้นใหม่ซึ่งใช้ในสภาพแวดล้อมที่ จำกัด พื้นที่เช่น HTTP Authorization headers

11
JWT (JSON Web Token) การยืดเวลาหมดอายุโดยอัตโนมัติ
ฉันต้องการใช้การตรวจสอบตาม JWT กับ REST API ใหม่ของเรา แต่เนื่องจากการหมดอายุถูกกำหนดในโทเค็นจึงเป็นไปได้ที่จะยืดออกโดยอัตโนมัติหรือไม่ ฉันไม่ต้องการให้ผู้ใช้ลงชื่อเข้าใช้ทุก ๆ X นาทีหากพวกเขาใช้แอปพลิเคชันในช่วงเวลานั้นอย่างแข็งขัน นั่นจะเป็น UX ขนาดใหญ่ที่ล้มเหลว แต่การยืดเวลาการหมดอายุสร้างโทเค็นใหม่ (และโทเค็นเก่ายังคงใช้ได้จนกว่าจะหมดอายุ) และสร้างโทเค็นใหม่หลังจากคำขอแต่ละครั้งฟังดูไร้สาระสำหรับฉัน ฟังดูเหมือนปัญหาด้านความปลอดภัยเมื่อมีโทเค็นมากกว่าหนึ่งอันถูกต้องในเวลาเดียวกัน แน่นอนฉันสามารถยกเลิกใช้เก่าใช้บัญชีดำ แต่ฉันจะต้องเก็บโทเค็น และข้อดีอย่างหนึ่งของ JWT ก็คือไม่มีที่เก็บข้อมูล ฉันพบวิธีที่ Auth0 แก้ไขได้ พวกเขาใช้โทเค็น JWT ไม่เพียง แต่ยังเป็นโทเค็นรีเฟรช: https://docs.auth0.com/refresh-token แต่อีกครั้งในการดำเนินการนี้ (ไม่มี Auth0) ฉันต้องจัดเก็บโทเค็นการรีเฟรชและรักษาวันหมดอายุไว้ แล้วประโยชน์ที่แท้จริงคืออะไร? ทำไมไม่มีโทเค็นเดียวเท่านั้น (ไม่ใช่ JWT) และเก็บการหมดอายุไว้บนเซิร์ฟเวอร์ มีตัวเลือกอื่น ๆ อีกไหม? การใช้ JWT ไม่เหมาะกับสถานการณ์นี้หรือไม่?

22
การทำให้โทเค็น JSON Web Tokens ไม่ถูกต้อง
สำหรับโครงการใหม่ node.js ที่ฉันกำลังทำงานฉันกำลังคิดที่จะเปลี่ยนจากวิธีเซสชันแบบใช้คุกกี้ (โดยสิ่งนี้ฉันหมายถึงการจัดเก็บรหัสไปยังที่เก็บคีย์ - ค่าที่มีเซสชันผู้ใช้ในเบราว์เซอร์ของผู้ใช้) สู่แนวทางเซสชันที่ใช้โทเค็น (ไม่มีที่เก็บคีย์ - ค่า) โดยใช้ JSON Web Tokens (jwt) โครงการนี้เป็นเกมที่ใช้ socket.io - การมีเซสชันที่ใช้โทเค็นจะเป็นประโยชน์ในสถานการณ์ดังกล่าวซึ่งจะมีช่องทางการสื่อสารหลายช่องในเซสชันเดียว (เว็บและ socket.io) หนึ่งจะให้โทเค็น / เซสชั่นไม่ถูกต้องจากเซิร์ฟเวอร์โดยใช้วิธีการ jwt? ฉันยังต้องการที่จะเข้าใจถึงข้อผิดพลาด / การโจมตีที่พบบ่อย (หรือผิดปกติ) ที่ฉันควรระวังด้วยกระบวนทัศน์ประเภทนี้ ตัวอย่างเช่นหากกระบวนทัศน์นี้มีความเสี่ยงต่อการโจมตีประเภทเดียวกัน / แตกต่างกันกับวิธีการจัดเก็บเซสชัน / คุกกี้ตามวิธี ดังนั้นบอกว่าฉันมีดังต่อไปนี้ (ดัดแปลงมาจากสิ่งนี้และสิ่งนี้ ): เข้าสู่ระบบร้านค้าเซสชัน: app.get('/login', function(request, response) { var user = {username: request.body.username, password: request.body.password …

9
อะไรคือความแตกต่างที่สำคัญระหว่างการตรวจสอบ JWT และ OAuth?
ฉันมี SPA ใหม่พร้อมโมเดลการพิสูจน์ตัวตนแบบไร้รัฐโดยใช้ JWT ฉันมักถูกขอให้อ้างถึง OAuth สำหรับกระบวนการตรวจสอบสิทธิ์เช่นขอให้ฉันส่ง 'โทเค็นโทเค็น' สำหรับทุกคำขอแทนที่จะเป็นส่วนหัวโทเค็นธรรมดา แต่ฉันคิดว่า OAuth นั้นซับซ้อนกว่าการรับรองความถูกต้อง JWT ธรรมดา อะไรคือความแตกต่างที่สำคัญฉันควรทำให้การตรวจสอบ JWT มีลักษณะเหมือน OAuth หรือไม่ ฉันใช้ JWT เป็น XSRF-TOKEN ของฉันเพื่อป้องกัน XSRF แต่ฉันถูกขอให้แยกพวกเขาหรือไม่ ฉันควรแยกพวกเขาออกจากกันหรือไม่? ความช่วยเหลือใด ๆ ที่นี่จะได้รับการชื่นชมและอาจนำไปสู่ชุดแนวทางสำหรับชุมชน

7
หากคุณสามารถถอดรหัส JWT พวกเขาจะปลอดภัยได้อย่างไร?
ถ้าฉันได้รับJWTและฉันสามารถถอดรหัสน้ำหนักบรรทุกได้ความปลอดภัยนั้นเป็นอย่างไร ฉันไม่สามารถดึงโทเค็นออกจากส่วนหัวถอดรหัสและเปลี่ยนข้อมูลผู้ใช้ในเพย์โหลดและส่งกลับมาพร้อมกับความลับที่เข้ารหัสที่ถูกต้องเหมือนกันหรือไม่ ฉันรู้ว่าพวกเขาต้องปลอดภัย แต่ฉันแค่อยากจะเข้าใจเทคโนโลยีจริงๆ ฉันพลาดอะไรไป

5
การพิสูจน์ตัวตน JWT สำหรับ ASP.NET Web API
ฉันพยายามสนับสนุนโทเค็นผู้ถือ JWT (JSON Web Token) ในแอปพลิเคชันเว็บ API ของฉันและฉันหลงทาง ฉันเห็นการสนับสนุน. NET Core และสำหรับแอปพลิเคชัน OWIN ฉันกำลังโฮสต์แอปพลิเคชันของฉันใน IIS ฉันจะบรรลุโมดูลการรับรองความถูกต้องนี้ในแอปพลิเคชันของฉันได้อย่างไร มีวิธีใดบ้างที่ฉันสามารถใช้การ<authentication>กำหนดค่าที่คล้ายกับวิธีที่ฉันใช้การตรวจสอบสิทธิ์แบบฟอร์ม / Windows

4
RS256 กับ HS256: ความแตกต่างคืออะไร?
ฉันใช้ Auth0 เพื่อจัดการการพิสูจน์ตัวตนในแอปพลิเคชันเว็บของฉัน ฉันใช้ ASP.NET Core v1.0.0 และ Angular 2 rc5 และฉันไม่ค่อยรู้เกี่ยวกับการรับรองความถูกต้อง / ความปลอดภัยโดยทั่วไป ในเอกสาร Auth0 สำหรับ ASP.NET Core Web Apiมีสองตัวเลือกสำหรับอัลกอริทึม JWT คือ RS256 และ HS256 นี่อาจเป็นคำถามที่โง่ แต่: ความแตกต่างระหว่าง RS256 และ HS256 คืออะไร? บางกรณีการใช้งาน (ถ้ามี) คืออะไร?

2
ประเภทส่วนหัวการอนุญาต HTTP ที่ดีที่สุดสำหรับ JWT
ฉันสงสัยว่าAuthorizationประเภทหัว HTTP ที่เหมาะสมที่สุดสำหรับโทเค็น JWTคืออะไร Basicหนึ่งในชนิดที่นิยมอาจจะมากที่สุดคือ ตัวอย่างเช่น Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== มันจัดการสองพารามิเตอร์เช่นเข้าสู่ระบบและรหัสผ่าน ดังนั้นจึงไม่เกี่ยวข้องกับโทเค็น JWT นอกจากนี้ฉันได้ยินเกี่ยวกับประเภทผู้ถือเช่น: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ อย่างไรก็ตามฉันไม่รู้ความหมายของมัน มันเกี่ยวข้องกับหมีหรือไม่? มีวิธีการใช้โทเค็น JWT ในAuthorizationส่วนหัวHTTP หรือไม่ เราควรใช้Bearerหรือควรลดความซับซ้อนและเพียงแค่ใช้: Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ ขอบคุณ แก้ไข: หรืออาจเป็นเพียงJWTส่วนหัว HTTP: JWT: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
228 http-headers  jwt 

16
วิธีการถอดรหัส jwt token ใน javascript โดยไม่ต้องใช้ห้องสมุด
ฉันจะถอดรหัสน้ำหนักบรรทุกของ JWT โดยใช้ JavaScript ได้อย่างไร ไม่มีห้องสมุด ดังนั้นโทเค็นเพิ่งส่งคืนวัตถุเพย์โหลดที่สามารถใช้งานโดยแอปส่วนหน้าของฉัน โทเค็นตัวอย่าง: xxxxxxxxx.XXXXXXXX.xxxxxxxx และผลลัพธ์คือเพย์โหลด: {exp: 10012016 name: john doe, scope:['admin']}
209 javascript  jwt 

4
เกิดอะไรขึ้นถ้า JWT ถูกขโมย?
ฉันพยายามใช้การพิสูจน์ตัวตนแบบไร้รัฐกับ JWT สำหรับ RESTful API ของฉัน AFAIK, JWT นั้นเป็นสตริงเข้ารหัสที่ส่งผ่านเป็นส่วนหัว HTTP ในระหว่างการเรียกใช้ REST แต่ถ้ามีคนดักฟังที่เห็นคำขอและขโมยโทเค็นล่ะ? จากนั้นเขาจะสามารถปลอมแปลงคำขอด้วยตัวตนของฉันได้อย่างไร อันที่จริงความกังวลนี้ใช้กับทุกการตรวจสอบ token-based จะป้องกันได้อย่างไร ช่องทางที่ปลอดภัยเช่น HTTPS

12
ส่งโทเค็น JWT ในส่วนหัวด้วยบุรุษไปรษณีย์
ผมทดสอบการดำเนินการของ JWT Token รักษาความปลอดภัยตามออกต่อไปนี้บทความ ฉันได้รับโทเค็นจากเซิร์ฟเวอร์ทดสอบเรียบร้อยแล้ว ฉันไม่สามารถทราบได้ว่าจะให้โปรแกรมไคลเอ็นต์ POSTMAN REST ของ Chrome ส่งโทเค็นในส่วนหัวได้อย่างไร คำถามของฉันมีดังนี้: 1) ฉันใช้ชื่อส่วนหัวที่ถูกต้องและ / หรืออินเตอร์เฟซ POSTMAN หรือไม่ 2) ฉันต้องใช้รหัส 64 เข้ารหัสโทเค็นหรือไม่ ฉันคิดว่าฉันสามารถส่งโทเค็นกลับมาได้
169 express  jwt  postman 

3
จะเก็บ JWT ในเบราว์เซอร์ได้ที่ไหน จะป้องกัน CSRF ได้อย่างไร
ฉันรู้ว่าการตรวจสอบตามคุกกี้ สามารถใช้การตั้งค่า SSL และ HttpOnly เพื่อป้องกันการตรวจสอบตามคุกกี้จาก MITM และ XSS อย่างไรก็ตามจำเป็นต้องใช้มาตรการพิเศษเพิ่มเติมเพื่อป้องกันจาก CSRF พวกมันซับซ้อนเล็กน้อย ( อ้างอิง ) เมื่อเร็ว ๆ นี้ฉันค้นพบว่า JSON Web Token (JWT) ค่อนข้างร้อนในฐานะโซลูชั่นสำหรับการตรวจสอบสิทธิ์ ฉันรู้เกี่ยวกับการเข้ารหัสถอดรหัสและตรวจสอบ JWT อย่างไรก็ตามฉันไม่เข้าใจว่าทำไมบางเว็บไซต์ / บทช่วยสอนไม่จำเป็นต้องมีการป้องกัน CSRF หากใช้ JWT ฉันได้อ่านค่อนข้างมากและพยายามสรุปปัญหาด้านล่าง ฉันแค่ต้องการให้ใครบางคนสามารถให้ภาพรวมของ JWT และชี้แจงแนวคิดที่ฉันเข้าใจผิดเกี่ยวกับ JWT หาก JWT ถูกเก็บไว้ในคุกกี้ฉันคิดว่าเป็นเช่นเดียวกับการรับรองความถูกต้องที่อิงกับคุกกี้ยกเว้นว่าเซิร์ฟเวอร์ไม่จำเป็นต้องมีเซสชันเพื่อตรวจสอบคุกกี้ / โทเค็น ยังมีความเสี่ยงเกี่ยวกับ CSRF หากไม่มีมาตรการพิเศษดำเนินการ JWT ไม่ถูกจัดเก็บในคุกกี้หรือไม่? หาก JWT ถูกเก็บไว้ใน localStorage …

8
การเก็บ jwt ใน localStorage ด้วย reactjs ปลอดภัยหรือไม่?
ฉันกำลังสร้างแอปพลิเคชันหน้าเดียวโดยใช้ reactjs ฉันอ่านว่าสาเหตุหลายประการที่ไม่ได้ใช้ localStorage เป็นเพราะช่องโหว่ XSS เนื่องจาก React หนีอินพุตทั้งหมดของผู้ใช้ตอนนี้จะปลอดภัยหรือไม่ที่จะใช้ localStorage

3
Spring Security Filter Chain ทำงานอย่างไร
ฉันตระหนักดีว่าการรักษาความปลอดภัยของ Spring สร้างขึ้นจากชุดตัวกรองซึ่งจะสกัดกั้นคำขอตรวจจับ (ไม่มี) การตรวจสอบสิทธิ์เปลี่ยนเส้นทางไปยังจุดเข้าใช้งานการตรวจสอบสิทธิ์หรือส่งคำขอไปยังบริการอนุญาตและในที่สุดก็ปล่อยให้คำขอเข้าสู่ servlet หรือโยนข้อยกเว้นด้านความปลอดภัย (ไม่ได้รับการพิสูจน์ตัวตนหรือไม่ได้รับอนุญาต) DelegatingFitlerProxyจะรวมตัวกรองเหล่านี้เข้าด้วยกัน ในการดำเนินงานของพวกเขาเหล่านี้เข้าถึงบริการกรองเช่นUserDetailsServiceและAuthenticationManager ตัวกรองหลักในห่วงโซ่คือ (ตามลำดับ) SecurityContextPersistenceFilter (กู้คืนการพิสูจน์ตัวตนจาก JSESSIONID) UsernamePasswordAuthenticationFilter (ดำเนินการตรวจสอบสิทธิ์) ExceptionTranslationFilter (จับข้อยกเว้นด้านความปลอดภัยจาก FilterSecurityInterceptor) FilterSecurityInterceptor (อาจมีข้อยกเว้นในการพิสูจน์ตัวตนและการอนุญาต) ฉันสับสนว่าตัวกรองเหล่านี้ใช้อย่างไร สำหรับการเข้าสู่ระบบแบบฟอร์มที่มีให้ในฤดูใบไม้ผลิUsernamePasswordAuthenticationFilterจะใช้สำหรับ/ loginเท่านั้นและตัวกรองหลังไม่ได้ใช่หรือไม่? ที่ไม่ใช้แบบฟอร์มการเข้าสู่ระบบองค์ประกอบ namespace อัตโนมัติกำหนดค่าตัวกรองเหล่านี้หรือไม่ ทุกคำขอ (รับรองความถูกต้องหรือไม่) เข้าถึงFilterSecurityInterceptorสำหรับ URL ที่ไม่เข้าสู่ระบบหรือไม่ จะเกิดอะไรขึ้นถ้าฉันต้องการรักษาความปลอดภัย REST API ด้วยJWT-tokenซึ่งดึงมาจากการเข้าสู่ระบบ? ฉันต้องกำหนดค่าhttpแท็กคอนฟิกูเรชันเนมสเปซสองแท็กสิทธิ์? หนึ่งสำหรับการเข้าสู่ระบบ /ด้วยUsernamePasswordAuthenticationFilterและอีกคนหนึ่งสำหรับส่วนที่เหลือของ URL JwtAuthenticationFilterกับที่กำหนดเอง การกำหนดค่าสองhttpองค์ประกอบสร้างสองspringSecurityFitlerChainsหรือไม่ ถูกUsernamePasswordAuthenticationFilterปิดโดยปริยายจนผมประกาศform-login? ฉันจะแทนที่SecurityContextPersistenceFilterด้วยตัวกรองซึ่งจะได้รับAuthenticationจากที่มีอยู่JWT-tokenแทนที่จะเป็นJSESSIONIDอย่างไร

3
โฟลว์โทเค็นการรีเฟรช JWT
ฉันกำลังสร้างแอพมือถือและกำลังใช้ JWT สำหรับการพิสูจน์ตัวตน ดูเหมือนว่าวิธีที่ดีที่สุดในการทำเช่นนี้คือการจับคู่โทเค็นการเข้าถึง JWT กับโทเค็นการรีเฟรชเพื่อให้ฉันสามารถหมดอายุโทเค็นการเข้าถึงได้บ่อยเท่าที่ฉันต้องการ โทเค็นการรีเฟรชมีลักษณะอย่างไร มันเป็นสตริงสุ่มหรือไม่? สตริงนั้นเข้ารหัสหรือไม่ เป็น JWT อื่นหรือไม่? โทเค็นการรีเฟรชจะถูกเก็บไว้ในฐานข้อมูลบนโมเดลผู้ใช้สำหรับการเข้าถึงถูกต้องหรือไม่? ดูเหมือนว่าควรเข้ารหัสในกรณีนี้ ฉันจะส่งโทเค็นการรีเฟรชกลับหลังจากล็อกอินของผู้ใช้แล้วให้ไคลเอนต์เข้าถึงเส้นทางแยกต่างหากเพื่อดึงโทเค็นการเข้าถึงหรือไม่


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.