問い合わせフォームのページ遷移で、自分のページから来たことを確かめるためにセッションを使っています。
input type="hidden" name="token"

他人のブログ等見ると、

■session_idを使う方法

$token = hash('sha256', session_id());

if ($_POST['token'] != hash('sha256', session_id())) {

■$_SESSIONと照合する方法

$_SESSION['token'] = rtrim(base64_encode(openssl_random_pseudo_bytes(32)),"=");

if ($_SESSION['token'] != $_POST['token']) {

と2種類(他にも?)見られますがどちらがいいのでしょうか?
htmlspecialcharsはここでは省略しています。