Наконец-то я смог создать способ воспроизвести ошибку, которую у меня есть. Когда 2 или более пользователей вызывают страницу с той же второй функцией modsecurity, генерирует ту же последовательность случайных чисел (используя функцию rand() из php) для обоих пользователей.серьезная ошибка со случайными номерами
Вот демонстрация ошибки:
http://quemfazsite.com.br/em_criacao/modelo9/teste.php
Открытие эту страницу, 2 фреймов будет загружать и каждый из них должен быть генерации случайных чисел independetly друг от друга, но оба кадра генерируют ту же последовательность случайные числа! Очень простой исходный код можно увидеть ниже. Если вы не видите одну и ту же последовательность, я прошу вас перезагрузить страницу несколько раз, пока вы не получите такую же последовательность чисел.
EDIT: эта ошибка происходит только при активной активности. Если вы прокомментируете строку «LoadModule», загружающую modsecurity, ошибка не будет!
<?php
if (isset($_GET["test"])) {
$output= "";
for ($i=0;$i<10;$i++) {
$output.= rand(0,99999999) . "<br />";
}
echo $output;
exit();
}
?>
<iframe src="PUT_THE_SAME_NAME_OF_THIS_FILE_HERE.php?test&953487"></iframe>
<iframe src="PUT_THE_SAME_NAME_OF_THIS_FILE_HERE.php?test&234322"></iframe>
Используйте mt_rand() вместо rand(), но ни один из них не производит случайное число, которое можно считать криптографически безопасным .... обратите внимание также, что если вы сольете случайное число, тогда две последовательности, начинающиеся с одной и той же соли, всегда будут одинаковыми –
Ваш вопрос не имеет ничего общего с модулем modsecurity или apache. Я удалил соответствующие теги. – GhostGambler
Рекомендуемое чтение: http://en.wikipedia.org/wiki/Random_number_generation – Sammitch