집 >데이터 베이스 >MySQL 튜토리얼 >매개변수화된 쿼리는 SQL 삽입으로부터 어떻게 보호합니까?
보안 데이터베이스 상호 작용을 위해 매개 변수화된 쿼리 사용
SQL 주입은 여전히 심각한 보안 위협으로 남아 있으며 공격자가 사용자가 제출한 입력을 사용하여 악의적인 쿼리를 실행할 수 있습니다. . 웹사이트를 보호하기 위해 매개변수화된 쿼리는 강력한 솔루션을 제공합니다. 그러나 이를 통합하려면 적절한 데이터베이스 연결 처리가 필요합니다.
다음 로그인 페이지 코드 예시를 고려하세요.
<code class="php">$userName = $_POST["username"]; $userPass = $_POST["password"]; $query = "SELECT * FROM users WHERE username = '$userName' AND password = '$userPass'"; $result = mysqli_query($dbc, $query); //$dbc is for MySQL connection: $dbc = @mysqli_connect($dbhost, $dbuser, $dbpass, $db) $row = mysqli_fetch_array($result); if(!$row){ echo "No existing user or wrong password."; }</code>
매개변수화된 쿼리 구현:
SQL 삽입, 이 코드를 다음으로 바꾸세요:
<code class="php">$stmt = mysqli_prepare($dbc, "SELECT * FROM users WHERE username = ? AND password = ?"); mysqli_stmt_bind_param($stmt, "ss", $userName, $userPass); mysqli_stmt_execute($stmt); $row = mysqli_stmt_fetch($stmt);</code>
연결 처리:
원본 코드에서는 mysqli_connect()를 사용하여 데이터베이스에 대한 연결이 설정됩니다. 쿼리를 실행하기 전에 이 작업을 수행해야 합니다. 계속하기 전에 유효한 $dbc가 있는지 확인하세요.
보안 모범 사례:
위 내용은 매개변수화된 쿼리는 SQL 삽입으로부터 어떻게 보호합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!