У меня есть веб-сайт, где люди могут размещать вотум так:CSRF (запрос Межсайтовые подлог) пример атаки и профилактика в PHP
http://mysite.com/vote/25
Это поместит голосование по пункту 25, я хочу только сделайте это доступным для зарегистрированных пользователей, и только если они захотят это сделать. Теперь я знаю, когда кто-то занят на веб-сайте, а кто-то дает им ссылку, как это:
http://mysite.com/vote/30
то голосование будет места для него по этому пункту без его желания сделать это.
Я прочитал explanation on the OWASP website, но я не очень понимаю, что
Это пример CSRF, и как я могу предотвратить это. Лучшее, что я могу придумать, это добавить что-то к ссылке, как хэш. Но это будет очень раздражать, чтобы положить что-то на конец всех ссылок. Нет другого способа сделать это.
Другое дело, может быть, кто-то может дать мне еще один пример этого, потому что веб-сайт выглядит довольно фугом для меня.
Вы правы, это о том, как легко подделать GET как запрос POST. Хотя я не согласен с тем, что необходимо иметь токен, который истекает. Если злоумышленник может получить ваши данные сеанса, у вас больше проблем, чем некоторых дополнительных голосов. Но ваше исправление по-прежнему работает, поскольку ключ состоит только в том, чтобы иметь токен/случайное значение в Cookie и в данных запроса (сохраненных в файле cookie или привязанных к сеансу пользователя). – MyGGaN
Благодарим вас за предложения. Я буду менять все ссылки, чтобы иметь этот токен. Я должен согласиться, что это очень безопасный метод. Однако я не собираюсь выполнять истечение срока годности, я согласен с MygGaN в этом. –
У любого из вас, ребят, есть идея, что делать, когда я использую AJAX для голосования. Должен ли я просто повторно использовать один и тот же ключ, пока пользователь находится на странице, и только генерирует новый токен, когда он обновляется. Или я должен поставить новый токен для всех ссылок всякий раз, когда проводится голосование. –