Video: Tips Mengatasi Tinta Kering Di Cartridge 2024
Peraturan pertama mengelakkan kod suntikan ke dalam program C ++ tidak pernah, pernah, membenarkan input pengguna diproses oleh juru bahasa bahasa tujuan umum. Kesalahan biasa dengan suntikan SQL adalah bahawa program menerima input pengguna seolah-olah ia sentiasa diterima dan memasukkannya ke dalam pertanyaan SQL yang kemudiannya dihantar ke enjin pangkalan data untuk diproses.
Sebagai contoh, program yang meminta input pengguna pada tarikh boleh digodam. Pendekatan paling selamat dan paling mesra pengguna adalah untuk menyediakan pengguna graf grafik kalendar yang mana ia boleh memilih tarikh mula dan akhir. Program ini kemudiannya akan membuat tarikh berdasarkan apa yang diklik pengguna.
Jika ini tidak mungkin, program ini semestinya perlu memeriksa input dengan teliti untuk memastikan input dalam format yang betul untuk tarikh, dalam kes ini yyyy / mm / dd < - dengan kata lain, empat digit diikuti dengan slit diikuti oleh dua digit dan slash dan akhirnya dua digit lagi. Tiada lagi yang perlu dipertimbangkan sebagai input yang boleh diterima. Kadangkala anda tidak boleh menjadi spesifik mengenai format tersebut. Sekiranya anda perlu membenarkan pengguna memasuki teks yang fleksibel, maka anda boleh sekurang-kurangnya mengelakkan aksara khas. Contohnya, tidak mustahil untuk melakukan suntikan kod SQL tanpa menggunakan sebutan tunggal atau berganda.
// semak beberapa rentetan 'untuk memastikan ia bersaiz ASCII size_type off = s. find_first_not_of ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_"); jika (off! = string:: npos) {cerr << "errorn";}
Kod ini mencari rentetan
s untuk karakter yang bukan salah satu aksara A melalui Z,, 0 hingga 9, atau garis bawah. Jika ia menemui watak sedemikian, maka program menolak input.