php form: предотвратить постеры с жетонами - PullRequest
2 голосов
/ 04 августа 2011

Я делаю веб-игру для развлечения с множеством форм, которые публикуют данные на php-страницах. Какие существуют способы запретить людям использовать собственные веб-формы для публикации на моем сайте?

Мои знания PHP не слишком развиты. Итак, пока я изучал эту тему, к сожалению, ответы, которые я нашел, меня немного смутили. Я нашел этот SO вопрос от ранее, который решал проблему: Безопасная форма ajax POST . Я немного смутился из-за первого ответа и подумал, может ли кто-нибудь привести пример на PHP. Вот некоторые конкретные моменты, с которыми я борюсь:

  • как бы вы сохранили токен где-нибудь на вашем сервере?
  • как вы решаете, каким должен быть этот токен?
  • если кто-то находится на сайте, он не может просто просмотреть источник и увидеть токен в скрытом элементе ввода и использовать его в своем собственном сторонняя форма?

Спасибо за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 04 августа 2011

Существует несколько библиотек предотвращения CSRF, которые вы можете использовать.Одним из них является CSRFGuard на OWASP

Вы также можете прочитать главную страницу CSRF , чтобы понять проблемы и Шпаргалку по профилактике CSRF дляпонять принципы, лежащие в основе реализации проекта.

Если вы прочитали и поняли проблемы, добавьте собственную защиту, если вы хотите создать собственную реализацию.

Имейте в виду, что если выесли у вас есть XSS уязвимости , ваша защита от CSRF может быть просто обойдена.Поэтому обязательно поймите также XSS Prevention .

1 голос
/ 04 августа 2011
  1. Токен сохраняется в сеансе пользователя вместе с датой / временем истечения срока действия
  2. Токен может быть сгенерирован автоматически для каждого пользователя.Он должен быть достаточно случайным, чтобы не гадать.
  3. Да, но вы можете бороться с этим, используя генерацию токенов для каждого пользователя и срок действия.Если токен отправлен без существующего пользовательского сеанса или если токен истек в текущем сеансе, перенаправьте пользователя на соответствующее уведомление о сбое.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...