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

ORDER BY 句での SQL インジェクションの防止

    持っている場合 文字列を扱う場合は、ホワイトリストに登録するのが最善の策です。まず、sortDirection ホワイトリストに入れるのはかなり簡単なはずです:"asc" と比較して大文字と小文字を区別しません / "desc" 設定する必要があります。その他については、既知の列をホワイトリストに登録することをお勧めします 、おそらく期待される Type を渡すことによって データと検証用。しかし、絶対的なピンチでは、正規表現で制限して、(たとえば) すべてが 厳密に であることを強制することができます 英数字 (a-z、A-Z、0-9 の範囲 - 必要に応じてアンダースコアを使用) - [] を追加 、つまり

    return string.Format("[{0}] {1}", sortColumn, sortDirection);
      

    ただし、既知の列の厳密なホワイト リストは、方向の列挙と同様に、はるかに優れています。



    1. Jenkinsを使用したPostgreSQLの毎日のタスクの自動化

    2. タイムゾーンなしで文字列をタイムスタンプに変換する方法

    3. MySQLのデータベースクエリ効率の最大化-パート1-

    4. MariaDBJSON関数