Сжатие изображений "на лету" средствами WordPress

Wordpress

В последнее время происходит все больше и больше взломов сайтов под управлением WordPress. Несмотря на довольно высокую отказоустойчивость и безопасность этой CMS, уязвимости регулярно находят в темах и плагинах. Однако самая популярная причина взлома — не плагины и не сами скрипты темы. Сегодня я попытаюсь уберечь вас, мои читатели, от негативных эмоций, связанных с заражением ваших сайтов.

Большинство премиум тем и даже тем, созданных на заказ, используют для автосжатия изображений и миниатюр к записи сторонний скрипт, наподобие timthumb.php. Самая основная проблема данного скрипта — его безопасность. В зависимости от версии, скрипт может сразу загрузить исполняемый php файл на сервер, или злоумышленнику придется совсем немного напрячь извилины. Хотя, конечно, можно напрячь и Google вместо извилин.

Например, так как на западе частой практикой является использование разного рода фотохостингов, то создатели скрипта, даже последней версии, разрешают загрузку фотографий с этих фотохостингов, которая по факту может оказаться исполняемым php-файлом со зловредным шеллом. Даже не обязательно грузить такую картинку на фотохост. С вероятностью 99.99% она туда не загрузится, а вот использовать вместо flikr.com сайт flikr.com.fe-nix.ru никто не помешает. С большой вероятностью, скрипт загрузит php-шелл и злоумышленник получит доступ к вашему сайту, или того хуже — ко всем вашим сайтам на хостинге, так как в одном аккаунте сайты, образно выражаясь, отделяют друг от друга призрачные права доступа, которые каждый второй человек настраивает неправильно. Это конечно не плохо, но при взломе одного сайта, под угрозой находятся сразу все сайты вашего аккаунта. А в случае заражения вы можете потерять все свои доходы с сайтов.

Несмотря на то, что использовать этот скрипт легко и просто, я это делать категорически не рекомендую. Например, при создании темы WordPress я рекомендую использовать встроенные функции движка, о которых все почему-то забывают или не знают о них. Ниже я привожу код, который нужно добавить в function.php вашей темы.

Для использования этого куска кода следует делать такой вызов:

Где $url — путь до картинки на сервере, $width — новая ширина, $height — новая высота (Если следует изменить картинку пропорционально только по одному из этих параметров, то вместо второго следует указать null), $crop = 1 или 0 (если 1, то картинка будет обрезана, если 0, то изменения размера произойдут по большей стороне).

Кроме очевидной безопасности, этот скрипт решает и проблему кэширования, которая актуальна в популярном скрипте timtumb. А самое важное — нагрузки при генерации картинок не будет абсолютно, потому что все миниатюры, сохраняются в папке upoads навсегда, и при повторном запросе будет отдана только статика.

Удачи в сайтостроении и создании тем под WordPres, а кроме того, будьте бдительны, и проверяйте свой компьютер на вирусы, которые могут украсть пароль от вашего FTP-сервера. Берегите себя и свои сайты.