จัดรูปแบบสตริง - เป็นสตริง ASCII ที่ใช้สำหรับการจัดรูปแบบสตริง เป็นสตริง ASCII ที่ประกอบด้วยข้อความและพารามิเตอร์การจัดรูปแบบ
สำหรับการจัดรูปแบบ ผลลัพธ์ของโปรแกรม มีรูปแบบสตริงต่างๆ ในภาษาซี
จัดรูปแบบช่องโหว่ของสตริง
สิ่งเหล่านี้เป็นข้อบกพร่องที่เกิดขึ้นเนื่องจากข้อผิดพลาดในการเขียนโปรแกรมที่โปรแกรมเมอร์อาจทำได้ง่าย หากบล็อกโค้ดที่มีแนวโน้มผิดพลาดดังกล่าวถูกส่งไปยังฟังก์ชันเอาต์พุต เช่น printf, sprintf, เป็นต้น จากนั้นดำเนินการเขียนไปยังที่อยู่หน่วยความจำที่กำหนดเอง
ตัวอย่าง
#include<stdio.h>
#include<string.h>
int main(){
char buffer[100];
strncpy(buffer, "Hii ", 5);
printf(buffer);
return 0;
} การป้องกัน
มีมาตรการบางอย่างที่สามารถนำมาใช้เพื่อป้องกันช่องโหว่ของสตริงรูปแบบ
-
ลองใช้รูปแบบสตริงเป็นส่วนหนึ่งของโปรแกรมแทนการป้อนข้อมูล ซึ่งสามารถแก้ไขได้ง่ายโดยใช้รูปแบบสตริง “%s”
-
ใช้ค่าคงที่เพื่อสร้างรูปแบบสตริงและแยกสตริงตัวแปรทั้งหมดเป็นอาร์กิวเมนต์ของการเรียกใช้ฟังก์ชันแทนที่จะใช้ในสตริงค่าคงที่
-
สำหรับกรณีที่ไม่สามารถปฏิบัติตามบรรทัดฐานการเริ่มต้นสตริงแบบคงที่และแบบแปรผันได้ ตัวป้องกันรูปแบบจะถูกใช้