- PR -

IFRAMEのSRCに記述方法

1
投稿者投稿内容
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2005-10-15 02:09
インラインフレームを使った画面をStrutsで作りたいのですが、
<iframe src="xxx.jsp"> という書き方をすると、HTTP404になりました。

インラインフレームに表示したいJSPがWEB-INF/JSP配下にあるため、
JSPの場所を変えずに表示させるにはweb.xmlの設定を変えるしかないそうです。

私の思いとしては、
・JSPを直接URL指定されないようにしたいので、JSPはWEB-INFの配下に置きたい。
・インラインフレームで表示させるためだけに、そのJSPだけブラウザから直接見える場所に置くのはやめたい。
・srcにサーブレットは指定したくない。
といった感じです。

できれば、web.xmlの設定もやりたくないんですが、一般的というか最適な手法を知らないので、
どうすれば良いかわかりません。
シンプルなのがいいのですが・・・。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-10-15 02:15
インラインフレームといえど、ブラウザがリクエストするのは普通の URL です。
直接 URL を叩いて閲覧できる場所にコンテンツが置いてなければなりません。

「一般的な手法」は、残念ながら「ブラウザから直接見える場所に置く」方法です。
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2005-10-15 10:20
>「一般的な手法」は、残念ながら「ブラウザから直接見える場所に置く」方法です。

では、ブラウザでJSPを直接URL入力されても仕方がないということですよね?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-10-15 11:23
引用:

では、ブラウザでJSPを直接URL入力されても仕方がないということですよね?



直接URLを入力して404エラーにならないアドレスじゃなければ
そもそもの表示ができないので、諦めるしかありませんね。
別のウィンドウで開くか、ウィンドウの中のある部分で開くかの違いです。

直接URLを入力されるというのはWEBアプリの宿命です。

対策が全くないわけではなく、
1.JavaScriptで自分自身がトップじゃなければ別画面へという方法
コード:
<html>
<head>
<script>
	if(self == top){
		location.href = "about:blank";
	}
</script>
</head>
<body>
	Hello
</body>
</html>


これならカジュアルハッキング対策は可能じゃないでしょうか。

2.JSPでインクルード
IFRAMEは諦めて、JSPでインクルードを行えば、
フォームとメインのページを、論理的に分けることが可能になりますが、
JSPをWEB-INF配下に配置してもインクルードは可能です。
Take-C
常連さん
会議室デビュー日: 2002/05/09
投稿数: 23
投稿日時: 2005-10-16 23:12
引用:

・srcにサーブレットは指定したくない。


のは何故でしょうか?

これさえ認めれば
引用:

・JSPを直接URL指定されないようにしたいので、JSPはWEB-INFの配下に置きたい。
・インラインフレームで表示させるためだけに、そのJSPだけブラウザから直接見える場所に置くのはやめたい。
<中略>
できれば、web.xmlの設定もやりたくない
<中略>
シンプルなのがいいのですが・・・。


という他の要望も満たされると思うのですが

[ メッセージ編集済み 編集者: Take-C 編集日時 2005-10-16 23:13 ]
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2005-10-17 00:27
Take-Cさんの書き込み (2005-10-16 23:12) より:
引用:

・srcにサーブレットは指定したくない。
のは何故でしょうか?



これは、親画面に表示する情報を取得すると同時にインラインフレームに表示する情報を取得して、
インラインフレームの中でそれを使って表示させようと考えていたからです。
ですが、ブラウザが直接見えるところ(<Wepアプリのルート>/JSP配下)に置いたところ、インラインフレームで表示できませんでした。
どうやら私の知識不足で、たとえインラインフレームに表示する情報を、親画面に表示する情報と同時に取得したとしても、インラインフレームの中でそれを参照することは出来ないようです。
理屈ははっきりと理解できていませんけど(^^;
なので、srcにはサーブレットを指定するようにしました。
これでうまくいっています。


[ メッセージ編集済み 編集者: NEO 編集日時 2005-10-17 00:28 ]

[ メッセージ編集済み 編集者: NEO 編集日時 2005-10-17 00:28 ]
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-10-17 09:44
iframeのsrcを処理するのはクライアントなので、もうサーバ(Strutsとか)は関係なくなってますよ。
あくまでクライアント側で判断できることしか、指定できないです。

でも、

><Wepアプリのルート>/JSP配下

なら表示できそうな気がするんですが。
単純にその「インラインフレームに表示する情報」が間違っているせいで、
クライアント側でおかしなHTMLになっているんじゃないですか?
右クリック→ソースを表示して、srcが狙い通りになっているか、確認してみては。
1

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