-2

URLを解析し、番号をIDとして使用して特定のエントリを引き出しています

したがって、次のようなステートメントを使用します。

$blog_id = 5;

$query = "SELECT id,entry,date,views,comments,likes FROM blogs WHERE id=$blog_id ORDER by Id DESC";

それは安全ですか、それとも .... id=?... を使用して bind_param を使用する必要がありますか?

4

5 に答える 5

1

URLからいくつかの値を挿入すると、操作してデータベースを破壊できるため、SQLには準備済みステートメントを使用する必要があります

于 2015-06-10T06:20:12.627 に答える
1

実際: このコードは安全です。なんで?ユーザー入力は必要ありません。したがって、変更するものは何もありません。

これは意味がありませんが、ここで SQL インジェクションを実行する方法はありません。POST、GET、または Cookie を使用したら、受信情報を検証する必要があります。PDO::bind_paramfilter_var()またはを使用してこれを行うことができますhtmlspecialchars()

于 2015-06-10T06:24:54.467 に答える
1

あなたのコードは、URL から値を取得していないことを示していますが、値 5 を次のように変数にハードコーディングしています。

$blog_id = 5;

代わりにこのようなものがある場合

$blog_id = $_GET['blogid'];

コードは安全ではなく、MySQL インジェクションに対してオープンです。その場合、 ? を含むことができる準備済みステートメントを使用する必要があります。そしてbindParam。これを行うには、mysqli または PDO を使用できます。私はPDOの方が好きです。

于 2015-06-10T06:22:40.493 に答える
1

これは、SQL インジェクションに対して脆弱なようです。$id には、ID に有効な文字のみが含まれていること、およびセミコロンや SQL キーワードがないことを確認する必要があります。

于 2015-06-10T06:23:16.890 に答える