2012-02-08 14 views
2

私はCSRFから私のフォームを保護するためにZFのZend_Form_Element_Hashを使用しています。 ただし、生成されるトークンの有効期限が早すぎるという問題があります。私は、問題がセッションの存続期間にあると推測しています。なぜなら、それが格納されている場所だからです。フォームのハッシュ(トークン)期限切れを変更するZend Framework

私はそれを生成するには、このコードを使用します。

$token = new Zend_Form_Element_Hash('tk'); 
$token->setSalt(md5(uniqid(mt_rand(), TRUE))); 

は、私は、時間の長い期間のためのトークンが有効で作ることができる方法はありますか?

私はそれを正しくやっていますか良い方法がありますか?私はZend Frameworkを初めて使用しています。

答えて

5

Zend_Form_Element_Hashには、CSRFトークンのTTLとして機能するtimeoutプロパティもあります。デフォルトでは300秒(5分)です。

timeoutの値をオプションとして渡すことで、このタイムアウトを増やすことができます。

$token = new Zend_Form_Element_Hash('tk', array('timeout' => 900)); // 15 minute TTL 

Zend_Form_Element_Hash API Doc

+0

:-)ありがとうございました – Sthe