SQL Server のセキュリティ対策

SQL Server でのセキュリティ対策を紹介します。

この記事を書いた人

@takasqr アプリケーション開発が大好きなエンジニア。Vue、Swift、Electrom などでアプリを作って公開している。AWS や Firebase などのクラウドサービスも好き。

作ったアプリKeyScript

データを暗号化して保存する

機密情報を SQLServer に保存する必要がある場合は、レコードの内容を暗号化して保存することができます。

透過的なデータ暗号化 (TDE) | Microsoft Learn

SQL インジェクション

SQL インジェクションとは Wikipedia によると、

SQLインジェクション(英: SQL injection)とは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。また、その攻撃を可能とする脆弱性のことである。

具体的な手法については Wikipedia のページに記載されています。

パラメーター化された方法で、動的に生成される SQL ステートメントを作成し、以下の通り入力値を検証する必要があります。

  • ;クエリの区切り記号を禁止する
  • '文字データ文字列の区切り記号を禁止する
  • --単一行コメントの区切り記号を禁止する
  • / * ... * /コメントの区切り記号を禁止する
  • xp_cmdshellなどの xp_ カタログ拡張ストアド プロシージャを禁止する

参考