MYSQL

데이터베이스에서 작은따옴표(')를 다루는 방법 : SQL 인젝션 예방과 데이터 출력


데이터베이스에서 작은따옴표(')를 다루는 방법 : SQL 인젝션 예방과 데이터 출력


  2023-09-29  215 View 공개

MySQL 또는 MariaDB와 같은 데이터베이스에서 문자열 값에 ' (작은따옴표)가 포함되어 있는 경우 SQL 쿼리를 실행할 때 문제가 발생할 수 있습니다. 이러한 상황에서는 SQL 쿼리를 안전하게 처리하고, 필드값을 불러올 때 '를 정상적으로 출력하기 위해 다음과 같은 접근 방법을 사용할 수 있습니다.

 SQL 인젝션 방지를 위한 파라미터화 쿼리 사용

SQL 쿼리를 실행할 때 파라미터화된 쿼리를 사용하여 '를 포함한 문자열 값을 안전하게 처리할 수 있습니다. 예를 들어, PHP와 MySQL을 사용하는 경우 다음과 같이 mysqli 또는 PDO를 사용하여 파라미터화된 쿼리를 생성하고 실행할 수 있습니다.
Mysql
// MySQL 연결 설정
$mysqli = new mysqli("hostname", "username", "password", "database");
 
// 사용자로부터 입력 받은 값 (예: $user_input)
$user_input = "O'Connor";
 
// 파라미터화된 쿼리 사용
$query = "SELECT * FROM your_table WHERE your_field = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $user_input);
$stmt->execute();
 
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    // 결과 처리
}
$stmt->close();
$mysqli->close();
 

 필드값 출력 시 (') 출력

PHP에서 데이터베이스에서 가져온 필드값을 출력할 때 (') 를 정상적으로 출력하려면 htmlspecialchars 또는 htmlentities 함수를 사용하여 HTML 특수 문자를 이스케이프하면 됩니다. 예를 들어
PHP
// 데이터베이스에서 필드값 가져오기
$field_value = $row['your_field'];
 
// '를 정상 출력
echo htmlspecialchars($field_value, ENT_QUOTES, 'UTF-8');
위의 코드에서 htmlspecialchars 함수는 (') 를 '로 변환하여 정상적으로 출력하도록 도와줍니다. ENT_QUOTES 플래그는 작은따옴표와 큰따옴표 모두를 처리하도록 지정합니다.

이렇게 함으로써 SQL 인젝션을 방지하면서 필드값을 안전하게 출력할 수 있습니다.

Tags  #Mysql  



🚩 MYSQL 글 모음 (총 37 건)

[macOS] zsh: command not found: mysql 해결 방법

Last Updated : 2023-09-29
#MySql

Mysql DB생성 및 유저등록

Last Updated : 2023-09-29
#Mysql

Mysql 백업 및 복구

Last Updated : 2023-09-29
#MySql

MySql - POD 예제

Last Updated : 2023-09-29
#MySql

데이터베이스에서 작은따옴표(')를 다루는 방법 : SQL 인젝션 예방과 데이터 출력

Last Updated : 2023-09-29
#Mysql

[mySQL] 특정 레코드가 몇 번째인지 알아내는 방법

Last Updated : 2023-09-10
#mySQL #row_number