2017-04-12 7 views
1

SQLデータベースに値を挿入する前に次のコードを使用していれば、未処理のクエリ挿入に対して安全と見なされますか?DBエントリ用の解析文字列

myParse(htmlspecialchars(strip_tags($body))) 

myParse次のようになります。

function myParse($string) { 
    return ltrim(rtrim(nl2br($string))); 
} 
+0

を使用する必要があります。準備されたステートメントを使用して、ユーザーのデータをデータベースに挿入することをお勧めします。このようにして、途中でデータの消毒を心配する必要はありません。つまり、変更されていないさまざまな方法でユーザーデータにアクセスできます。ただし、データをWebページに挿入する前に、そのデータをサニタイズする必要があります。 htmlspecialcharsを実行するか、適切で安全なものがあれば実行してください。 – Vbudo

答えて

0

あなたがこんにちはmysql_real_escape_stringまたはmysqli_real_escape_string機能

+0

代わりに(おそらくもっと良いオプション)、代わりにprepared statementsを使用してください。また、** mysql_ *関数を使用しないでください!** – Bytewave

+0

@Bytewave mysql *を使用するかどうかは、システムによって異なります。完全なmysql *を使用するphpバージョン<= 5.4のサーバには、たくさんのシステムがあります。そして、彼らはかなりうまくいく - 何かを変えるため。 – Nutscracker

+0

この時点で、5.4より下に収まっていれば、おそらく新しいウェブホストを見つける時が来ます。 mysql_ *はPHP 7以降では非推奨で**削除**されており、可能な限り新しいプロジェクトでは使用しないでください。 – Bytewave