Zend form_element_hash - PullRequest
       4

Zend form_element_hash

1 голос
/ 18 сентября 2010

При создании хеша для токена формы я видел несколько разных версий:

$hash = new Zend_Form_Element_Hash('hihacker', array('salt' => 'exitsalt'));

and 

$hash = new Zend_Form_Element_Hash('hash', 'no_csrf_foo', array('salt' => 'unique'));

Прежде всего, соль должна быть уникальной для каждой формы рендера? Второй говорит об этом, но я не уверен.

Кроме того, что является лучшим способом сделать это?

1 Ответ

1 голос
/ 18 сентября 2010

Уникальная соль будет лучше, так как она будет меняться каждый раз, делая практически невозможным для спамеров автоматическую отправку вашей формы.

Даже с постоянной солью любой хакер вряд ли сможет это сломать.

Я бы предложил создать элемент таким образом

 $hash = new Zend_Form_Element_Hash('hash', 'no_csrf_foo', array('salt' => 'unique'));

Таким образом, вы знаете, что имя элемента - no_csrf_foo, поэтому вы можете легко получить его позже, если потребуется, выполнив

$form->getElement("no_csrf_foo");

Есть ли какой-то конкретный сценарий, которого вы боитесь, который сделает этот метод остановки автоматической отправки форм недостаточным?

...