2013-07-04 27 views
6

Các tài liệu nói rằng nó phải là bí mật, nhưng mã của tôi được xuất bản trên github.Tôi nên sử dụng thông tin gì cho mật khẩu express.cookieParser()?

Có thể app.use(express.cookieParser(crypto.randomBytes(64).toString())) hoạt động hay bí mật sẽ giống nhau khi máy chủ khởi động lại? Tôi có nên lưu trữ bí mật trên đĩa không? Làm thế nào bí mật nó cần phải được?

Trả lời

4

Để giữ bí mật bí mật của bạn, bạn có thể đặt nó trong một biến môi trường (gọi tắt là 'COOKIE_SECRET' ví dụ) và sau đó bạn có thể làm:

var cookieSecret = process.env.COOKIE_SECRET; 

app.use(express.cookieParser(cookieSecret)); 

(Hoặc nếu bạn muốn có một thiết lập cấu hình phức tạp hơn , bạn có thể muốn xem nconf. Nó hợp nhất cấu hình trên các biến môi trường, đối số dòng lệnh và tệp phẳng).

3

Sẽ giống nhau nếu bạn muốn giữ phiên sau khi khởi động lại. Bí mật được sử dụng để xác thực dữ liệu phiên trên máy chủ để ngăn chặn dữ liệu cookie không đúng định dạng. Có thể bạn có thể ghi dữ liệu ngẫu nhiên của mình vào một tệp và đọc bí mật từ tệp khi bắt đầu ứng dụng và nếu tệp tồn tại, bạn không tạo khóa ngẫu nhiên mới.

3

Bí mật được sử dụng để phân tích cú pháp và đối sánh cookie phiên. Nếu bạn đang thay đổi nó sau khi khởi động lại, sau đó nó sẽ làm cho các phiên trước bị vô hiệu vì cookie sẽ không hợp lệ với bí mật mới.

Tuy nhiên, trong trường hợp nếu cookie bị đánh cắp, bạn có thể xem xét thay đổi bí mật, loại bảo vệ bạn nào. Nó không phải là thực hành tốt để lưu trữ bí mật bất cứ nơi nào ngoài nơi mà nó là cần thiết. Tương tự với bất kỳ bí mật và muối nào, việc truy cập vào chúng không tốt cho bảo mật của bạn.