ПредишенСледващото

Отваряне на файлове и външни данни. Потенциална уязвимост на PHP-скриптове

Функция fopen, файл, включете и изисква да отваряте файлове от други сайтове от HTTP и FTP. Тази функция носи потенциална уязвимост в PHP-скрипт, който позволява да се използва сайта като пълномощник.

На руски език Интернет, тази уязвимост е едва покрити. В руските сайтове по проблемите на сигурността не можах да намеря преките доклади на тази уязвимост.

URL адрес fopen обвивка

CR / LF за HTTP-заявки

Комбинацията от връщане герои превоз и нов ред в заглавните разделя HTTP заявка. Повече за това може да се намери в една статия от Антон Kalmykov «HTTP-заявки Generation". Тази комбинация от символи, можете да изпратите в GET-заявката като "% 0D% 0A".

На много страници на сайта се генерират от скрипт-шаблони. Сценарият пренасочва всички заявки сайт. REQUEST_URI взета от името на файла, който искате да отворите. Файлът се чете, тя се добавя към този с навигация, шапка и т.н. и резултатът се издава на клиента.

Небрежен или неопитен програмист може да пише лесно отваряне на файла, без да провери данните:

сценария извършва HTTP-заявка:

Последните три линии на сценария се добавят автоматично, но две \ R \ н пред тях означава край на искането. По този начин, необезпечени скрипт може да се използва като прокси сървър. Знаейки, броят на "течове", сайтове, атакуващият може да изгради верига от тях, за да го направи по-трудно да се намери.

Умно използване на експлойта

(Трябва да е на един ред) PHP mail.example.com модул се свързва със сървъра чрез пристанището 25 и изпраща следната молба:

защита срещу експлойти

Вие, като програмист или собственик на сайта, е важно да се направи всичко възможно, за да получите чрез вашия сайт никой не е успял да изпрати спам. Ако това се случи, то ще бъде изпратено на всяка комутируема хавайски, чиито собственици не разбират човешкия език и срок може да го направи за вас.

Проверете дневник заявка

Най-лесният начин да забраните възможно уязвимостта - забранява отворен URL чрез файлови функции. Ако сте администратор на сървъра - Не давай allow_url_fopen в настройките на PHP. Ако ти си просто един клиент - да намалява с локално. Файлът .htaccess в главната директория на сайта напиши ред: php_value allow_url_fopen 0 Ако сте нечестивите уеб хостинг доставчик, можете да деактивирате URL fopen обвивка за всички клиенти, които използват директива php_admin_value. Включете безопасен режим (безопасен режим) в този случай не помага, функцията продължава да работи правилно.

Прекратяване при поискване offensivnom

Клиент сканира вашия сайт за недоказуеми променливи тя създава допълнителен трафик и зарежда CPU на сървъра. Ясно е, че той не се нуждае от страниците, които генерират вашия сайт, ако не действа като прокси сървър. Желателно е да убие такова искане преди началото на PHP-интерпретатор. Това може да стане с помощта на модул mod_rewrite. Файлът .htaccess в корена на сайта, да сложа ред като този:

Предполага се, че на сайта няма да бъде изпратен, използвайки метода на GET образува няколко реда вход потребителя. В противен случай, те ще бъдат спрени от това правило.

Подкрепете проекта - споделете линка, благодаря!