[Seasar-user:20995] Seasar2のSQLインジェクションについて

Toshiya Takahashi [E-MAIL ADDRESS DELETED]
2011年 9月 9日 (金) 13:06:29 JST


はじめまして。高橋と申します。

Seasar2のSQLインジェクションについて調査中です。
ドキュメントや過去のメーリングリストを参照させていただきました。
ですが、初心者のため、最後の確信が持てず質問させていただきました。

現在、Java, Struts, Seasar2という環境において、
Dao内で、@[E-MAIL ADDRESS DELETED], @SqlFile, @Arguments, @Query アノテーションを主に使っております。

SQLインジェクション対策がなされているのは、

例えば
    @S2Dao(bean = sample.class)を使うDAOファイル内においての
    @Query("DirectoryName = /*directoryName*/")
や
    @Sql("SELECT Number, LineNumber FROM NumberTable WHERE Number =
/*Number*/")
や
    @SqlFileで指定された外部ファイルにおいて
    select * from employee
    where
    salary >= /*salaryMin*/
ではPreparedStatementが使われ、SQLインジェクション対策がなされています(OK)が、

@Sql内において、
    @Sql("SELECT count(NoteNumber) FROM NOTETABLE")
では,NoteNumberに関してSQLインジェクション対策がなされていない(NG)ということでしょうか。

また、
    @Arguments( { "Number", "LineNumber" })
    public Sample select(String Number, long LineNumber);
などは、SQLを自動生成するため、SQLインジェクション対策は事前になされている(OK)
ということでよろしいでしょうか。

考え違いや、その他何か考慮することがあれば、お教えいただければうれしく思います。

高橋
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20110909/e468fe72/attachment.html>


Seasar-user メーリングリストの案内