SQLデータベースに値を挿入する前に次のコードを使用していれば、未処理のクエリ挿入に対して安全と見なされますか?DBエントリ用の解析文字列
myParse(htmlspecialchars(strip_tags($body)))
myParse
次のようになります。
function myParse($string) {
return ltrim(rtrim(nl2br($string)));
}
SQLデータベースに値を挿入する前に次のコードを使用していれば、未処理のクエリ挿入に対して安全と見なされますか?DBエントリ用の解析文字列
myParse(htmlspecialchars(strip_tags($body)))
myParse
次のようになります。
function myParse($string) {
return ltrim(rtrim(nl2br($string)));
}
あなたがこんにちはmysql_real_escape_stringまたはmysqli_real_escape_string機能
代わりに(おそらくもっと良いオプション)、代わりにprepared statementsを使用してください。また、** mysql_ *関数を使用しないでください!** – Bytewave
@Bytewave mysql *を使用するかどうかは、システムによって異なります。完全なmysql *を使用するphpバージョン<= 5.4のサーバには、たくさんのシステムがあります。そして、彼らはかなりうまくいく - 何かを変えるため。 – Nutscracker
この時点で、5.4より下に収まっていれば、おそらく新しいウェブホストを見つける時が来ます。 mysql_ *はPHP 7以降では非推奨で**削除**されており、可能な限り新しいプロジェクトでは使用しないでください。 – Bytewave
を使用する必要があります。準備されたステートメントを使用して、ユーザーのデータをデータベースに挿入することをお勧めします。このようにして、途中でデータの消毒を心配する必要はありません。つまり、変更されていないさまざまな方法でユーザーデータにアクセスできます。ただし、データをWebページに挿入する前に、そのデータをサニタイズする必要があります。 htmlspecialcharsを実行するか、適切で安全なものがあれば実行してください。 – Vbudo