Функция protect ()
Posted in: Усовершенствованные технологии использования форм, By: admin, At: Май 10th, 2008
Для того чтобы облегчить генерацию МВ5-подписей и элементов форм, создадим вспомогательную функцию, которую будем использовать для генерации цифровых подписей в HTML-формах. Эта функция имеет имя protect |) и следующий синтаксис:
protect(Sname, Svalue, Ssecret)
где Sname представляет атрибут МАМЕ скрытого элемента HTML-формы, Svalue — текущее значение этого элемента, a Ssecret — секретную строку, используемую ддя генерации подписи. Эта функция возвращает строковое представление скрытых элементов формы — текущее значение и MDS-подпись. Атрибут NAME подписи МПЗ будет определен этой функцией как
Код функции приведен в листинге 15.3.
Листинг 5.3. protect () — генератор цифровой подписи MD5 формы
define(1PROTECTED^KEY1, ‘mysecretword’); function my_addslashes(Sstring) (
return (get_magic_quotes_gpc() == 1) ? Sstring : addslashes(Sstring);
I
function protect(Sname, Svalue, Ssecret) ( Stag = “”;
Sseed = md5(Sname.Svalue.Ssecret); Shtml_name = Sname.”^checksum”;
Stag = “
)
?>
НА ЗАМЕТКУ -
Забыли, что такое myaddslashes {) и urlencode () ? Назначение этих функций рассмотрено в предыдущих раэдепах этой главы (”Работа с “магическими” кавычками” и “Преобразование и кодирование данных”).
На практике функция protect () используется всегда, когда нужен скрытый элемент формы:
После обработки в PHP-сценарии в клиентском браузере будет отображен следующий HTML-код:I Часть I
Теперь, проверив, что скрытый элемент времени соответствует МП5-подписи, содержащейся в time_checksum (вместе с секретной строкой), можно быть уверенным в правильности данных.
Leave a Reply