java appletをダウンロードされないようにするには

[上に] [前に] [次に]
rec 2000/03/25(土) 08:18:38
java appletをダウンロードされないようにするにはどうすればよいのでしょう。
web上の指定したurlからのみ使ってもらいたいのです。以前javascriptをcgiで出力する方法を教えていただきましたが同じ方法でjavaバイトコードをcgiで出力できるのでしょうか。
つまり
<applet>code=xxx.cgi</applet>
は可能でしょうか

三原克大 [E-Mail] 2000/03/25(土) 11:43:02
# Java applet は少々分かるけれども CGI はさっぱりです。

CGI でバイトコードをそのまま送信するところまではいいとして、
# GIF, JPEG, PNG が CGI で送れるのですから
# Java バイトコードも送れるはずです。
受け取ったブラウザがきちんと解釈してくれるかが問題です。

これは、実験してみないと分かりません。

HotJava, Netscape, Internet Explorer は
.class が text/plain として送られてきても
解釈できるみたいですけれど
# だから、いきなり Java applet を置くことができました
だからかえって挙動が分からないところもあります。
例えば、エラーメッセージが送られてきたらどうしてるかとか。

もっと詳しい方がいらっしゃればよい(うれしい)のですが、
このサイトは Java 嫌いな方が多いようですし。

あとは、サーバによる参照元の判定がどのくらい正確かが問題です。
これは "HTTP_REFFER" をキーワードにして
ラウンジを検索するのがいいんじゃないでしょうか。

なぜって、
他人の Java applet を借りるのに、
ダウンロードして自分のサーバに置く必要はないんですから。
<applet> の中に、 CODEBASE 属性で
他人の Java applet が置かれているサーバを指定すれば
他人のサーバからバイトコードを取得して実行できるんです。
# これを知らない人は多いみたいです
# Java applet はむしろそういう使い方を想定しているような気が...
rec さんの要望を考えると
参照しているページの URL によって
送信するしないを振り分けなければなりませんが、
十分に正確に振り分けられるかどうかが問題です。

Ichi 2000/03/26(日) 06:42:00
>java appletをダウンロードされないようにするにはどうすればよいのでしょう。
無理です。ダウンロードできないということは実行できないということですから。

HTTPしゃべってHTTP_REFERERを偽って持って来たり、
HTTP_REFERERがチェックされていなければiriaとかで持って来たり...
といろいろ方法はあります。

直リンク対策なら出来ますが。(HTTP_REFERER)

rec 2000/03/28(火) 05:48:05
http://java-house.etl.go.jp/ml/archive/j-h-b/002380.html
にもう一つの直リンク対策がのってました。
やはり

>HTTPしゃべってHTTP_REFERERを偽って持って来たり、
>HTTP_REFERERがチェックされていなければiriaとかで持って来たり...
>といろいろ方法はあります。

>直リンク対策なら出来ますが。(HTTP_REFERER)
ですか。逆アセンブルの前には手も足も出ませんか。
>iriaとかで持って来たり...
iriaとは初めて知りました。後で勉強します。わからなかっ時また解説していただけると大変助かります。

Ichi 2000/03/28(火) 06:33:55
>iriaとかで持って来たり...
別にiriaである必要はありません。例としてあげただけです。

>逆アセンブル
どう言うことでしょうか。ダウンロードには逆アセンブルは関係ありませんが。
ダウンロードされると逆アセンブルされる、と言うことですか?

にゃあ 2000/03/28(火) 07:06:37
アプレットをDLし、そのファイルを逆アセンブルして、HTTP_REFERERのチェック部分を外す…
ということなんでしょう。

『いじられたくない物は、ネットにはアップロードしない』という謎の哲学が出てきそうですね(笑)

三原克大 [E-Mail] 2000/03/28(火) 13:45:17
> http://java-house.etl.go.jp/ml/archive/j-h-b/002380.html
> にもう一つの直リンク対策がのってました。
私の目から見たら、このままでは直リンク対策になっていません。
ここで使われている getCodeBase() は、<applet> の
CODEBASE 属性を取得するメソッドですから、
<applet> で CODEBASE 属性を指定して直リンクすれば
すんなり通ってしまいます。
これを、getDocumentBase() に変えれば
アプレットが埋め込まれているドキュメントの URL を取得できるので
目的を達成できるはず。
# しかし、あの風間さんがフォロー投稿で内容に触れていないので
# もしかしたら私の認識が間違っているかもしれないと不安...

> アプレットをDLし、そのファイルを逆アセンブルして、HTTP_REFERERのチェック部分を外す…
> ということなんでしょう。
ですねえ。HTTP_REFERER をチェックしてはいないのですが。

三原克大 [E-Mail] 2000/03/28(火) 14:04:27
> > http://java-house.etl.go.jp/ml/archive/j-h-b/002380.html
> > にもう一つの直リンク対策がのってました。
> 私の目から見たら、このままでは直リンク対策になっていません。
自己フォローがあったんですか。
http://java-house.etl.go.jp/ml/archive/j-h-b/002381.html
# References をつけないメーラーを使って ML に参加しているのかなあ

poppo 2000/03/31(金) 23:40:56
http://www.4thpass.com/sourceguard/

こんなのみっけてきたんですけど。
>アプレットをDLし、そのファイルを逆アセンブルして、
>HTTP_REFERERのチェック部分を外す…
>ということなんでしょう。
の対策にはなりませんか

私は英語がよめませんので詳しくは分かりませんが。

三原克大 [E-Mail] 2000/04/01(土) 00:18:21
> http://www.4thpass.com/sourceguard/
これ、新規購入で約 1000 ドルするようです。
http://www.4thpass.com/purchase/price.html
コードが利益と直結する企業向けですね。

Symbol を読みづらい文字列に置換して解読を防ぐツールは
時折耳にしますが、実行プロファイルを採って
無駄なコードを省く機能まで持っているそうで
(口上通りなら)よくできたツールだと思います。

[上に] [前に] [次に]