web-dev-qa-db-ja.com

専門用語なしでSQLインジェクションを説明するにはどうすればよいですか?

SQLインジェクションについて、技術的なトレーニングや経験のない人に説明する必要があります。うまくいったアプローチを提案できますか?

549
torayeff

SQLインジェクションとは、悪意のあるユーザーが、許可されていないWebサイトから情報を取得しようとする場所です。

これは、他の人に尋問するようなもので、尋問者は悪意のあるユーザーであり、尋問される人はウェブサイトです。

質問者が行うことができることは次のとおりです。

  • 人の背景を調べて弱点を見つける
  • 過去に他の人々に役立ったさまざまな既知の技術を使用
  • 使用する新しいテクニックを見つける

尋問されている人の弱点は次のとおりです。

  • 人の養成
  • 人の知性
  • 人の家族
  • 彼らがいる人のタイプ

注意すべき点は、他の人よりも優れた質問者がいることであり、すぐに話す人もいれば、話さない人もいます。

3
ponsfonze

技術的なアナロジーでうまく説明することは問題ありませんが、私は少し長くて足りないように思えます。

行政や財政の乱用を制限するための厳格な事務処理や要件の問題だと説明します。

それが十分に厳密な方法で行われた場合、ネットを通過できる邪悪な魚が少なくなります。

私は、ボックスと矢印の付いた非常に単純な疑似コードを使用した単純な描画を使用し、ロボットとボックスの類似性について説明します。

2
jokoon

非技術者のための私のアプローチ:

あなたが大きなオフィスビルで働いていると仮定します。すべての店員はオフィスへの独自のキーを持っています(=プログラマが実行したかったSQLクエリ)。今度は誰かがneedleファイルを取り、彼のキーを少し変更します、すなわちピンを削除します(= SQL-Injection、SQLクエリを変更します)。この変更されたキーは、異なる(またはおそらくすべてのドア)を開くことができます。そのため、店員はこの家の中のより多くの、またはすべてのオフィスにアクセスでき、他のオフィスからの文書の読み取り/変更ができます。

おそらく誰もがキーとロックを使用するのに慣れているので、理解しやすいはずであり、私の観点からは、SQLインジェクションによく似ています。

1
qbi