Ответ отрицательный. Вам не нужно ничего делать, чтобы проверить, действительно ли хэш действителен или нет.
При создании элемента Zend_Form_Element_Hash
он автоматически добавляет в форму формуляра (используя Zend_Validate_Identical
) и регистрирует хэш в новом сеансе пространства имен.
После этого, как только вы вызываете метод isValid()
, если CSRF, сохраненный в сеансе при визуализации страницы, не совпадает с тем, который был отправлен в последнем запросе, Идентификационный валидатор завершится с ошибкой и вернет ошибку.
Edit: Кроме того, вы можете добавить соль в элемент и хэш будет генерировать в соответствии со следующим шифрованием: md5(mt_rand(1,1000000) . $this->getSalt() . $this->getName() . mt_rand(1,1000000)
.
Чтобы ответить на ваш второй вопрос в свой комментарий, два элемента не вызывает никаких сеансов конфликтов, поскольку пространство имен используется для хранения хэш, это определить по трем критериям:
- имя класса
- Соленого
- имя элемента
Например, ваш элемент, вероятно, будет храниться в этом пространстве имен: "Zend_Form_Element_Hash_unique_ имеет h "где" unique "- значение соли и хеш-имя вашего элемента.
Благодарим вас, кроме того, можете ли вы рассказать мне, что такое слово «соль»? И если у меня будет более одной формы, будет ли конфликт в этом сеансе? –
Ну, так как английский не мой родной язык, я не пойду на глубокое определение, но, на мой взгляд, соль - это случайная строка, которую вы можете объединить с хэшем/паролем, чтобы сделать его еще более безопасным. Я отвечу на ваш второй вопрос в своем первоначальном ответе. – Liyali
Еще раз спасибо, кажется, у вас хорошее знание рамки zend. У вас есть какие-либо материалы для чтения или учебные пособия для начинающих Zend? Я хочу углубиться. Еще раз, спасибо. –