0

ウェブページのプログラミング方法がよくわからないので、次の質問があります。ユーザーが管理できる MySQL データベースがあります。私は2つのテーブルを持っています:人、ビデオ。

ユーザーが個人テーブルから個人を選択し (名前などで)、この個人をビデオ リンクに関連付けるページが必要です。データベースから人物を選択するのは簡単です。

SELECT personID, name
FROM persons
WHERE name LIKE '%John%'

したがって、ユーザーは、personID という外部キーを持つビデオ テーブルへのビデオ リンクを挿入する必要があります。

「選択」の後に人の主キーを非表示のhtml入力フォームに保存できますが、編集できるため、これはあまり安全ではないと思いますか?

私の質問は次のとおりです。選択呼び出しと挿入呼び出しの間に、そのようなキー値をどこに保存しますか? 代わりに、このすべてのデータをセッションに保存する方が安全ですか?

4

2 に答える 2

2

この種のことは非常に頻繁に発生しますが、主キーが他の人に見られることを気にしない限りはまったく問題ありません (主キーが数字の場合は、心配する必要はありません)。

テーブルから行のリストを取得し、それらを HTML で表示するとします。テーブルの各行に、DOM とデータベースの両方からその行を削除するための「削除」ボタンが必要な場合、たとえば XMLHttpRequest を介して、各行に「id」属性を持たせるのが一般的です。削除する行の主キー値。

通常、主キーは次のようになります。

  • idテーブルのフィールド
  • AUTO_INCREMENT が設定されたフィールド

つまり、セレクターdata-idを介して JavaScript でアクセスする属性を各ドロップダウンに与えます。.dataそれで十分です。SQL インジェクションから身を守り、PDO と準備済みステートメントを使用していることを確認してください。そうすれば問題ありません。

保護を強化し、data-id送信前にクライアント側の属性が変更されていないことを確認するには、データベース内のフィールドにid対応していることを確認してください。name

于 2013-08-15T12:31:45.320 に答える