웹사이트 개발 과정에서 SQL 주입 공격은 공격자가 SQL 코드를 악의적으로 주입하여 웹사이트의 민감한 데이터를 탈취하거나 웹사이트를 제어할 수 있는 일반적인 보안 취약점입니다. PHP는 일반적으로 사용되는 백엔드 언어입니다. 다음은 PHP 언어 개발에서 SQL 주입 공격을 방지하는 방법을 소개합니다.
// 创建PDO对象 $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "password"); // 创建预处理语句对象 $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password"); // 绑定参数 $username = $_POST['username']; $password = $_POST['password']; $stmt->bindParam(":username", $username); $stmt->bindParam(":password", $password); // 执行语句 $stmt->execute();
자리 표시자와 바인딩된 매개 변수를 통해 SQL 주입 공격으로 인한 보안 문제를 피할 수 있습니다.
// 过滤输入的字符串 $username = filter_var($_POST['username'], FILTER_SANITIZE_STRING); // 转义输入的字符串 $username = mysqli_real_escape_string($connection, $_POST['username']);
where, FILTER_SANITIZE_STRING
函数会过滤字符串中的标签和特殊字符,而mysqli_real_escape_string
함수는 입력 데이터에서 특수 문자를 이스케이프합니다.
// 验证邮箱地址 if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { echo "Email is not valid"; } // 验证手机号 if (!preg_match("/^[0-9]{11}$/", $_POST['phone'])) { echo "Phone number is not valid"; }
데이터 확인을 수행할 때 데이터의 합법성을 보장하기 위해 특정 입력 데이터에 대해 특정 확인을 수행해야 합니다.
요약하자면, PHP 언어 개발에서 SQL 주입 공격을 방지하는 방법에는 매개변수화된 쿼리 사용, 입력 데이터 필터링 및 이스케이프, 입력 데이터 유효성 검사, 데이터베이스 권한 최소화가 포함됩니다. 개발자는 보안 인식을 강화하고 웹사이트의 보안을 보장하기 위한 효과적인 조치를 취해야 합니다.
위 내용은 PHP 언어 개발에서 SQL 주입 공격을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!