Мега-функция unique_id

Список разделов Общие разделы О phpBBex

Описание: Обсуждение phpBBex в целом, всё что не подходит в другие разделы.
Модератор: Поддержка

Сообщение #1 135 » 09.01.2014, 23:04

Вроде мелочь…

В /include/functions.php есть такая мега-функция. Казалось бы, что может быть интересного в генерации случайного числа для хеширования данных?! Ан нет, хороший, творческий художник даже такую скучную вещь может превратить в произведение искусства.
function unique_id($extra = 'c')
{
static $dss_seeded = false;
global $config;

$val = $config['rand_seed'] . microtime();
$val = md5($val);
$config['rand_seed'] = md5($config['rand_seed'] . $val . $extra);

if ($dss_seeded !== true && ($config['rand_seed_last_update'] < time() - rand(1,10)))
{
set_config('rand_seed_last_update', time(), true);
set_config('rand_seed', $config['rand_seed'], true);
$dss_seeded = true;
}

return substr($val, 4, 16);
}
135
Автор темы, Гость

Сообщение #2 Sumanai » 10.01.2014, 05:03

А что не так?
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #3 135 » 10.01.2014, 14:42

С точки зрения Лукоморьевской статьи о рнр - в принципе ничего, всё в канве.

Просто мне непривычно когда во время задачи получить случайную соль, бегают читать/писать в БД, проводят абсолютно лишние сравнения...
135
Автор темы, Гость

Сообщение #4 Sumanai » 10.01.2014, 15:06

Вообще- то всё правильно делают, для безопасности, чтобы из- за легко угадываемой соли ничего не взломали. Читают из БД? Тут ничего не читают, массив конфига в любом случаи будет прочтён.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #5 factotum » 10.01.2014, 17:08

Sumanai:легко угадываемой соли
Не совсем понятно, как угадываемость соли зависит от БД. БД явно не генератор случайных чисел.
Sumanai:ничего не взломали
звучит громко.
Не смотрел phpbbex: как то экспериментировал с phpbb - с уведенными кукизами получал все права и привилегии владельца. даже просто копирование из оперы в хром давало тот же эффект. этакая небольшая дырочка в ад)
factotum
Откуда: Люксембург
Репутация: 234
С нами: 12 лет 7 месяцев

Сообщение #6 VEG » 10.01.2014, 18:15

factotum, а вы сперва уведите cookies прежде, чем говорить «дырочка».
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1668
С нами: 12 лет 7 месяцев

Сообщение #7 factotum » 10.01.2014, 18:30

VEG:а вы сперва уведите cookies прежде, чем говорить «дырочка».
:clap:
администратор ресурса, где была найдена уязвимость, ответил в том же духе - "это противозаконно")
Это гораздо проще, чем привязать кукизы)
factotum
Откуда: Люксембург
Репутация: 234
С нами: 12 лет 7 месяцев

Сообщение #8 VEG » 10.01.2014, 19:15

factotum, к чему их привязать? К User Agent? Чтобы при обновлении версии браузера слетала авторизация? К IP? Чтобы при переподключении модема мы также теряли авторизацию и не имели возможности пользоваться сайтом через какой-нибудь Tor?
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1668
С нами: 12 лет 7 месяцев

Сообщение #9 135 » 10.01.2014, 20:14

Sumanai:Вообще- то всё правильно делают, для безопасности
Делают они это не для безопасности а шутки ради. 100%.

Sumanai:чтобы из- за легко угадываемой соли ничего не взломали.
Зачем угадывать соль?

Sumanai:Читают из БД? Тут ничего не читают
Да хрен бы с ним, пусть и читали бы, писать то нахрена причём два раза. Для безопасности или для скорости работы? Или и для того и для того?

Напомню, функция генерит уникальный ID, часть которого будет использоваться при последующем хешировании нормальных данных. Как в анекдоте "за день можете? а за два? а за неделю?"...

Я думаю вся функция есть просто троллинг, собственно как и схема БД и собственно сам рнр. -(.
135
Автор темы, Гость

Сообщение #10 Sumanai » 11.01.2014, 04:49

factotum:Не совсем понятно, как угадываемость соли зависит от БД. БД явно не генератор случайных чисел.

Ага, не генератор. Но как вы можете увидеть, туда записывается цепочка хешей.
Если просто хешировать например время, то это можно угадать, диапазон ограничен.
В phpBB для этого нужно угадать всю цепочку хешей, что не реально.

VEG:factotum, к чему их привязать? К User Agent? Чтобы при обновлении версии браузера слетала авторизация? К IP? Чтобы при переподключении модема мы также теряли авторизацию и не имели возможности пользоваться сайтом через какой-нибудь Tor?

Собственно такие настройки в админке есть. Можно и привязать.

135:Зачем угадывать соль?

Для подбора паролей или ещё чего- то там.

135:Я думаю вся функция есть просто троллинг, собственно как и схема БД и собственно сам рнр. -(.

Перепишите весь движок на perl, можете даже на c++, и пользуйтесь, разрешаю.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #11 135 » 11.01.2014, 10:56

Sumanai:Для подбора паролей или ещё чего- то там.
-) давайте я вам дам соль а вы угадаете пароль?))

Sumanai:Перепишите весь движок на perl, можете даже на c++, и пользуйтесь, разрешаю.
спасибо за разрешение), мне хватит по возможности не писать на рнр, если и писать, то не такие вот конструкции и уж точно не оправдывать их фанатично даже не разобравшись что же там происходит.
135
Автор темы, Гость

Сообщение #12 VEG » 11.01.2014, 12:29

Спор ни о чём. Ребята из phpBB перестраховались лишний раз и сделали свою реализацию генератора уникальных строк. Возможно, они не доверяют стандартному uniqid, считают, что его строки недостаточно уникальны, поэтому написали такой генератор. Очевидно, что они руководствовались поговоркой «лучше перебдеть, чем недобдеть». С учётом того, в phpBB 3 не было найдено серьёзных уязвимостей с первого релиза, может быть, они не зря включали параноиков по каждому поводу. А как используется этот генератор и может ли злоумышленник повредить сайту, если будет знать, какие числа генерирует эта функция — дело десятое. В каких-то случаях использования такой функции — да, сможет. В тех случаях, где эта функция используется в phpBB 3 — возможно и нет (смысла ради этого пустого спора изучать, где же она используется, не вижу).
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1668
С нами: 12 лет 7 месяцев

Сообщение #13 Sumanai » 11.01.2014, 13:53

VEG:смысла ради этого пустого спора изучать, где же она используется, не вижу

Код: Выделить всё
$browser_id = md5(unique_id('bid', true));

По моему, это писали вы :biggrin:
Но спор действительно пустой.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #14 135 » 11.01.2014, 15:54

VEG:и сделали свою реализацию генератора уникальных строк.

Ага, с блэкджеком и шлюхами -).

VEG:С учётом того, в phpBB 3 не было найдено серьёзных уязвимостей с первого релиза
Дело не в уязвимостях, дело в том, что это либо быдлокод, либо попытка юмора.

Sumanai:Но спор действительно пустой.
-) лично я отметил интересный код. Я ж не думал что о такой прекрасной функции начнут спорить а потом назовут спор пустым. По моему мнению тут вообще не о чем спорить..
Но, видимо, я не туда запостил эту тему… Опять, так сказать, ошибся аудиторией -).
135
Автор темы, Гость

Сообщение #15 Sumanai » 11.01.2014, 17:21

135:По моему мнению тут вообще не о чем спорить..

И по моему тоже! Нормальная функция.

135:Но, видимо, я не туда запостил эту тему… Опять, так сказать, ошибся аудиторией -).

Запостите на говнокод, не забыв сказать, откуда функция.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #16 135 » 11.01.2014, 21:14

Sumanai:Запостите на говнокод
Я там не зарегистрирован.
135
Автор темы, Гость

Сообщение #17 Sumanai » 11.01.2014, 21:17

Боязнь регистрироваться?
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #18 135 » 11.01.2014, 21:21

Ну да. Боюсь что узнают соль в том хеше и через неё ломанут мои аккаунты повсеместно.
135
Автор темы, Гость

Сообщение #19 Sumanai » 11.01.2014, 22:26

Скорее боитесь быть осмеянными.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #20 135 » 11.01.2014, 22:52

=)
135
Автор темы, Гость

След.

Вернуться в О phpBBex



cron