최근에 SQL 인젝션에 대해 알아보았더니 많은 분들의 로그인 기능이 사용자가 입력한 사용자 이름과 비밀번호를 동시에 사용하여 SQL 문으로 조합하고, 쿼리에서 로그인 가능 여부를 판단하는 결과가 있는지를 판단하는 것을 발견했습니다. . 예:
<?php $username = $_POST['username']; $password = $_POST['password']; $sql = "select * from user where username='{$username}' and password='{$password}' "; $this->db->query($sql);
이렇게 하면 사용자 이름 매개변수에 ' 또는 1=1을 삽입하는 것이 쉽습니다. 이는 단지 예일 뿐이지만 현재 많은 프레임워크가 있습니다. 주의하지 않으면 최종 결합문은 이와 비슷합니다. 여기서는 입력 매개변수 필터링, 매개변수 바인딩, 구문 분석 및 SQL 삽입을 처리하는 기타 일반적인 방법에 대해 이야기하지 않고 판단 방법을 변경할 수 있습니다. 데이터를 입력한 후 PHP를 사용하여 비밀번호가 일치하는지 판단하면 문제가 해결되나요?
관련 추천:
위 내용은 PHP 및 Mysql 로그인 기능으로 SQL 삽입 방지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!