簡単な質問ですが、私は PHP の構文に詳しくないので、次のコードが SQL インジェクション攻撃から安全かどうか疑問に思っています:
private function _getAllIngredients($animal = null, $type = null) {
$ingredients = null;
if($animal != null && $type != null) {
$query = 'SELECT id, name, brief_description, description,
food_type, ingredient_type, image, price,
created_on, updated_on
FROM ingredient
WHERE food_type = \'' . $animal . '\'
AND ingredient_type =\'' . $type . '\';';
$rows = $this->query($query);
if(count($rows) > 0) {
などなど
私は少しグーグルで調べましたが、インジェクションセーフコードは WHERE food_type = \'' とは異なっているようです。$動物。ここでは「\」構文が使用されています。
申し訳ありませんが、ここで使用されている PHP または MySQL のバージョンがわかりません。また、サードパーティのライブラリが使用されている場合は、専門知識をお持ちの方から情報を提供していただけますか?
アップデート
\ はステートメントでどのような目的に使用されますか?:
WHERE food_type = \'' . $animal . '\'
私のグーグルで、私は多くの参照に出くわしましたmysql_real_escape_string
...これはSQLインジェクションやその他の不快感から保護する機能ですか?
クラス宣言は次のとおりです。
class DCIngredient extends SSDataController
mysql_real_escape_string
では、そこに含まれていると考えられるでしょうか。
SSDataController の実装を確認する必要がありますか?