2009-10-18 2 views
0

На моем сайте люди могут задавать вопросы, и ответы могут быть опубликованы. Вопрос в example.com/question/title. Чтобы отправить ответ, форма отправляется в example.com/question/post_answer/7, причем 7 - это идентификатор вопроса.Целостность приложения и неправильный ввод текста

Подтверждение выполняется здесь, чтобы убедиться, что был введен ответ. Если нет, он возвращает вас к исходному URL-адресу. Таким образом, путь post_answer никогда не «просматривается» пользователями, но они могут получить к нему доступ.

Теперь мне интересно, если пользователь изменит идентификатор вопроса до 8, он может отправить ответ на другой вопрос.

Это не действительно проблема безопасности, поскольку все пользователи достигнут ответа на другой вопрос. Но мне интересно - в таком сценарии, как вы остановите такой тип подделки: сохраняете идентификатор вопроса в сеансе и показываете ошибку, если он будет изменен?

Мысли?

+0

Если вы можете сохранить идентификатор вопроса в сеансе, нет необходимости передавать его пользователю. Тогда такого рода атаки больше не существует. – tangens

ответ

0

Сессии - один из способов. Другой - использовать какой-то код аутентификации сообщения (MAC). Обычно вы должны использовать HMAC и хранить код в файле cookie или части URL (т. Е. Параметр GET).

Смежные вопросы