- - PR -
javaScriptを宣言的セキュリティを効かせて使いたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-11 02:38
今日は、優子です。
上記の件についてお伺いしたいことがあります。 web.xmlで、下記のように宣言的セキュリティを使って、 <security-constraint> <web-resource-collection> <web-resource-name>securitytest</web-resource-name> <url-pattern>/pages/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>never_access</role-name> </auth-constraint> </security-constraint> /pages/ 以下のファイルをURL直打ちで参照できないようにしています。 そのpages直下にjavaScriptファイル(.jsファイル)を置いているのですが、そのファイルをjspファイルで、 <head> <script language="JavaScript" src="pages/loginCheck.js"></script> </head> とよびだそうとすると、htmlページのエラー(オブジェクトを指定してください)が発生してしまいます。 宣言的セキュリティを止めると、エラーは外れるのですが、それだと/pages直下のファイルが直接参照されてしまいます。 jsp内に直接javaScriptは書かずに、あくまで外部からjavaScriptを呼ぶ方法を用いて(<head> <script language="JavaScript" src="pages/loginCheck.js"></script> </head>)、宣言的セキュリティを通用させたままjavaScriptを呼び出す方法はありませんでしょうか?皆様のご意見をお待ちしています。よろしくお願いいたします。 |
|
投稿日時: 2004-10-11 10:10
よく考えてみてください。JavaScriptは誰が実行するのでしょうか?
ちょっと考えればわかると思いますが、それはクライアントであるブラウザです。 ブラウザが参照できないJavaScriptを実行することができるでしょうか?もちろんできません。当然、web.xmlで参照不可にしたJavaScriptも実行できないわけです。 念のためブラウザがHTMLを読み込むときの挙動を書いておきます。 1.HTTP通信でHTMLをサーバから取得する。 2.取得したHTML内にJavaScriptや画像などがあった場合そのファイルをHTTP通信で取得する。 ひとつのHTMLを見るためにいくつものHTTP通信が発生していること、JavaScriptはブラウザ上で実行されることを忘れないでください。 |
|
投稿日時: 2004-10-11 12:36
pagesフォルダ以下のjsファイルを参照されたくないのなら、それは無理な話に思えます。
pagesフォルダ以下のアクセス制限の目的がjspファイルの参照を止めるためということなら、*.jsファイルだけ見える場所に置けばいいかと思います。 |
|
投稿日時: 2004-10-11 14:18
masakaさん。未記入の方。お返事ありがとうございました。
javaScriptが起動されるタイミングをちゃんと理解していませんでした。申し訳ないです。 javaScriptを直接jspに記述する方法しかないという事で対応したいと思います。どうもありがとうございました。 |
|
投稿日時: 2004-10-11 14:19
masakaさん。未記入の方。お返事ありがとうございました。
javaScriptが起動されるタイミングをちゃんと理解していませんでした。申し訳ないです。 javaScriptを直接jspに記述する方法しかないという事で対応したいと思います。どうもありがとうございました。 |
|
投稿日時: 2004-10-12 09:57
/pages/jspと/pages/jsみたいにディレクトリを分けて、
前者のみ参照禁止にすればよいのでは? Javascriptのファイルも直打ちされたくない理由が有れば別ですが・・・。 |
1