Saya mendapat peringatan pesan ini di Netbeans 7.4 untuk PHP saat saya menggunakan $ _POST , $ _GET , $ _SERVER , ....
Jangan Akses Array $ _POST Superglobal Secara Langsung
Apa artinya? Apa yang dapat saya lakukan untuk memperbaiki peringatan ini?
Edit: Kode contoh Peristiwa masih menunjukkan peringatan ini.
php
netbeans
superglobals
netbeans-7.4
Kannika
sumber
sumber
Jawaban:
filter_input(INPUT_POST, 'var_name')
alih-$_POST['var_name']
filter_input_array(INPUT_POST)
alih alih- alih$_POST
sumber
$name = filter_input(INPUT_POST, $_POST["name"]);
.filter_input(INPUT_POST, 'var_name', FILTER_SANITIZE_NUMBER_INT)
Meskipun agak terlambat, saya menemukan pertanyaan ini saat mencari solusi untuk masalah yang sama, jadi saya harap ini bisa membantu ...
Menemukan diriku dalam kegelapan yang sama denganmu. Baru saja menemukan artikel ini, yang menjelaskan beberapa petunjuk baru yang diperkenalkan di NetBeans 7.4, termasuk yang ini:
https://blogs.oracle.com/netbeansphp/entry/improve_your_code_with_new
Alasan mengapa itu ditambahkan adalah karena superglobals biasanya diisi dengan input pengguna, yang seharusnya tidak pernah dipercaya begitu saja. Sebaliknya, beberapa jenis pemfilteran harus dilakukan, dan itulah yang disarankan petunjuknya. Saring nilai superglobal seandainya nilai itu mengandung racun.
Misalnya, di mana saya punya:
Saya telah menempatkan sebagai gantinya:
Anda memiliki dokumen filter_input dan filter di sini:
http://www.php.net/manual/en/function.filter-input.php
http://www.php.net/manual/en/filter.filters.php
sumber
Saya setuju dengan penjawab lain bahwa dalam banyak kasus (hampir selalu) masukan Anda perlu dibersihkan.
Tetapi pertimbangkan kode seperti itu (ini untuk pengontrol REST):
Tidak akan terlalu berguna untuk menerapkan sanitasi di sini (meskipun tidak akan merusak apa pun).
Jadi, ikuti rekomendasi, tetapi tidak secara membabi buta - cukup pahami mengapa itu untuk :)
sumber
Gunakan saja
filter_input (INPUT_METHOD_NAME, 'var_name') bukan $ _INPUT_METHOD_NAME ['var_name'] filter_input_array (INPUT_METHOD_NAME) bukan $ _INPUT_METHOD_NAME
misalnya
dari pada
Dan gunakan
dari pada
NB: Berlaku untuk semua variabel Super Global lainnya
sumber
Berikut adalah bagian dari baris dalam kode saya yang memunculkan peringatan di NetBeans:
Setelah banyak penelitian dan melihat bagaimana ada sekitar satu miliar cara untuk memfilter array ini, saya menemukan satu yang sederhana. Dan kode saya berfungsi dan NetBeans senang:
sumber