Какой способ следует использовать для защиты от csrf атак?
Токен можно передавать и в заголовке, не обязательно выводить его в формы. Но в целом - это самый распространённый способ, который прост как тапок и работает.
1) Через скрытое поле в форме 
2) Капча
3) Просьба ввести пароль при изменении критичных настроек