보안 데이터베이스 상호 작용을 위해 매개 변수화된 쿼리 사용
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!