>백엔드 개발 >PHP 튜토리얼 >PHP 및 Mysql 로그인 기능으로 SQL 삽입 방지

PHP 및 Mysql 로그인 기능으로 SQL 삽입 방지

小云云
小云云원래의
2018-02-27 10:40:051574검색

최근에 SQL 인젝션에 대해 알아보았더니 많은 분들의 로그인 기능이 사용자가 입력한 사용자 이름과 비밀번호를 동시에 사용하여 SQL 문으로 조합하고, 쿼리에서 로그인 가능 여부를 판단하는 결과가 있는지를 판단하는 것을 발견했습니다. . 예:


  1. <?php  
    $username = $_POST[&#39;username&#39;];  
    $password = $_POST[&#39;password&#39;];  
    $sql = "select * from user where username=&#39;{$username}&#39; and password=&#39;{$password}&#39; ";  
    $this->db->query($sql);

이렇게 하면 사용자 이름 매개변수에 ' 또는 1=1을 삽입하는 것이 쉽습니다. 이는 단지 예일 뿐이지만 현재 많은 프레임워크가 있습니다. 주의하지 않으면 최종 결합문은 이와 비슷합니다. 여기서는 입력 매개변수 필터링, 매개변수 바인딩, 구문 분석 및 SQL 삽입을 처리하는 기타 일반적인 방법에 대해 이야기하지 않고 판단 방법을 변경할 수 있습니다. 데이터를 입력한 후 PHP를 사용하여 비밀번호가 일치하는지 판단하면 문제가 해결되나요?

관련 추천:

    SQL 인젝션 방지를 위한 10가지 방법 추천

위 내용은 PHP 및 Mysql 로그인 기능으로 SQL 삽입 방지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.