2017-05-12 3 views
-1

を確保するために:私はSQLMAP、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

しかし、私はいくつかのハッカーが第二レベルの攻撃でpdoセキュリティをバイパスできることを見てきました... –

答えて

0

あなたのコードで何を捕まえようとしているのか分かりません。すべてのstr_replaceはPDOExceptionを発生させません。

正しく準備されたステートメントを使用する場合は、単語を置き換える必要はありません。このような重要な単語を削除するだけでは、ログインを安全にすることはできず、攻撃者が悪用するのがより難しくなります。

関連する問題