LINUX.ORG.RU
ФорумTalks

За что не любят пхпшников

 


0

1

Открываю сегодня один проект. Перехожу в мастер ветку, делаю гит пулл. И вижу такую картину в одном из файлов:

            $id = 0;
            for(; $id < 1000000; $id++) {
                if($_GET['key'] == md5($id . 'security')) {
                    break;
                }
            }
            if($id) {
                $file = query("select * from files where id='" . $id . "'");
                header("Content-type: " . $file['type']);
                header('Content-Length: ' . $file['size']);
                header('Content-Disposition: attachment; filename="' . $file['name'] . '"');

Для тех кто не понял что тут происходит: получаем значение ключа из гета и в цикле перебираем варианты от 0 до 1 млн, если присланный ключ совпал с хешем, тогда «бряк» :)

Не-не, а дальше то - if($id) т.е. если $id больше нуля, что будет однозначно, т.к. хотябы одна итерация но будет - лезем в базу и отдаем файл.

А цикл - видимо сделана задержка а-ля comet, мол, ты прислал какашку - на тебе мильён итераций в цикле!

★★★★★

Последнее исправление: stave (всего исправлений: 1)

Ответ на: комментарий от deep-purple

А проверить слабо было перед написанием? Мусукль:

mysql> select MD5('1security');
+----------------------------------+
| MD5('1security')                 |
+----------------------------------+
| 334c01cdb5c161c2a7e94cbc2a15fa28 |
+----------------------------------+
1 row in set (0.00 sec)

mysql>
Пыха:
# php -r 'echo md5("1security"), "\n";'
334c01cdb5c161c2a7e94cbc2a15fa28

om-nom-nimouse ★★
()
Ответ на: комментарий от om-nom-nimouse

Ой слушай, точняк. Я с чем-то попутал.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от om-nom-nimouse

А вот с чем именно не помню. Там какая-то несрастуха была изза битности 32/64.

deep-purple ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.