라이브러리
[PHP] mysqli::escape_string - mysqli_real_escape_string의 별칭
mysqli::escape_string 이란?
mysqli::escape_string은 MySQLi 확장 함수로, 사용자 입력 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게.escape_string 함수는 MySQLi 확장 함수로, 사용자 입력 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게 처리합니다. 이 함수는 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게 처리합니다.
mysqli::escape_string 사용 이유
MySQLi::escape_string 함수를 사용하는 이유는 MySQL 쿼리에 사용자 입력 데이터를 삽입할 때 SQL 인젝션 공격을 방지하기 위해서입니다. SQL 인젝션 공격은 악의적인 사용자가 SQL 쿼리를 조작하여 데이터베이스를 손상시키거나 데이터를 탈취하는 공격입니다.
mysqli::escape_string 예제
#hostingforum.kr
php
<?php
// MySQLi 연결
$mysqli = new mysqli("localhost", "username", "password", "database");
// 사용자 입력 데이터
$username = "John Doe";
$password = "password123";
// MySQLi::escape_string 함수 사용
$escaped_username = $mysqli->real_escape_string($username);
$escaped_password = $mysqli->real_escape_string($password);
// MySQL 쿼리 실행
$query = "SELECT * FROM users WHERE username = '$escaped_username' AND password = '$escaped_password'";
$result = $mysqli->query($query);
// 결과 출력
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . " Name: " . $row["username"] . " Password: " . $row["password"] . "
";
}
} else {
echo "0 results";
}
// MySQLi 연결 닫기
$mysqli->close();
?>
위 예제에서 `$mysqli->real_escape_string()` 함수를 사용하여 사용자 입력 데이터를 안전하게 처리합니다. `$mysqli->real_escape_string()` 함수는 MySQLi 확장 함수로, 사용자 입력 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게 처리합니다.
mysqli::escape_string vs. prepared statement
mysqli::escape_string 함수는 사용자 입력 데이터를 안전하게 처리하지만, prepared statement를 사용하는 것이 더 안전하고 효율적입니다. prepared statement는 사용자 입력 데이터를 쿼리에서 분리하여 SQL 인젝션 공격을 방지합니다.
#hostingforum.kr
php
<?php
// MySQLi 연결
$mysqli = new mysqli("localhost", "username", "password", "database");
// 사용자 입력 데이터
$username = "John Doe";
$password = "password123";
// prepared statement
$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$result = $stmt->get_result();
// 결과 출력
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . " Name: " . $row["username"] . " Password: " . $row["password"] . "
";
}
} else {
echo "0 results";
}
// MySQLi 연결 닫기
$mysqli->close();
?>
위 예제에서 prepared statement를 사용하여 사용자 입력 데이터를 안전하게 처리합니다. prepared statement는 사용자 입력 데이터를 쿼리에서 분리하여 SQL 인젝션 공격을 방지합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.