Удаляйте. Если человек не понимает как работать с файловой системой и что такое тесты то это уязвимость в голове. Это первое. А теперь про заголовок. Что значит буква "И" в заголовке? Dev/random сам по себе не является unix системой. Да и почему только юникс? Что в линуксе или макоси или фряхе будет по другому?
Евгений, человек может отлично понимать, как работать с файловой системой, но вот поведение, когда /dev/random выдает очень неслучайные значения может быть неожиданным. Например, если скрипт изначально вовсе не был рассчитан под работу в Windows. Или как-то так:
functionget_randomness(){// Get good randomness under *nix systems.if(file_exists('/dev/random')){returnfread(fopen('/dev/random', 'r'), 8);
}// Or use built-in one.else{returnmt_random(0, 0xFFFFFFFF);
}}
Ну и не надо придираться к словам, под Unix-системами как правило понимают unix-совместимые системы, к которым отнисится и OSX, и Linux, и *BSD.
Евгений, тесты-то тут при чём? Чтобы протестировать данную ситуацию надо писать в /dev/random. Кому это вообще в голову придёт? Тесты обычной ситуации пройдут на ура. Хороший пример у Alek$ выше.
Вопрос в качестве случайных чисел. У mt_rand качество таксебе. А у /dev/random гораздо больше источников энтропии, и его вывод на практике не поддается предсказанию, если система работает хотя бы несколько минут.
Какой профит разрабатывать под виндой то, что на 99.99% будет работать на продакшене не под виндой? Я к тому, что да, уязвимость есть, и что? Есть же Vagrant, Docker под винду если лень ставить вторую операционку.
Вообще считается, что недостаточно иметь туже операционную систему на дев-машине. Правильным считается даже версии софта держать идентичными с продакшн-окружением.
Serghei, тут скорее ситуация обратная: скрипт разрабатывался, тестировался и предназначался для работы под Linux, а кто-то взял да и задеплоил его на винду. Как такое могло случиться? Например, у некоего "кровавого энтерпрайза" и так все сервера на винде и поднимать Linux ради одного побочного проекта никто не станет.
Другое дело, что для того, чтобы создать файл C:\dev\random под виндой нужно уже иметь админские права, а в этом случае качество случайных чисел в задачу уже, скорее всего, не входит.
Serghei, тут как раз ситуация, когда разрабатывали не под виндой и забыли, что в ней будут проблемы с тем, что в ней не поддерживается. Тот же Yii точно используется на серверах с виндой. Где-то это корпоративная политика.
Ну и разрабатывать только под один контейнер, а тем более заставлять всех использовать только его — неправильно. Бывают разные машины с разным железом, разные окружения, разные требования у проектов. Так что предсказать, где и как будет использоваться код не получится. Как минимум популярные системы надо покрыть.
Уязвимы таким образом, естественно, все «устройства UNIX». Заголовок как раз про это и говорит.
Sam, Ну по моему скромному мнению не совсем правильно говорить об уязвимости этих устройств в контексте Windows. Корректнее было бы это назвать "О! А оказывается в Windows нет /dev/random и /dev/urandom".
Это не уязвимость устройства, а его отсутствие, и по моему это очевидный факт для web-программистов операционных систем Unix-like и Windows
Serghei, это очевидный факт для тех, кто программировал под Windows достаточно долго, но не очевидный для всех остальных. И выливается забывание этого факта как раз в уязвимость.
Комментарии RSS по email OK
Не забывайте, что Валентино на Ducati уже давно не катает ;)
Удаляйте. Если человек не понимает как работать с файловой системой и что такое тесты то это уязвимость в голове. Это первое. А теперь про заголовок. Что значит буква "И" в заголовке? Dev/random сам по себе не является unix системой. Да и почему только юникс? Что в линуксе или макоси или фряхе будет по другому?
Евгений, человек может отлично понимать, как работать с файловой системой, но вот поведение, когда /dev/random выдает очень неслучайные значения может быть неожиданным. Например, если скрипт изначально вовсе не был рассчитан под работу в Windows. Или как-то так:
Ну и не надо придираться к словам, под Unix-системами как правило понимают unix-совместимые системы, к которым отнисится и OSX, и Linux, и *BSD.
Евгений, тесты-то тут при чём? Чтобы протестировать данную ситуацию надо писать в
/dev/random
. Кому это вообще в голову придёт? Тесты обычной ситуации пройдут на ура. Хороший пример у Alek$ выше.Sam зачем вообще использовать /dev/random в php проектах ? Не ужели использования mt_rand не оправданно ?
Вопрос в качестве случайных чисел. У mt_rand качество так себе. А у /dev/random гораздо больше источников энтропии, и его вывод на практике не поддается предсказанию, если система работает хотя бы несколько минут.
А можете просвятить тёмного? :)
Какой профит разрабатывать под виндой то, что на 99.99% будет работать на продакшене не под виндой? Я к тому, что да, уязвимость есть, и что? Есть же Vagrant, Docker под винду если лень ставить вторую операционку.
Вообще считается, что недостаточно иметь туже операционную систему на дев-машине. Правильным считается даже версии софта держать идентичными с продакшн-окружением.
Serghei, тут скорее ситуация обратная: скрипт разрабатывался, тестировался и предназначался для работы под Linux, а кто-то взял да и задеплоил его на винду. Как такое могло случиться? Например, у некоего "кровавого энтерпрайза" и так все сервера на винде и поднимать Linux ради одного побочного проекта никто не станет.
Другое дело, что для того, чтобы создать файл C:\dev\random под виндой нужно уже иметь админские права, а в этом случае качество случайных чисел в задачу уже, скорее всего, не входит.
Alek$, ну дк с таким же успехом можно говорить о уязвимости в Windows устройств /dev/true или /dev/cpu/microcode
Дмитрий, rmcreative.ru/blog/post/perestante-ispolzovat-mcrypt
Serghei, тут как раз ситуация, когда разрабатывали не под виндой и забыли, что в ней будут проблемы с тем, что в ней не поддерживается. Тот же Yii точно используется на серверах с виндой. Где-то это корпоративная политика.
Ну и разрабатывать только под один контейнер, а тем более заставлять всех использовать только его — неправильно. Бывают разные машины с разным железом, разные окружения, разные требования у проектов. Так что предсказать, где и как будет использоваться код не получится. Как минимум популярные системы надо покрыть.
Уязвимы таким образом, естественно, все «устройства UNIX». Заголовок как раз про это и говорит.
Sam, Ну по моему скромному мнению не совсем правильно говорить об уязвимости этих устройств в контексте Windows. Корректнее было бы это назвать "О! А оказывается в Windows нет /dev/random и /dev/urandom".
Это не уязвимость устройства, а его отсутствие, и по моему это очевидный факт для web-программистов операционных систем Unix-like и Windows
Serghei, это очевидный факт для тех, кто программировал под Windows достаточно долго, но не очевидный для всех остальных. И выливается забывание этого факта как раз в уязвимость.