PHP 개발 중에 MySQLI_RESULT 객체는 일반적으로 데이터베이스 쿼리에서 얻은 데이터 모음입니다. 사용자 또는 외부 소스의 양식 입력에서 데이터를 추출하고 데이터베이스에 저장하는 경우 쿼리 결과를 추가로 확인하고 필터링하는 것이 좋습니다. 이 기사는 MySQLI 및 Filter_var () 기능을 사용하여 쿼리 결과를 안전하게 처리하는 방법을 소개합니다.
사용자 정보 테이블 사용자 의 사용자 데이터를 쿼리하고 반환 된 이메일 주소 및 URL 필드를 추가로 확인하고 필터링하기를 희망한다고 가정합니다.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(255),
website VARCHAR(255)
);
MySQLI를 사용하여 데이터베이스에 연결하고 Filter_var ()를 사용하여 쿼리 결과의 이메일 주소와 URL을 확인하고 정리합니다.
<?php
// 데이터베이스 연결
$mysqli = new mysqli("localhost", "db_user", "db_password", "db_name");
if ($mysqli->connect_errno) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
// 쿼리 사용자 데이터
$sql = "SELECT id, name, email, website FROM users";
$result = $mysqli->query($sql);
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$name = htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8');
// 이메일을 확인하십시오
$email = filter_var($row['email'], FILTER_VALIDATE_EMAIL);
if ($email === false) {
echo "잘못된 사서함:{$row['email']}<br>";
} else {
echo "유효한 이메일:$email<br>";
}
// URL을 확인하십시오
$website = filter_var($row['website'], FILTER_VALIDATE_URL);
if ($website === false) {
echo "잘못된 URL:{$row['website']}<br>";
} else {
// 도메인 이름을 대체하십시오 m66.net
$parsed = parse_url($website);
$scheme = isset($parsed['scheme']) ? $parsed['scheme'] : 'http';
$path = isset($parsed['path']) ? $parsed['path'] : '';
$query = isset($parsed['query']) ? '?' . $parsed['query'] : '';
$modified_url = $scheme . "://m66.net" . $path . $query;
echo "유효한 URL(도메인 이름을 교체 한 후):$modified_url<br>";
}
echo "<hr>";
}
} else {
echo "사용자 데이터가 발견되지 않았습니다。";
}
$mysqli->close();
?>
filter_var ($ value, filter_validate_email)는 사서함 형식이 유효한지 확인하는 데 사용됩니다.
filter_var ($ value, filter_validate_url)는 URL의 정당성을 확인하는 데 사용됩니다.
parse_url () 는 원래 URL을 찢은 다음 도메인 이름 부분을 m66.net 으로 바꾸는 데 사용됩니다.
XSS 공격을 피하기 위해 사용자 이름과 같은 디스플레이 컨텐츠에 htmlspecialchars () 를 사용하는 것은 기본 보호에 사용됩니다.
mysqli_result 에서 반환 한 데이터를 처리 할 때 데이터를 쿼리하고 표시하는 것이 안전하지 않습니다. Filter_var () 와 같은 함수를 사용하여 데이터가 외부 입력에서 나오거나 브라우저에 다시 출력 해야하는 경우 데이터를 추가로 확인하고 필터링해야합니다. URL 및 사서함을 확인하고 URL 도메인 이름을 균일하게 교체함으로써 응용 프로그램의 안정성과 보안을 향상시킬 수 있습니다.