twentytvvo, не коллекционирую ссылки. Но принцип один - не доверять никаким данным, пришедшим извне. Всё что можно подделать - злоумышленник легко подделает. В случае с загружаемыми файлами - клиент передаёт поля name, type и содержимое файла, остальное (tmp_name, size, error) - просчитывается на сервере, потому доверять можно только полям tmp_name, size, error, остальные можно как-нибудь учитывать, но не верить им, их легко подделать.
На флешке может тупо отсутствовать загрузчик. В случае с современными материнками это не проблема - для UEFI достаточно раздела FAT32 с папкой EFI и загрузчиком в ней. А вот для старых BIOS такое не прокатит.
twentytvvo, какой фильтр? Имя файла генерируйте псевдослучайно (я обычно вычисляю как хэш от содержимого - это заодно обеспечивает дедупликацию), а расширение файла - из белого списка (обычно анализирую по сигнатуре файла и на её основе выбираю, для неизвестных типов можно какой-нибудь bin или txt, или запретить их загрузку). При таком подходе злоумышленник не сможет манипулировать именами файлов, даже если закинет туда зловред - тот будет просто валяться в папке мёртвым грузом без какого-либо исполняемого расширения файла и отдаваться на скачивание при открытии.
twentytvvo, это так кажется, что больше никто не пользуется, если намеренно не закрывали доступ извне никому кроме вас. Ботов, сканирующих сайты на уязвимости, ходит полно.
Вместо массы одинаковых вычислений, вынесите хотя бы для начала w/(h/100*h/100) в отдельную переменную - сразу станет на порядок проще и читабельнее)
Я уже молчу о том, что границы заданы абы как, что если окажется 24.95, попадающий между диапазонами [18.5, 24.9] и [25, 29.9].
И основное: сначала валидируем числа, а потом уже производим над ними арифметические операции.
twentytvvo, не вижу там вообще каких-либо проверок загружаемых файлов. Юзер может загрузить туда всё что угодно, включая файлы .php. Вероятно, кто-то вам туда .htaccess и кидает.
А где информация, что новая версия BIOS не поддерживает старые процессоры? Обычно в списке поддерживаемых процессоров пишут, начиная с какой версии BIOS он поддерживается, но это не значит, что в последующих версиях BIOS поддержка выбрасывается, если это не оговорено отдельно.
kaktak255, код ваш легко может кэшироваться где-то. Нужны подробности - что за код, чем именно вы его запускаете, где хранится (если на удалённом сервере - то учитывать время на передачу после сохранения).