CSRF - это атака, при которой пользователя (например, по ссылке в электронном письме) обманывают для совершения действия от имени злоумышленника, когда он уже аутентифицирован на вашем веб-сайте.
Есть несколько способов снизить риск, который вы должны проверить -
- GET-запросы не должны иметь побочных эффектов - все действия должны выполняться только с помощью POST-запросов. Злоумышленнику сложнее сгенерировать POST-запрос, исходящий от пользователя.
- Вы хотите, чтобы случайная уникальная постраничная строка отправлялась пользователю и проверялась при возврате на сервер. Файл cookie пользователя будет отправлен в запросе, вызванном злоумышленником, но злоумышленник не узнает строку, сохраненную в форме. В .NET я думаю, что вы можете использовать Viewstate для этого.
- Для особо чувствительных (или подверженных атакам) действий или после некоторого периода бездействия вы можете запросить повторную аутентификацию пользователя
OWASP (связан с Торбьёрном) действительно отличный ресурс, содержащий гораздо более подробные объяснения и советы.