- PR -

ダイレクトアクセス対策について[Struts]

1
投稿者投稿内容
YMM
会議室デビュー日: 2007/04/15
投稿数: 15
投稿日時: 2007-05-06 12:06
いつもおせわなっております。
Struts 1.3を利用して開発で行っております。

ウィーザードなどのページを作成する際に、
課題の一つとして、直打ち対策があると思いますが、
皆様はどのようにして、直打ち対策を実現されていますでしょうか。

色々と方法があると思いますが、この際に、
見直しを行いたいと思い投稿させていただきました。
「フレームワークを変えろ」というのは、無しにして
アドバイスをいただけないでしょうか。
よろしくお願いいたします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-05-06 16:32
ウィザードの開始でセッションにフラグのようなものを設定し、
ウィザードの終了でフラグを除去するようにしてはいかがでしょう。
そのフラグ次第で直打ちか遷移か判定できると思います。

これらの処理を自動的に行うものとしてトークンと呼ばれる仕組みもあります。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-05-06 20:15
前ページ同じURLにして hidden パラメータかなにかで遷移先を決定するというのはいかがでしょうか。
YMM
会議室デビュー日: 2007/04/15
投稿数: 15
投稿日時: 2007-05-06 23:49
ご回答ありがとうございます。

>これらの処理を自動的に行うものとしてトークンと呼ばれる仕組みもあります。

Transaction Tokenですよね。

Transaction Tokenと、validationの融合はどうされていますでしょうか?
私は、Actionの中で token設定の判定をすると、validationを利用した場合、
入力チェックが行われた後に、判定が行われるため、画面遷移として
少し違和感を感じてしまいます。validationの前に、tokenのチェックをすることが
可能なのでしょうか。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-05-07 00:54
ActionFormを継承しているなら、ActionForm#validate()内で
TokenProcessor#isTokenValid(HttpServletRequest)で判定できますね。

トークンの処理は基本的にアクションの中で行うものですが、
トークンの処理自体がTokenProcessorというクラスで完結できるように出来ているので、
そのクラスを使うのも手かと思います。
YMM
会議室デビュー日: 2007/04/15
投稿数: 15
投稿日時: 2007-05-07 08:15
かつのりさんありがとうございます。
かつのりさんが言われたとおり、今まで、
validate()の中で行うケースは試したことは
あったのですが、validate.xmlを定義をして、
validate()を継承してvalidate.xmlで記述した内容を
実行させてから、isTokenValidを利用していました。

>トークンの処理は基本的にアクションの中で行うものですが

そうですよね。Strutsを開発されたかたは、
このようなケースを想定していなかったんでしょうか、
自己都合になってしまいますが、validate.xmlの処理の前に、
isTokenValidができるような仕組みがほしいと思いました。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-05-07 11:08
JBossSeamとかではRequest以上Session未満のスコープをサポートしていますね。
Struts2でもそのようなスコープをサポートしていたような気がします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-05-07 14:08
気になったのですが「直打ち対策」の「直打ち」って
何を直打ちすることを指していますか?
URLなのかなぁとは思うのですが。
GETで作ってるのでもなければエラーページ表示するのが適切でしょうかね。

そういえば、同じURLにPOSTし続ける構成のシステムも昔見たことありますね。
1

スキルアップ/キャリアアップ(JOB@IT)