Короткий ответ
<input type="hidden" name="csrf" value="…" />
Поле не видно пользователю, но уходит с формой. Это не безопасность: значение видно в DevTools. Для секретов — серверные сессии, не hidden.
Итог: type="hidden" для служебных данных формы, не для защиты секретов.