Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Formatkan kelemahan rentetan dan langkah pencegahan serta contoh dalam bahasa C

Formatkan kelemahan rentetan dan langkah pencegahan serta contoh dalam bahasa C

WBOY
WBOYke hadapan
2023-08-25 14:13:03727semak imbas

Formatkan kelemahan rentetan dan langkah pencegahan serta contoh dalam bahasa C

Format String - Ia ialah rentetan ASCII yang digunakan untuk memformat rentetan. Ia adalah rentetan ASCII yang terdiri daripada teks dan parameter pemformatan.

Untuk pemformatan output program, terdapat pelbagai rentetan format dalam C.

Format String Vulnerabilities

Ralat ini timbul kerana kesilapan pengaturcaraan yang mudah dilakukan oleh pengaturcara. Jika mana-mana kod yang terdedah kepada ralat tersebut dihantar ke fungsi output seperti printf, sprintf, dsb., operasi tulis akan dilakukan ke alamat memori sewenang-wenangnya.

Contoh

#include<stdio.h>
#include<string.h>

int main(){

   char buffer[100];
   strncpy(buffer, "Hii ", 5);
   printf(buffer);

   return 0;
}

Langkah berjaga-jaga

Terdapat beberapa langkah yang boleh anda ambil untuk mengelakkan kelemahan rentetan format

  • Cuba gunakan rentetan format sebagai atur cara dan bukannya memasukkan data. Masalah ini boleh diselesaikan dengan mudah menggunakan format rentetan "%s".

  • Buat rentetan format menggunakan pemalar dan ekstrak semua rentetan berubah sebagai argumen untuk berfungsi panggilan dan bukannya menggunakannya dalam pemalar rentetan.

  • Untuk kes spesifikasi pemulaan rentetan malar dan berubah-ubah Tidak dapat mengikuti perlindungan format penggunaan.

Atas ialah kandungan terperinci Formatkan kelemahan rentetan dan langkah pencegahan serta contoh dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam