2012-01-04 25 views
13

Tôi đã đọc rằng khung chơi giải quyết vấn đề cố định phiên bằng cách băm id phiên với khóa ứng dụng, nhưng nó có cung cấp bất kỳ cơ chế nào để ngăn chặn việc chiếm đoạt phiên hay là điều này còn lại cho người triển khai không?Không chơi! khuôn khổ có bất kỳ cơ chế tích hợp nào để ngăn chặn tấn công phiên không?

+0

Cho đến nay tôi có một có và không, vì vậy rõ ràng là có một số thông tin mâu thuẫn ở đây. – marchaos

+0

Tôi vẫn cảm thấy rằng câu hỏi này chưa được trả lời, nhưng tiếc là tôi phải trao tiền thưởng trong mọi trường hợp. Nếu ai đó có thể trả lời với một câu trả lời dứt khoát, điều đó sẽ rất tuyệt. – marchaos

Trả lời

3

Tài liệu phát có phần tốt về bảo mật, thay vì trùng lặp, dưới đây là liên kết - http://www.playframework.org/documentation/1.2.4/security.

Nó bao gồm

  • XSS
  • SQL Injection
  • an ninh phiên
  • chéo trang web yêu cầu giả mạo

Một số bạn phải thực hiện bản thân, những người khác thì không.

Câu hỏi cụ thể của bạn về việc chiếm đoạt phiên là tự động.

Phiên là băm khóa/giá trị, được ký nhưng không được mã hóa. Điều đó có nghĩa là miễn là bí mật của bạn được an toàn, không thể cho một bên thứ ba thực hiện các phiên giả mạo.

+0

Cảm ơn câu trả lời. Tôi không thực sự thấy làm thế nào băm các giá trị quan trọng và ký nó chống lại các phím ứng dụng ngăn chặn ai đó ăn cắp cookie của bạn và sử dụng nó. Có lẽ tôi đang thiếu một cái gì đó? – marchaos

+0

bởi vì, nếu ai đó tampers với nó, họ không biết băm, do đó, giá trị băm trở nên không hợp lệ, và chơi biết phiên đã trở thành vô hiệu. – Codemwnci

+2

Điều gì xảy ra nếu họ không giả mạo nó. Nếu tôi đánh cắp cookie của bạn và không thay đổi bất kỳ giá trị nào trong đó, thì chắc chắn vì mã băm vẫn hợp lệ (giả sử điều này được lưu trữ trong cookie), tôi có thể xác thực bằng cách sử dụng các giá trị của bạn. – marchaos

3

Không, không có cách nào được xây dựng để ngăn chặn sự xâm nhập của phiên ngay khi có thể nắm bắt cookie phiên (thông qua đánh hơi/người đàn ông ở giữa). Có một số cách để làm cho nó khó khăn hơn, ví dụ:

  • chỉ sử dụng https
  • thiết application.session.httpOnly trong application.conf

Một approache để làm cho nó khó khăn hơn là: - lưu trữ ip/tác nhân người dùng/độ phân giải/công cụ khác hoặc mã băm cũng trong phiên .. trong bộ điều khiển của bạn, sau đó kiểm tra xem người dùng truy cập trang web của bạn vẫn tạo lại cùng một băm ... là với những người đang sử dụng proxy chẳng hạn thay đổi ip trên bay vì clustering.

Một mẹo nhỏ bạn có thể thử sử dụng: (chỉ hoạt động trong các trình duyệt gần đây) Khi người dùng đăng nhập, lưu trữ một số nội dung trong bộ nhớ cục bộ HTML5. Sửa đổi các cuộc gọi Ajax của bạn để cung cấp thông tin này từ bộ nhớ cục bộ. Nếu thông tin bị thiếu/không hợp lệ, bạn có thể làm mất hiệu lực toàn bộ phiên. Nhưng bạn phải đảm bảo rằng séc chỉ được áp dụng cho các yêu cầu từ trình duyệt HTML5.

hy vọng điều này sẽ giúp ích một chút.

+0

Lưu trữ ip và tác nhân người dùng là một ý tưởng tồi. Xem http://stackoverflow.com/questions/969330/including-user-ip-addr-for-hash-cookie-value-bad-idea – marchaos

+0

bạn liên kết địa chỉ những gì tôi đã nói với "vấn đề thực sự duy nhất là với những người đang sử dụng proxy, ví dụ: thay đổi ip khi đang di chuyển vì phân cụm. " Không có gì chống lại việc lưu trữ băm của tác nhân người dùng, bởi vì nếu thay đổi đó trong phiên, thì phiên bị tấn công. Tất cả phụ thuộc vào lượng năng lượng bạn sẵn sàng đưa vào và nếu nó thực sự đáng giá. Việc thay đổi/xóa dữ liệu nhạy cảm sẽ chỉ có thể thực hiện thông qua SSL và cung cấp mật khẩu. –

Các vấn đề liên quan