Что делать в случае атаки подделки межсайтовых запросов? - PullRequest
1 голос
/ 24 апреля 2011

Я пытаюсь предотвратить атаки CSRF. Я сохранил случайное значение в сеансе и в форме. При обработке формы я сравниваю два значения. Если сессия и значение формы не равны, я должен убить скрипт или есть лучший способ справиться с этим?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2011

Да. Просто позвольте этому потерпеть неудачу. Нет смысла исправлять такие ошибки.

Однако вы должны также написать запись в журнале для аудита потенциальных попыток эксплойта:

syslog(LOG_ERR, "CSRF token mismatch ...");
die("Request failed. (Disabled cookies?) Contact administrator: ...");

Включите читаемое сообщение на случай, если это действительно ошибка браузера или что-то в этом роде. Но не сообщайте, что это был токен CSRF, который потерпел неудачу.

0 голосов
/ 24 апреля 2011

Если это вряд ли произойдет с реальным пользователем, я бы запретил скрипту сохранять / возвращать какие-либо данные, но я бы возвращал сообщение об успехе, как если бы оно работало. Если вы вернете ошибку, это поможет хакерам понять, как закодирована ваша проверка.

С другой стороны, если это случится с реальными пользователями, я верну дружественную ошибку и, возможно, предложу им снова войти в систему.

...