###質問内容
SQLServer のストアドプロシージャで
引数で受け取った SQL 文を実行する記述をしている場合
脆弱性になりえるでしょうか?
質問1.脆弱性の有無
質問2.脆弱性がある場合、発生しうる状況・方法
質問3.脆弱性が無い場合、安全だといえる理由
###環境情報
- クライアントサーバ型のツールがあり、ローカルネットワーク内の DB サーバに対して、データ取得などの通信を行っている。(サーバはローカルネットワークからの接続のみ可能)
- 引数で渡す SQL はツール内のソースコードに記述している。(ユーザによる任意の SQL 文は発行できない)
- SQLServer は安全なパスワードで接続を行う。
###該当のストアドプロシージャ
/* Exec(引数)でストアド呼び出し時の引数を実行 /
/ 引数として実行する SQL 文(例:SELECT * FROM テーブル名)を設定する */
USE [データベース名]
GO
CREATE Procedure [dbo].[execSql]
(@sql NVARCHAR(MAX))
As
BEGIN
Exec (@sql)
END
GO
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/14 05:25