Как эффективно предотвратить подделку межсайтовых запросов (CSRF) в PHP

Я пытаюсь предотвратить CSRF в PHP следующим образом:

A $_SESSION['token'] генерируется в начале каждой страницы. Я уже знаю, что с помощью$_COOKIES совершенно неверно, так как они отправляются автоматически для каждого запроса.

В каждом<form>, следующий вход:<input type="hidden" name="t" value="<?php echo '$_SESSION['token']; ?>"> добавлен.

The$_SESSION['token']; проверяется с помощью$_POST['t']

Теперь у меня есть несколько небольших вопросов:

Это хороший способ предотвратить CSRF? Если нет, пожалуйста, объясните. Когда открывается другая страница, которая задает то же самое$_SESSION переменная, предыдущая (все еще открытая) страница становится недействительной, как это предотвратить? Для форм этот метод понятен, но как обращаться с обычными ссылками? Нужно ли добавлять токен к каждой ссылке?

Заранее большое спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос