Tôi đã nghe nói rằng việc lộ ID cơ sở dữ liệu (ví dụ: trong URL) là một rủi ro bảo mật, nhưng tôi gặp khó khăn để hiểu tại sao.
Bất kỳ ý kiến hoặc liên kết về lý do tại sao nó là một rủi ro, hoặc tại sao nó không?
EDIT: tất nhiên quyền truy cập nằm trong phạm vi, ví dụ: nếu bạn không thể thấy tài nguyên, foo?id=123
bạn sẽ gặp một trang lỗi. Nếu không, chính URL phải là bí mật.
EDIT: nếu URL là bí mật, có thể nó sẽ chứa mã thông báo được tạo có thời gian giới hạn, ví dụ: hợp lệ trong 1 giờ và chỉ có thể được sử dụng một lần.
EDIT (vài tháng sau): cách thực hành ưa thích hiện tại của tôi cho việc này là sử dụng UUIDS cho ID và phơi bày chúng. Nếu tôi đang sử dụng các số liên tiếp (thường để thực hiện trên một số DB) làm ID tôi thích tạo mã thông báo UUID cho mỗi mục nhập dưới dạng khóa thay thế và phơi bày điều đó.