SQL 주입 공격 방지를 위한 PHP 프로그래밍 팁
소개:
SQL 주입은 일반적인 웹 애플리케이션 공격 방법입니다. 공격자는 사용자가 입력한 데이터에 악의적인 SQL 코드를 삽입하여 데이터베이스에 불법적으로 액세스하거나 실행합니다. . SQL 주입 공격으로부터 애플리케이션을 보호하려면 사용자가 입력한 데이터를 필터링, 이스케이프 및 검증하는 프로그래밍 기술을 채택해야 합니다. 이 기사에서는 SQL 주입 공격을 방지하는 데 도움이 되는 몇 가지 일반적인 PHP 프로그래밍 기술에 대해 설명합니다.
$mysqli = new mysqli("localhost", "username", "password", "database"); if($mysqli->connect_error) { die("连接数据库失败: " . $mysqli->connect_error); } $stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ? AND password = ?"); $stmt->bind_param("ss", $username, $password); $username = $_POST['username']; $password = $_POST['password']; $stmt->execute(); $result = $stmt->get_result(); while($row = $result->fetch_assoc()) { // 处理结果集 } $stmt->close();
$dsn = 'mysql:host=localhost;dbname=database'; $username = 'username'; $password = 'password'; try { $pdo = new PDO($dsn, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die("连接数据库失败:" . $e->getMessage()); } $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password"); $stmt->bindParam(':username', $username); $stmt->bindParam(':password', $password); $username = $_POST['username']; $password = $_POST['password']; $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach($result as $row) { // 处理结果集 } $stmt->closeCursor();
$username = $_POST['username']; $password = $_POST['password']; if(!empty($username) && !empty($password)) { // 验证用户名和密码是否符合要求,如长度、字符等 // ... // 过滤特殊字符 $username = filter_var($username, FILTER_SANITIZE_STRING); $password = filter_var($password, FILTER_SANITIZE_STRING); // 执行SQL查询 // ... } else { die("用户名和密码不能为空"); }
요약:
SQL 주입 공격을 방지하려면 사용자가 입력한 데이터를 필터링, 이스케이프 및 검증하는 단계를 수행해야 합니다. 준비된 문과 매개변수화된 쿼리를 사용하면 SQL 주입 공격을 효과적으로 방지할 수 있습니다. 동시에 입력 검증과 필터링도 중요한 방어 수단입니다. 이러한 PHP 프로그래밍 팁을 사용하면 애플리케이션의 보안을 향상하고 사용자 정보와 데이터베이스 보안을 보호할 수 있습니다.
위 내용은 SQL 주입 공격을 방지하기 위한 PHP 프로그래밍 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!