SQLインジェクションとは何ですか?

Webの脆弱性の最大のクラスの1つは、「SQLインジェクション」またはSQLiとして知られています。構造化照会言語(別名SQL)は、データベースの大部分と対話するために使用される言語ですが、データベースプラットフォームに応じて、言語のさまざまなバリエーションが使用されます。アカウント情報などのユーザーデータを保存するWebサイト、または画像ホスティングWebサイトなどのユーザーアップロード機能を提供するWebサイトは、データベースを使用してそのデータを保存します。

ヒント:SQLは通常、「ess cue ell」または「sequel」と発音され、最初のオプションはイギリス英語でより一般的であり、2番目のオプションはアメリカ英語でより一般的です。どちらの発音も、データベースについて話すという文脈で一般的に理解されています。

SQLiとは何ですか?

SQLiは、Webサーバーとデータベースの間で通信するコードを設計するWeb開発者が、ユーザーによって送信されるSQLコマンドに対する保護を実装しない脆弱性です。問題は、データベースステートメントから脱出して、新しい引数またはまったく新しいステートメントを追加できる可能性があることです。変更されたデータベースステートメントまたは2番目のデータベースステートメントは、大規模な削除やデータ漏洩の可能性を含むさまざまなアクションを実行できます。

エクスプロイトは通常、既存のステートメントをすべての状況で真にすること、またはすべてのデータの削除や表示などの特定のアクションを実行する2番目のバッチコマンドを提供することを中心に展開されます。たとえば、WebサイトにログインするためのSQLステートメントは、送信されたユーザー名とパスワードがデータベースのエントリと一致するかどうかを確認する場合があります。SQLインジェクションのエクスプロイトにアクセスしようとすると、「or 1 = 1」などの「ortrue」句を追加しようとする場合があります。これにより、「パスワードが[this]の場合、またはthisステートメントがtrueの場合、[this]ユーザー名でログインする」という行に沿ってコマンドが作成されます。

SQLiを防ぐ方法

SQLiは、Webサイトがデータベースを侵害し、オンラインでリークする非常に一般的な方法でした。セキュリティ意識が開発者トレーニングの一部であることを保証するための協調した努力により、このクラスの脆弱性は大部分が解決され、もはや見られることはめったにありません。

SQLiを防ぐ正しい方法は、パラメータ化されたクエリとも呼ばれるプリペアドステートメントを使用することです。従来、SQLステートメントは宣言されており、その宣言中にユーザー入力が連結されます。プリペアドステートメントを使用して、データベースコマンドが書き出された後、別の関数がコマンドを実行してユーザーデータを挿入します。これは小さな違いのように見えるかもしれませんが、コマンドの処理方法を完全に変更します。この違いにより、意味のあるSQLコマンドが実行されなくなり、すべてのユーザー入力が文字列として扱われるため、SQLインジェクションが発生しなくなります。



Leave a Comment

Google Chrome に常に完全な URL を表示させる方法

Google Chrome に常に完全な URL を表示させる方法

Chrome では、デフォルトでは完全な URL が表示されません。この詳細はあまり気にしないかもしれませんが、何らかの理由で完全な URL を表示する必要がある場合は、Google Chrome でアドレス バーに完全な URL を表示する方法の詳細な手順をご覧ください。

古いRedditを取り戻す方法

古いRedditを取り戻す方法

Reddit は 2024 年 1 月に再びデザインを変更しました。再デザインはデスクトップ ブラウザ ユーザーに表示され、リンクを提供しながらメイン フィードを絞り込みます。

Googleレンズを使って教科書のコンテンツをコピーする方法

Googleレンズを使って教科書のコンテンツをコピーする方法

本からお気に入りの引用を Facebook に入力するのは時間がかかり、間違いも多いです。Google レンズを使用して書籍からデバイスにテキストをコピーする方法を学びます。

ChromeでサーバーDNSアドレスが見つからない問題を修正

ChromeでサーバーDNSアドレスが見つからない問題を修正

Chrome で作業しているときに、特定の Web サイトにアクセスできず、「Fix Server DNS アドレスが Chrome で見つかりませんでした」というエラーが表示されることがあります。この問題を解決する方法は次のとおりです。

Google Homeでリマインダーを作成する方法に関するクイックガイド

Google Homeでリマインダーを作成する方法に関するクイックガイド

リマインダーは常に Google Home の大きなハイライトでした。彼らは確かに私たちの生活を楽にしてくれます。重要な用事を見逃さないように、Google Home でリマインダーを作成する方法を簡単に説明します。

Netflix: パスワードを変更する

Netflix: パスワードを変更する

好みのブラウザまたは Android アプリを使用して、Netflix ストリーミング ビデオ サービスのパスワードを変更する方法。

Chromebook で検索履歴と閲覧履歴を削除する方法

Chromebook で検索履歴と閲覧履歴を削除する方法

ブラウザの履歴を削除すると、特に共有または公開の Chromebook を使用している場合、閲覧アクティビティの機密性を保つことができます。このチュートリアルでは、個人、職場、学校の Chromebook でブラウザ履歴を削除する手順について説明します。

Googleスプレッドシートで行と列を入れ替える方法

Googleスプレッドシートで行と列を入れ替える方法

スプレッドシートを設定した後で、別のレイアウトの方がうまく機能することに気づいたことがありますか。Google スプレッドシートでは、行を列に、またはその逆に簡単に変換して、データを自由に表示できます。

最も人気のあるビデオ ゲーム ジャンル 7

最も人気のあるビデオ ゲーム ジャンル 7

誕生以来、ゲーマーが楽しめるようにさまざまなスタイルのビデオ ゲームが作成されてきました。アクション指向のもの、頭を使ってパズルを解いたり戦略を立てたいもの、またはカジュアルなゲームプレイでリラックスしたものなど、誰もが楽しくプレイできるものがそこにはあります。

Facebookメッセンジャーの通知が消えない?それを修正する8つの方法

Facebookメッセンジャーの通知が消えない?それを修正する8つの方法

Facebook Messenger の通知は、未読のメッセージをすべて読み終え​​ると消えるはずです。ただし、通知が引き続き表示され、何をしても消えない場合は、問題を解決するために適用できる解決策がいくつかあります。