sql >> データベース >  >> RDS >> Oracle

動的SQLALTERUSERクエリによるSQLインジェクションの防止

    データベースレベルでのみSQLインジェクションを阻止しようとすべきではありません。彼らがそこに着くと、彼らはほとんどすでにあなたを手に入れました。パラメータを使用し、入力をマスクして、上のレイヤーにすでにある不正な文字を削除する必要があります。 Entity Frameworkなどのツール(Frameworks?)は、危険な文字を自動的に削除します。

    DBMS_ASSERT.ENQUOTE_NAMEの使用 ここでは非常にうまくいっていますが、上のレイヤーでもこれを行うことをお勧めします。

    一般的なルール(ここに従う):確立され、証明されているセキュリティメカニズムを使用し、それらを再発明しないでください!

    さらに、

    のようなステートメント
    select * from users where username = 'IAm"WayUp';
    

    絶対に合法で危険ではありません。

    そして、DBで関数/プロシージャをどのように呼び出しますか?あなたもそこに脆弱ですよね?




    1. SQLServerクロスデータベースエイリアス

    2. RegExpを介してOracleの文字列から単純なHTMLタグを削除します。説明が必要です

    3. MountainLionのpggem'0.14.0'が失敗する

    4. Oracle Many OR vs INのSQLパフォーマンスチューニング()