Apa itu allow_url_include di php?

Anda cukup mengelola fungsi allow_url_fopen dan allow_url_include dengan mengedit php. ini di server Anda. Anda dapat mengaktifkannya jika fungsi ini dinonaktifkan di file konfigurasi php

Fungsi ini mungkin dinonaktifkan di file konfigurasi php di beberapa server hosting bersama. Anda cukup mengelola fungsi ini dengan membuat php khusus. file ini di bawah folder publik Anda

Di Server Khusus

Buka file /etc/php.ini. ini dan tambahkan atau ubah di bawah dua baris

#vim /etc/php.ini allow_url_fopen = On ...... allow_url_include = On

Mulai ulang server web

# service httpd restart _

Di Server Hosting Bersama

Buat atau buka php. ini di bawah direktori publik domain Anda dan tambahkan dua baris berikut untuk mengaktifkan fungsi ini

izinkan_url_fopen

Untuk tujuan keamanan, fungsi ini dinonaktifkan secara default karena fungsi ini memungkinkan Anda untuk mengakses file jarak jauh yang dibuka. Jika Anda ingin mengaktifkan fungsi ini, Anda perlu memodifikasi di php kustom. file ini. Fungsi ini dinonaktifkan di beberapa server shared hosting di file konfigurasi PHP untuk keamanan. Dengan bantuan membuat php kustom. File ini di bawah folder publik Anda dapat mengatur kedua fungsi

izinkan_url_sertakan

Fungsi ini juga dinonaktifkan demi keamanan. Fungsi ini memungkinkan Anda untuk mengakses file jarak jauh dengan memerlukan atau menyertakan pernyataan. Membutuhkan atau menyertakan pernyataan adalah poin utama serangan untuk perintah kode. Fungsi ini dinonaktifkan di beberapa server shared hosting di file konfigurasi PHP untuk keamanan

Langkah-langkah untuk mengaktifkan fungsi allow_url _fopen dan allow_url_include

Jika Anda ingin mengaktifkan fungsi allow_url_include dan allow_url_fopen, ubah file konfigurasi php. Untuk mengaktifkan fungsi ini ikuti langkah-langkah di bawah ini

Langkah 1. pertama anda harus membuka atau membuat php. file ini di bawah folder publik.

Langkah 2. kemudian menambahkan dua baris di php. file ini untuk mengaktifkan fungsi.

izinkan_url_fopen = aktif

allow_url_include = aktif

Langkah-langkah untuk menonaktifkan fungsi allow_url_fopen dan allow_url_include

Kami menyarankan Anda untuk menonaktifkan fungsi ini jika Anda ingin mengamankan server. Untuk menonaktifkan fungsi ini, Anda hanya perlu memodifikasi file konfigurasi php

Langkah 1. Anda harus membuka atau membuat php. file ini di bawah folder publik.

Langkah 2. lalu nonaktifkan kedua fungsi hanya dengan menambahkan dua baris dalam file.

izinkan_url_fopen = mati

allow_url_include = nonaktif

Saat allow_url_include_ diaktifkan, PHP dapat menyertakan skrip dari lokasi jauh, seperti server HTTP atau FTP. Dalam praktiknya, fitur ini hampir tidak digunakan oleh aplikasi mana pun. Namun, fitur ini dapat menyebabkan kerentanan keamanan yang serius. Yakni, penyerang dapat menggunakannya untuk mengubah kerentanan penyertaan file lokal menjadi kerentanan penyertaan file jarak jauh, baik mengaktifkan atau menyederhanakan pencapaian eksekusi kode jarak jauh

Tindakan yang Harus Dilakukan

Untuk menonaktifkan allow_url_include, harap tambahkan atau modifikasi php. opsi konfigurasi ini seperti yang terlihat di bawah ini. Opsi konfigurasi ini tersedia sejak PHP 5. 2. 0 dan ditandai sebagai tidak digunakan lagi pada PHP 7. 4. 0

Saat allow_url_include diperkenalkan, itu adalah perlindungan yang cukup baik terhadap "penyertaan skrip jarak jauh". Namun, itu menyebabkan masalah untuk perlindungan "penyertaan skrip lokal". RFC ini mengatasi masalah dan membuat perlindungan "penyertaan skrip lokal" lebih efektif

allow_url_include adalah INI_SYSTEM, oleh karena itu sertakan/wajibkan abaikan saja pengaturan untuk pembungkus aliran tertentu selalu. allow_url_include sebenarnya tidak melarang penyertaan formulir URL. Ini memungkinkan “phar. //” terlepas dari pengaturan allow_url_include dan membantu penyerang menyamarkan skrip serangan. e. g. termasuk(“phar. //evil_phar_file/evil_script. php") diizinkan kapan saja. Perilaku saat ini memungkinkan untuk mem-bypass jenis filter keamanan tertentu dan memungkinkan skrip penyerang dieksekusi

Perilaku allow_url_include saat ini salah karena 3 alasan

  1. Penyisihan implisit dari nama file yang dibentuk URL bermasalah. Adalah tanggung jawab "penelepon" untuk menyetel pengaturan ini sebagaimana dimaksud. (Atau "callee" harus memiliki API untuk menimpanya untuk melakukan pekerjaan itu)

  2. Itu tidak membuat "sertakan/wajibkan" berperilaku seperti yang tersirat dari nama pengaturan INI

  3. Menjadi INI_SYSTEM meningkatkan risiko bypass filter keamanan

allow_url_include menjadi INI_SYSTEM adalah rasa aman yang salah. Itu juga melanggar prinsip API sederhana itu

  • “penelepon” harus memiliki tanggung jawab untuk menyetel kondisi yang benar

atau

  • "callee" harus memiliki API/parameter untuk menyetel kondisi yang benar untuk API

Allow_url_include saat ini dan API terkait tidak memenuhi keduanya

Kami membutuhkan URL yang lebih tepat termasuk kontrol

Usul

  • Hapus pengaturan allow_url_include INI dan perkenalkan URL yang lebih tepat termasuk kontrol

Pilihan 1

  • Perkenalkan parameter ke-2 yang menentukan awalan URL (pembungkus)

include('phar://phar_file/script.php', 'phar://');

Pro

  1. Membutuhkan lebih sedikit modifikasi kode = lebih sedikit BC

  2. Perbandingan string sederhana sudah cukup

  3. Lebih spesifik pembungkus mana yang digunakan. (Hanya pembungkus yang ditentukan yang dapat digunakan)

  4. Lebih fleksibel saat pembungkus baru ditambahkan. (Tidak diperlukan kode tambahan untuk ini)

Kontra

  1. 'far. //' terlihat berlebihan

  2. Parameter ke-2 hanya digunakan untuk menentukan pembungkus. saya. e. Tidak dapat menggunakannya tanpa bendera mode tersemat, dll. Mungkin ada pembungkus semu seperti "noembed. //"

Pilihan 2

  • Perkenalkan flag “inlcude_type” untuk menyertakan*/require*() sebagai parameter ke-2

include 'script.php' [, $include_type=0 ];

di mana $include_type (bitwise) berada

  • PHP_STREAM_LOCAL = 1 - izinkan pembungkus lokal. phar. //, zip. //, dll

  • PHP_STREAM_REMOTE = 2 - izinkan pembungkus jarak jauh. http. //, https. //, ftp. //, dll

  • PHP_STREAM_ALL = 3 (PHP_STREAM_LOCAL. PHP_STREAM_REMOTE)

Tambahkan metode getType() ke kelas stream wrapper mengembalikan PHP_STREAM_LOCAL, PHP_STREAM_REMOTE atau PHP_STREAM_ALL

Pro

  1. API terlihat lebih sistematis/bersih

Kontra

  1. Lebih kompleks dan membutuhkan banyak modifikasi daripada opsi #1 (More BC)

Perubahan Tidak Kompatibel Mundur

  • Beberapa termasuk/mengharuskan yang menggunakan URL implisit termasuk perlu parameter ke-2

  • Pilihan 2. Jika kelas stream wrapper tidak memiliki metode getType(), maka akan diperlakukan sebagai PHP_STREAM_REMOTE

Versi PHP yang Diusulkan

Dampak RFC

Untuk SAPI

CLI - memuat phar sebagai skrip utama diizinkan secara default

php. // masukan dan php. // penanganan stdin

php. // masukan dan php. //stdin harus ditangani secara berbeda. Ini adalah input "jarak jauh" di bawah Web SAPI sementara ini adalah input "lokal" di bawah CLI. Oleh karena itu, pembungkus “php” ini ditangani sesuai dengan tipe SAPI

Untuk Ekstensi yang Ada

Modul memiliki pembungkus aliran

Pembungkus ditentukan oleh distribusi sumber PHP. (Mungkin ada yang lain)

$ php -r "var_dump(stream_get_wrappers());" array(12) { [0]=> string(5) "https" [1]=> string(4) "ftps" [2]=> string(13) "compress.zlib" [3]=> string(3) "php" [4]=> string(4) "file" [5]=> string(4) "glob" [6]=> string(4) "data" [7]=> string(4) "http" [8]=> string(3) "ftp" [9]=> string(14) "compress.bzip2" [10]=> string(4) "phar" [11]=> string(3) "zip" }_

Ke Opcache

Konstanta Baru

Akan ada konstanta untuk pembungkus aliran. TBD

php. ini Default

allow_url_include ini dihapus

Masalah Terbuka

Fungsionalitas PHP tidak terpengaruh

Lingkup Masa Depan

allow_url_fopen memiliki masalah yang sama. Namun, allow_url_fopen memiliki lebih sedikit masalah karena tidak mem-parsing dan menjalankan skrip

Bagaimana cara memasukkan URL dalam PHP?

Opsi PHP allow_url_include biasanya memungkinkan pemrogram untuk memasukkan() file jarak jauh (sebagai kode PHP) menggunakan URL daripada jalur file lokal.

Bagaimana cara mengatur Allow_url_fopen di PHP?

Cara mengaktifkan atau menonaktifkan allow_url_fopen di cPanel .
1) Masuk ke cPanel
2) Cari bagian PERANGKAT LUNAK dan klik Pilih versi PHP
3) Di jendela baru, klik tautan Switch To PHP Options
4) Di sini Anda dapat menemukan allow_url_fopen dan centang kotak di sebelahnya untuk mengaktifkannya atau hapus centang pada kotak untuk menonaktifkannya

Apa batas waktu soket default PHP?

int default_socket_timeout. Batas waktu default (dalam detik) untuk aliran berbasis soket . Menentukan nilai negatif berarti batas waktu tak terbatas. dari string. Alamat email yang akan digunakan pada koneksi FTP yang tidak diautentikasi dan sebagai nilai Dari header untuk koneksi HTTP, masing-masing saat menggunakan pembungkus ftp dan http.

Postingan terbaru

LIHAT SEMUA