2017-05-12 1 views
-1

을 확보하기 : 내가하는 SQLMaps, Havij 및 Acunetix 도구 쇼 같은 몇 가지 도구를 테스트 한사용자 정의 PHP 함수는 내가 그것을 안전하게 내 로그인 입력에 대해이 기능을 작성한 데이터베이스

function secureLogin($ary = array()){ 
     try{ 
      $securedArray = array(); 
      foreach($ary as $val){ 
      $val = str_replace("'","",$val); 
      //$val = str_replace("%","",$val); 
      $val = str_replace("drop ","",strtolower($val)); 
      $val = str_replace("show ","",strtolower($val)); 
      $val = str_replace("insert ","",strtolower($val)); 
      $val = str_replace("create ","",strtolower($val)); 
      $val = str_replace("update ","",strtolower($val)); 
      $val = str_replace("select ","",strtolower($val)); 
      $val = str_replace("or ","",strtolower($val)); 
      $val = str_replace('"',"",$val); 
      $val = str_replace(";","",$val); 
      $securedArray[] = strip_tags($val); 
      } 
     }catch(Exception $exc){ 
       return $exc->getMessage(); 
       } 
      return $securedArray; 
     } 

좋은 결과를 얻을 수 있지만, 로그인 페이지에서 로그인 페이지/입력을 만들어야한다는 전문가의 제안을 받고 싶습니다.

+3

내가 준비한 진술 또는 pdo가 충분하다고 생각하지만 – JYoThI

+0

나중에 해커들이 2 차 공격으로 pdo 보안을 우회 할 수 있다는 것을 알았습니다 ... –

답변

0

코드에서 catch하려고하는 것을 이해하지 못합니다. 모든 str_replace는 PDOException을 발생시키지 않습니다.

정확하게 준비된 문장을 사용하면 단어를 바꿀 필요가 없습니다. 또한 이러한 중요한 단어를 삭제하면 보안을 강화하지 못하고 공격자가 악용하기가 더 어려워집니다.

관련 문제