SQL Injection とは、 | SQLインジェクションは、ユーザーの入力を検証できないWebアプリケーションを利用します。ハッカーは、バックエンドデータベースによる実行のために、Webアプリケーションを介してSQLコマンドを悪意を持って渡すことができる.SQLインジェクションは、データベースへの不正アクセスを取得したり、データベースから直接情報を取得することができる。多くのデータ侵害はSQLインジェクションによるものです。ユーザー名とパスワードを入力した後、GUIの後ろでSQLクエリーは次のように動作します。ユーザーがUsername:adminとPassword:passwd123を入力したとします。次のように実行します。資格情報が正しい場合、ユーザーはログインが許可されるため、非常に単純な(したがって安全でない)メカニズムです。ハッカーは、この不安定さを利用して不正なアクセスを取得する ことができる。ハッカーは、 例えば 魔法の文字列と呼ばれる単純な文字列を使用する ことができる。Username:adminPassword:anything'or'1'='1ログインボタンをクリックすると、SQLクエリは次のように動作します:上記のクエリのパスワードセクションを詳しく見てみましょう。パスワードは何もないので、パスワード=何でも偽になりますが、 '1'='1'はTRUEステートメントなのでTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')が追加されます(/)。修正された魔法の文字列は認証をバイパスできず、データベースは安全のまま 。1ログインボタンをクリックすると、SQLクエリは次のように動作します:上記のクエリのパスワードセクションを詳しく見てください。パスワードは何もないので、パスワード=何でも偽になりますが、 '1'='1'はTRUEステートメントなのでTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')が追加されます(/)。修正された魔法の文字列は認証をバイパスできず、データベースは安全のまま 。1ログインボタンをクリックすると、SQLクエリは次のように動作します:上記のクエリのパスワードセクションを詳しく見てください。パスワードは何もないので、パスワード=何でも偽になりますが、 '1'='1'はTRUEステートメントなのでTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')それは(/)を追加します。修正された魔法の文字列は認証をバイパスできず、あなたのデータベースは安全のまま 。SQLクエリは次のように動作します:上記のクエリのパスワードセクションを詳しく見てください。パスワードは何もないので、パスワード=何でも偽になりますが、 '1'='1'はTRUEステートメントなのでTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')それは(/)を追加します。修正された魔法の文字列は認証をバイパスできず、あなたのデータベースは安全のまま 。SQLクエリは次のように動作します:上記のクエリのパスワードセクションを詳しく見てください。パスワードは何もないので、パスワード=何でも偽になりますが、 '1'='1'はTRUEステートメントなのでTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')が追加されます(/)。修正された魔法の文字列は認証をバイパスできず、データベースは安全のままです。パスワードセクション。パスワードは何もないので、パスワード=何でも偽になりますが、 '1'='1'はTRUEステートメントなのでTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')が追加されます(/)。修正された魔法の文字列は認証をバイパスできず、データベースは安全のままです。パスワードセクション。パスワードは何もないので、password= anythingの結果はFALSEになりますが、 '1'='1'はTRUEステートメントなのでTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')それは(/)を追加します。修正された魔法の文字列は認証をバイパスできず、あなたのデータベースは安全のまま 。TRUEステートメントであり、したがってTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')それは(/)を追加します。修正された魔法の文字列は認証をバイパスできず、あなたのデータベースは安全のまま 。TRUEステートメントであり、したがってTRUEを取得・返す ことができる。最後に、OR演算子のために、(FALSE OR TRUE)はTRUEであるため、認証は正常にバイパスされます。単純な文字列(Magical String)のために、データベース全体が危険にさらされます。(1)入力文字列内の各一重引用符( ')は二重引用符( ")で置き換えられ、(2) ')それは(/)を追加します。修正された魔法の文字列は認証をバイパスできず、あなたのデータベースは安全のまま 。 |