[Image] Воскресенье, 22.12.2024, 19:33 [Image]
SEO, технологии, игры, IT новости
[Image] Главная Регистрация Вход [Image]
[Image] Приветствую Вас, Гость · RSS [Image]
Меню сайта

Форма входа
 Блог
Главная » 2011 » Январь » 15 » Защита скрытых элементов
18:10
Защита скрытых элементов

Средством для проверки данных в рассматриваемом случае является алгоритм MD5. Этот алгоритм используется для создания дайджеста сообщения (вид цифровой подписи) из переданных ему данных. Как и подпись человека, цифровая подпись, создаваемая алгоритмом MD5, уникальна для строки. Несмотря на то что существует небольшая вероятность (1 из 3.40282е+38) того, что цифровые подписи двух строк совпадут, для практического использования можно считать, что они уникальны.
Цифровые подписи, создаваемые алгоритмом MD5, не только уникальны, но и предопределены. Для заданной строки алгоритм MD5 всегда создает одну и ту же цифровую подпись. В РНР использование алгоритма MD5 сводится к вызову функции md5 (), имеющей синтаксис: md5($string) где $string — строка, для которой нужно сгенерировать цифровую подпись. Функция md5 () возвращает 32-символьную подпись, основанную на данных, переданных в $string. Каким же образом функция md5 () помогает убедиться в том, что данные остаются неизменными в промежутке времени между созданием формы и ее передачей?
Создав МВ5-подписи для каждого скрытого элемента в документе и проверив эти подписи во время передачи формы, можно быть уверенным, что передаваемые данные достоверны.
При создании подписей MD5 важно помнить, что главное преимущество алгоритма одновременно является его недостатком. Поскольку алгоритм MD5 полностью предсказуем, простое использование некоторых комбинаций передаваемых параметров $name и $value может оказаться потенциально небезопасным. Например, рассмотрим следующий фрагмент:
$fingerprint = md5($name.$value);
Несмотря на то что $ fingerprint является цифровой подписью MD5, основанной на переданных параметрах, злоумышленник (достаточно внимательный) может с относительной легкостью определить строку, использованную для генерации цифровой подписи. Для того чтобы подпись MD5 была действительно безопасной, нужно использовать значение, полностью не известное внешнему пользователю: $fingerprint = md5($name.$value.'mysecretword');
При использовании этого метода злоумышленник должен не только разобраться в том, как была создана строка для алгоритма MD5, но и должен знать дополнительное значение. Для простоты, с помощью PHP-оператора define, определим константу PROTECTED_KEY для хранения секретного слова: define("PROTECTED_KEY", "mysecretword");

НА ЗАМЕТКУ
Когда константа определяется с использованием оператора define, она выглядит как обычная PHP-константа. Это значит, что на нее можно ссылаться как PROTECTED_KEY (без начального символа $) и она автоматически доступна в любой точке сценария, независимо от области видимости.

Категория: Все о PHP | Просмотров: 1622 | Добавил: witkom8382 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024
Категории
Оптимизация сайта [592]
Создание сайтов [355]
Заработать в интернете [508]
Технологии [48]
Полезное [392]
Услуги и сервисы [317]
Автоблог [105]
Скрипты для Ucoz [39]
Движок на сайт [10]
Все о Joomla и Drupal [20]
Все о PHP [91]
Поиск
Пользовательский поиск
Статистика


Онлайн всего: 2
Гостей: 2
Пользователей: 0
Seo сайт, технологии продвижения, мета теги, оптимизация сайтов, новости сео, Скрипты, Ucoz

Рейтинг@Mail.ru