FSB 발생 시나리오

  1. printf 함수에 사용자 입력을 직접 전달하는 경우:
char *user_input = get_user_input();
printf(user_input);  // This is dangerous!
  1. sprintf와 같은 함수를 사용하여 문자열을 다른 버퍼로 복사할 때:
char buffer[100];
char *user_input = get_user_input();
sprintf(buffer, user_input);  // This is dangerous!
  1. scanf와 같은 함수를 사용하여 사용자 입력을 변수에 저장할 때:
char buffer[100];
printf("Enter a format string: ");
scanf("%s", buffer);  // This is dangerous!

char *user_input = get_user_input();
printf(user_input);  // This is dangerous!

char buffer_1[100];
char *user_input = get_user_input();
sprintf(buffer, user_input);  // This is dangerous!

char buffer_2[100];
printf("Enter a format string: ");
scanf("%s", buffer);  // This is dangerous!