Давно я задал себе вопрос. Но спросить решил только сейчас. В общем если делать веб-приложение то изменение данных(запросы в базу) должно выполняться POST-запросами или PUT, DELETE и т.д. но никак не GET. Отсюда вопрос, если мы ничего не меняем GET-запросами, то и CSRF атаку не получиться выполнить. Она ведь проводится путём предоставления пользователю вредоносной ссылки (т.е. GET-запрос).
И где вопрос? Вообще атака может быть произведена не только как "ссылка". Скрипты могут сделать и POST, и любой другой запрос от лица атакуемого пользователя. То что запрос делается через фиктивный адрес в <img> это просто популярная иллюстрация. Суть CSRF в том, что запрос к сайту А делается из браузера пользователя при посещении сайта Б. И если жертва аутентифицирована на А, то запрос может выполнить некое действие без ведома жертвы. Авторитетный источник инфы: OWASP https://owasp.org/www-community/attacks/csrf
В этих двух предложениях какое-то противоречие. В первом все норм. Если вы не какой-нибудь ламерок, выполняющий изменения по GET, то и нефиг нагружать GET такой защитой.