ฉันไม่รู้อะไรเลยเกี่ยวกับการเข้ารหัส ฉันสงสัยว่าความลับของเซสชั่นคืออะไร
ฉันเห็นรหัสดังนี้:
app.use(express.session({
store: mongoStore({
url: app.set('db-uri')
}),
secret: 'topsecret'
}));
ความลับคืออะไรและฉันควรเปลี่ยน?
ฉันไม่รู้อะไรเลยเกี่ยวกับการเข้ารหัส ฉันสงสัยว่าความลับของเซสชั่นคืออะไร
ฉันเห็นรหัสดังนี้:
app.use(express.session({
store: mongoStore({
url: app.set('db-uri')
}),
secret: 'topsecret'
}));
ความลับคืออะไรและฉันควรเปลี่ยน?
คำตอบ:
ใช่คุณควรเปลี่ยน ความลับในเซสชั่นการเชื่อมต่อจะถูกใช้เพียงเพื่อคำนวณกัญชา หากไม่มีสตริงการเข้าถึงเซสชันจะถูก "ปฏิเสธ" เป็นหลัก ดูเอกสารการเชื่อมต่อซึ่งน่าจะช่วยได้เล็กน้อย
topsecret
ฉันคือการที่คุณไม่ควรให้เริ่มต้นของสิ่งที่ต้องการ ความลับควรเป็นสตริงอักขระแบบสุ่ม ตามหลักการแล้วคุณควรเปลี่ยนเป็นระยะในกรณีที่มีการค้นพบ อย่างไรก็ตามสิ่งนี้ต้องการการสนับสนุนสำหรับการหมุนเวียนข้อมูลลับดังนั้นคุณจึงไม่ทำให้เซสชันที่มีอยู่เป็นโมฆะในทันที นั่นคือความลับสองเซสชันควรได้รับการพิจารณาว่าใช้ได้พร้อมกัน จากความรู้ของฉัน Express ไม่รองรับการหมุนความลับในขณะนี้
res.cookie('name', 'value', {signed: true})
ความลับนี้ใช้เพื่อแฮชเซสชันกับ HMAC:
https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L256
จากนั้นเซสชันจะได้รับการป้องกันจากการลักลอบเซสชันโดยการตรวจสอบลายนิ้วมือกับแฮชด้วยความลับ:
https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L281-L287
คีย์ลับโดยทั่วไปใช้สำหรับเข้ารหัสข้อมูลในเซสชัน