Уязвимость в PHP подвергает опасности практически любой сайт: различия между версиями

[досмотренная версия][досмотренная версия]
Содержимое удалено Содержимое добавлено
викификация, категория, опубликовано
м орфография
Строка 5:
Брешь позволяет злоумышленникам скомпрометировать учётную запись пользователя.
 
Вице -президент WhiteHat Labs из WhiteHat Security Роберт Хансен (Robert Hansen) обнаружил уязвимость, которая получила название Magic Hash. Из-за ошибки в PHP при работе с [[w:Хеш-сумма|хешами]] в некоторых ситуациях злоумышленник может подобрать пароль к учётной записи пользователя, обойти [[w:аутентификация|аутентификацию]] и другие средства обеспечения безопасности, полагающиеся на {{w|хеширование}}.
 
Проблема возникает при использовании оператора равно-равно (==) во время сравнения двух хешей. PHP использует [[w:Набор символов|кодировку]] base16, в результате получаем строку, подобную этой: “0e812389…”.
Если строка начинается с «0e» и после нее следуют только цифры, PHP будет интерпретировать эту строку как {{w|число с плавающей точкой}}. В итоге, условие <code>if ('0e462097431906509019562988736854' == '0')<code> будет истинно.
 
По мнению эксперта, эта брешь затрагивает миллионы сайтов и может стать действительно проблемой. Если хеш пароля пользователя в базе данных начинается с 0e, злоумышленник может воспользоваться любой строкой, которая при сравнении будет интерпретирована как 0, и успешно авторизоваться в системе без знания пароля.