Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk mengelakkan ralat pembolehubah super global php

Bagaimana untuk mengelakkan ralat pembolehubah super global php

PHPz
Lepaskan: 2023-04-10 14:08:30
asal
522 orang telah melayarinya

Dalam PHP, pembolehubah superglobal ialah pembolehubah global yang boleh digunakan di mana-mana dalam skrip. Pembolehubah ini tidak perlu diisytiharkan untuk digunakan, ia dipratakrifkan dan telah dimulakan oleh PHP.

Pembolehubah superglobal PHP biasa termasuk $_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER, dsb.

Kelebihan menggunakan pembolehubah super global ialah anda boleh mendapatkan data yang diserahkan dengan mudah melalui borang, maklumat penyemak imbas pengguna, dsb. Walau bagaimanapun, beberapa masalah mungkin berlaku semasa penggunaan, seperti:

  • Pembolehubah tidak ditentukan: Jika anda cuba menggunakan pembolehubah superglobal yang tidak ditentukan, ralat pembolehubah tidak ditentukan akan dilemparkan.
  • Pembolehubah kosong: Jika pembolehubah superglobal tidak menerima sebarang data, ia akan kosong dan menggunakan pembolehubah ini juga akan menyebabkan ralat.
  • Pembolehubah diganggu: Apabila menyerahkan data borang, penyerang boleh mengganggu pembolehubah super-global, menyebabkan kelemahan keselamatan dalam program.

Untuk mengelakkan ralat dengan pembolehubah superglobal, kita boleh mengambil langkah berikut:

  1. Lakukan penyemakan pembolehubah

Sebelum menggunakan superglobal variable , semak dahulu jika ia telah ditakrifkan dan tidak kosong. Ini boleh dicapai melalui fungsi isset() dan empty().

Sebagai contoh, kod berikut menyemak sama ada pembolehubah $_GET mengandungi parameter bernama "id":

if(isset($_GET['id']) && !empty($_GET['id'])) {
    // 处理 $_GET['id'] 变量
}
Salin selepas log masuk
  1. Menapis data

Apabila menggunakan pembolehubah superglobal, anda mesti ingat untuk tidak menghantar data yang tidak ditapis terus ke pangkalan data atau operasi sensitif lain, jika tidak, isu keselamatan seperti suntikan SQL mungkin berlaku. Anda boleh menggunakan fungsi penapis terbina dalam PHP, seperti addslashes(), htmlentities(), dsb.

Sebagai contoh, kod berikut boleh menapis pembolehubah $_POST menggunakan fungsi addslashes():

$username = addslashes($_POST['username']);
$password = addslashes($_POST['password']);
Salin selepas log masuk
  1. Menggunakan protokol HTTPS

Jika pembolehubah superglobal Untuk menghantar maklumat sensitif, adalah disyorkan untuk menggunakan protokol HTTPS untuk penghantaran disulitkan untuk menyelesaikan masalah data yang diganggu atau dicuri. Anda boleh melakukan ini dengan mengkonfigurasi tapak web anda untuk menggunakan sijil SSL/TLS.

  1. Dayakan mod ketat

PHP 7 memperkenalkan ciri baharu yang dipanggil mod ketat (strict_types). Selepas mendayakan mod ketat, PHP akan menyemak jenis data dengan lebih ketat, mengurangkan pepijat yang disebabkan oleh ralat penukaran jenis. Mod ketat boleh didayakan dengan menambahkan kod berikut pada kepala fail PHP:

declare(strict_types=1);
Salin selepas log masuk

Ringkasnya, apabila menggunakan pembolehubah superglobal PHP, pastikan anda memberi perhatian kepada keselamatan dan ketekalan. Lakukan penapisan dan pengesahan data yang ketat, serta ikuti amalan terbaik untuk melindungi data program dan pengguna.

Atas ialah kandungan terperinci Bagaimana untuk mengelakkan ralat pembolehubah super global php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan