Tôi đang viết một ứng dụng web sẽ gửi yêu cầu qua AJAX và muốn khóa các cuộc gọi đó. Sau một nghiên cứu nhỏ, tôi đang xem xét sử dụng một số dạng mã thông báo ngẫu nhiên (chuỗi) để được trả lại cùng với yêu cầu (GUID?). Dưới đây là các phần quan trọng trong thuật toán của tôi:Đảm bảo yêu cầu AJAX qua GUID
- Chỉ định mã thông báo cho biến JavaScript (phía máy chủ được tạo).
- Ngoài ra, lưu trữ mã thông báo đó trong một DB và cung cấp cho nó một khoảng thời gian hợp lệ (tức là 10 phút).
- Nếu mã thông báo vẫn chưa được sử dụng và nằm trong khoảng thời gian hợp lệ, hãy cho phép cuộc gọi.
- Trả lại thông tin được yêu cầu nếu hợp lệ, nếu không, hãy ghi lại yêu cầu và bỏ qua nó.
Với con mắt hướng tới bảo mật, điều này có hợp lý không? Đối với mã thông báo, GUID có hoạt động không - nó có phải là thứ gì khác không? Có cách nào tốt để mã hóa các biến trong yêu cầu không?
EDIT:
Tôi hiểu rằng những yêu cầu AJAX sẽ không thực sự "an toàn" nhưng tôi muốn thêm an ninh cơ bản theo nghĩa mà tôi muốn để ngăn chặn người khác sử dụng dịch vụ tôi có ý định viết. Mã thông báo ngẫu nhiên này sẽ là một hàng phòng thủ cơ bản, chống lại các cuộc gọi lạm dụng. Dữ liệu sẽ được yêu cầu (và thậm chí được gửi để tạo dữ liệu như vậy) sẽ KHÔNG được lặp lại nhiều lần.
Có thể tôi đã sai khi sử dụng GUID ... làm thế nào về một chuỗi được tạo ngẫu nhiên (mã thông báo)?
Linh cảm của tôi là bạn đang nói về chính xác những gì tôi đang theo sau. Bạn có thể xây dựng và có thể bao gồm một số liên kết không? Cảm ơn đã giúp đỡ! – Aaron
Sử dụng thư viện của riêng tôi, tôi có thể mã hóa các chuỗi và tại trung tâm của nó, đây chính xác là những gì tôi đang nói đến. Bạn hiểu ý tôi là gì ... Bạn có nghĩ rằng bản ngã của tôi đáng giá? Nếu vậy, bạn đề nghị làm gì để tạo ra chuỗi ngẫu nhiên, hoặc bạn đề nghị các tùy chọn nào khác? – Aaron
@Aaron đã thêm cập nhật, đây là kịch bản để ký thông tin không mã hóa, ngoài ra tôi cho rằng bạn không thực hiện mã hóa tùy chỉnh trong thư viện của mình. Thông tin để xác định yêu cầu không phải là ngẫu nhiên, vì nó đang được ký. – eglasius