Я слышал, что выявление идентификаторов базы данных (например, в URL-адресах) представляет собой угрозу безопасности, но мне сложно понять, почему.
Любые мнения или ссылки о том, почему это риск, или почему это не так?
EDIT: конечно, доступ ограничен, например. если вы не видите ресурс foo?id=123
, вы получите страницу с ошибкой. В противном случае сам URL должен быть секретным.
EDIT: если URL-адрес является секретным, он, вероятно, будет содержать сгенерированный токен, который имеет ограниченное время жизни, например. действителен в течение 1 часа и может использоваться только один раз.
EDIT (несколько месяцев спустя): моя текущая предпочтительная практика для этого - использовать UUIDS для идентификаторов и разоблачить их. Если я использую последовательные номера (обычно для производительности на некоторых БД) в качестве идентификаторов, мне нравится генерировать токен UUID для каждой записи в качестве альтернативного ключа и выставлять это.