Вы перепутали пару общих проблем здесь.
Во-первых, атака, как отмечали другие, называется подделкой межсайтовых запросов. Можно вызвать либо GET, либо POST из другого домена, и, поскольку запрос будет направлен на ваш домен, он передаст файлы cookie для вашего домена, который содержит сведения о сеансе.
Чтобы противостоять этому, когда пользователь входит в систему, сгенерируйте токен (некоторую случайную строку символов), который все ссылки и формы на вашем сайте возвращают во время этого сеанса. Когда приходит запрос, извлеките сведения о сеансе из файла cookie и найдите, какой токен должен быть получен / отправлен для этого сеанса. Если правильный токен не был передан, вы можете проигнорировать запрос / сообщить пользователю / подробности журнала для дальнейшего изучения. Я бы рекомендовал последнее, так как при реализации этого вы можете пропустить несколько ссылок или форм, которые затем не будут работать. Пользователи могут просто уйти, а не тратить время, чтобы сообщить вам об этом.
Во-вторых, запросы GET должны быть безопасными (то есть просто приводить к отображению данных без внесения изменений), и POST должны использоваться для всех запросов на изменение данных. Во-первых, в случае, если паук успевает перейти по ссылке, вызывая изменения, которые не должны вызывать пауки. Во-вторых, в качестве резервной копии для пользователя, обновляющего страницу - браузер должен напомнить им, что они будут повторно отправлять запрос и хотят ли они продолжить. Я говорю в качестве резервной копии, потому что все ваши запросы должны быть написаны таким образом, чтобы они были безвредны / игнорировались при повторной отправке, т.е. не имели кнопки, которая запрашивает последний элемент, который нужно удалить, вместо этого посмотрите, что идентификатор последнего элемента имеет значение 1423 и запрос на удаление кнопки 1423; если это будет отправлено дважды, то во второй раз при проверке следует заметить, что элемент 1423 больше не существует и не вызывает дальнейших изменений.