보안 MySQL 연결을 위한 PHP의 매개변수화된 쿼리
SQL 주입은 데이터베이스 애플리케이션의 민감한 데이터를 손상시킬 수 있는 지속적인 보안 위협으로 남아 있습니다. 매개변수화된 쿼리는 이러한 위험을 완화하는 데 중요한 기술입니다. 그러나 이를 올바르게 구현하려면 쿼리 자체뿐만 아니라 데이터베이스 연결 프로세스도 이해해야 합니다.
PHP 로그인 페이지에서 다음 코드 조각을 고려하세요.
<code class="php">$query = "SELECT * FROM users WHERE username = '$userName' AND password = '$userPass'"; $result = mysqli_query($dbc, $query); $row = mysqli_fetch_array($result);</code>
이 코드는 다음에 취약합니다. 사용자가 제공한 입력인 $userName 및 $userPass가 쿼리 문자열에 직접 포함되어 있기 때문에 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>
여기서 향상된 코드:
보안 강화를 위해 사용자 비밀번호를 암호화하거나 해시해야 합니다. 이러한 추가 조치와 함께 매개변수화된 쿼리는 PHP 애플리케이션에서 안전한 MySQL 데이터베이스 상호 작용을 보장합니다.
위 내용은 PHP의 매개변수화된 쿼리는 MySQL 데이터베이스의 SQL 주입으로부터 어떻게 보호할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!