показ самого ключа не является плохим по своей сути, поскольку он не имеет реального смысла, но показывать средства для получения доступа к элементу - это плохо.
например, скажем, у вас был интернет-магазин, в котором продавались вещи от 2 продавцов. У торговца A были предметы (1, 3, 5, 7), а у торговца B - предметы (2, 4, 5, 8).
Если я делаю покупки на сайте Продавца А и вижу:
http://server/viewitem.aspx?id=1
Тогда я мог бы попытаться поиграть с ним и набрать:
http://server/viewitem.aspx?id=2
Это может позволить мне получить доступ к элементу, к которому я не должен обращаться, поскольку я делаю покупки в Merchant A, а не B. В целом, позволяя пользователям возиться с подобными вещами, это может привести к проблемам безопасности. Еще один краткий пример - сотрудники, которые могут просматривать свою личную информацию (id = 382), но они вводят чужой идентификатор, чтобы перейти непосредственно к чужому профилю.
Теперь, сказав, что ... это неплохо, если в систему встроены проверки безопасности, которые проверяют, что люди делают то, что им положено (например, не делают покупки у другого продавца или не видят другого сотрудника). ).
Один механизм - хранить информацию в сессиях, но некоторым это не нравится. Я не веб-программист, поэтому я не буду вдаваться в подробности :)
Главное, чтобы система была защищена. Никогда не доверяйте данным, полученным от пользователя.