Открываю сегодня один проект. Перехожу в мастер ветку, делаю гит пулл. И вижу такую картину в одном из файлов:
$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, мол, ты прислал какашку - на тебе мильён итераций в цикле!