2011-02-24 57 views
5

PHP是否有自己的Rails真實性標記版本?PHP是否有像Rails一樣的真實性標記?

<meta name="csrf-token" content="<%= form_authenticity_token %>" /> 
<meta name="csrf-param" content="authenticity_token" /> 

如果不是,實現相同功能的最佳方法是什麼?

+0

這是CSRF保護。但CSRF保護現在可以在沒有這些令牌的情況下完成,只需使用特殊的Cookie參數。你可能想看一下https://github.com/delight-im/PHP-Auth,它會自動完成。 – caw 2016-10-21 21:32:52

回答

8

當輸出到形式:

$token = md5(time() . rand(1,100)); 
$_SESSION['token'] = $token; 

<input type='hidden' name='token' value='<?=$token;?>'/> 

POST後:

if(empty($_POST['token']) || $_POST['token'] !== $_SESSION['token']){ 
    exit("Bad token!"); 
} 
unset($_SESSION['token']); 
+0

您如何評價使用像recaptcha這樣的東西?我注意到twitter沒有爲註冊表格使用驗證碼< - 因此我的想法是...... – Booski 2011-02-24 22:07:52

+0

令牌可以防止CSRF攻擊,但captcha阻止非人類用戶(並防止CSRF)。你在找哪一個? – 2011-02-24 22:11:58

+0

兩者... twitter如何逃脫它? – Booski 2011-02-24 22:13:25

相關問題