ホームページ  >  記事  >  バックエンド開発  >  SQL の条件フィールドとテーブル フィールド名が同じであるため、完全なテーブル クエリが実行されます。

SQL の条件フィールドとテーブル フィールド名が同じであるため、完全なテーブル クエリが実行されます。

WBOY
WBOYオリジナル
2016-08-18 09:15:291453ブラウズ

皆さんこんにちは、私は初心者です。実際に次のような文を見つけました。 リーリー

$sid はフロントエンドから渡される値、seller_item_classify は指標、sid はテーブル内のフィールド名です。

$sid によって渡される値がたまたま 'sid' である場合、SQL where は無効になり、完全なテーブル クエリ;

実稼働環境では、$sid の値が数値または文字である可能性があるため、PHP でフロントエンド入力値をフィルターする必要がありますか?

この問題についてどう思いますか?

返信内容:

皆さんこんにちは、私は初心者です。実際に次のような文を見つけました。 リーリー

$sid はフロントエンドから渡される値、seller_item_classify は指標、sid はテーブル内のフィールド名です。

$sid によって渡される値がたまたま 'sid' である場合、SQL where は無効になり、完全なテーブル クエリ;


実稼働環境では、$sid の値が数値または文字である可能性があるため、PHP でフロントエンド入力値をフィルターする必要がありますか?

この問題についてどう思いますか?

リーリー

フロントエンドの入力値の場合、バックエンドをフィルタリングする必要があり、SQL 前処理を使用することをお勧めします。

すべてのSQL条件値に''を追加します

リーリー

効果ありますか?

as 别名

一重引用符を追加すると解決されます

'SELECT * FROM seller_item_classify where sid='.$sid.' cweight asc で注文 ;'

PDO 前処理を使用する


リーリー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。