- Всегда предполагайте, что пользователь может это сделать.
- Всегда проверяйте в серверном коде, что пользователю разрешено делать то, что пользователь пытается сделать, прежде чем делать это.
Это в основном это. Если пользователь вручную изменяет на стороне клиента значения или вручную поделки пост с их собственными ценностями, одна из двух вещей должно произойти:
- Если пользователю разрешено выполнять это действие, действие выполняется, а сервер отвечает как обычно.
- Если пользователю не разрешено выполнять это действие, сервер отвечает на ошибку.
Что произойдет, если пользователь запросит нормальную функциональность сайта для редактирования этой записи? Это именно то, что должно произойти, если пользователь пытается сделать это вручную.
По существу в методе действия контроллера, где выполняется редактирование, проверьте разрешения, чтобы убедиться, что пользователь разрешил выполнить это редактирование первым. Не полагайтесь на это до, вызывается метод действия или предполагается, что возвращенный вами вид является тем, из которого вызывается метод действия. В каждом индивидуальном методе действия вы проверяете разрешения, необходимые для этого действия.
Если пользователь может изменить объект, на который у него нет прав на изменение, тогда у вас есть серьезная проблема безопасности, которая важнее, чем беспокоиться о том, чтобы остановить кого-либо, изменяющего скрытое значение. –
Возможный дубликат http://stackoverflow.com/questions/2632626/how-to-detect-hidden-field-tampering –