JavaScriptで隠れwindowのopen

[上に] [前に] [次に]
J.Naka 1999/09/23(木) 21:14:46
IE4 JavaScriptで、cgiを裏で隠れてこそっと実行したく、ウインドウをオープンする時フォーカスが移動しないオープンか最小状態でオープンする方法ってあるでしょうか?

var w = window.open("w.htm","name","option1,option2,・・・");

↑の option群に該当するものあるでしょうか?
手元に書籍等には無いようです。

あてずっぽう 1999/09/23(木) 23:15:03
JavaScriptではどうだか知らないけれど、VBscriptとかなら
出来るかもしれない。
#目的が気になるが・・・

J.Naka 1999/09/23(木) 23:39:16
ども、あてずっぽうさん。
VBscriptですかぁ、、うーむ触ったことないけど、こんどみてみます。
さんくす。

>#目的が気になるが・・・
それはね、***して、***にして、、、ふっふふふさ。
とか、怪しいことが目的ではなく、単に、隠しカウンターとかアクセスログ集計とかのCGIの動作をプラウザから隠すのが目的です。
隠すとはソースが見えないだけでなく、CGiによりオーバーヘッドも感じなくさせる目的です。
へっへへへ、どうだ。。とか、言ってみる(^^;
#ちなみに、当方使用のレンタルサーバーはSSIがまともに使えないための苦肉の策なんですよ。無料サーバーは苦労します(TT)

ふじ 1999/09/24(金) 00:36:20
GIFファイルを出力するカウンタを作る要領で、
大きさ 1x1 の透明GIFを出力する CGI(これで隠しカウンターとか
アクセスログ集計をする)を作ってみては?

IMG タグに width, height を指定してやれば、画面表示の速度には
ほとんど影響しないと思いますが。
#CGI の動作が遅いとブラウザが読み込み中の状態にはなりますが、
#コンテンツ自体の表示は出来るわけだし。

Mugi [E-Mail] [HomePage] 1999/09/24(金) 16:09:36
> IE4 JavaScriptで、cgiを裏で隠れてこそっと実行したく、ウイ
> ンドウをオープンする時フォーカスが移動しないオープンか最小状態
> でオープンする方法ってあるでしょうか?
できます。
Win95/NT+IE4以上で確認
window.open("","","left=10000,top=10000,...")
95のみですが、
window.open("","","width=100000,height=100000,...")
でもできます。

zizz... [HomePage] 1999/09/24(金) 20:45:46
IE 4と限定しているようですが、一応Netscape Navigator 4.Xの話を書いておきます。

Netscapeの場合、そのような動作はSigned Scriptとなり、認証がないと行えません。

# というかそんな動作をするべきではない

J.Naka 1999/09/25(土) 23:02:33
Re:ふじさん
 IMGタグはやってみましたが、ステータスバーに「画像読み込み」とでます。
 実際は画像なんか読んでなくてCGIのPerlコード実行しているだけなんで、何か嘘付きのような気がして却下になりました。(^^;
 ですが、レスポンレスは一番ですね。

Re:Mugiさん
 windowを画面外に持っていく&windowサイズをwindowsのリミット以上にする。
 これら2つはは、フォーカスの移動はどうしても無くせませんでしたが、ユーザーから処理の隠蔽には一番のようです。別のwindowで処理やってるので、そのwindowを画面外に持っていけば、何してるかわっからないというわけになります。まっタスクバーがチョロチョロしますが(^^;

Re:zizz...さん
 あっと、自分の環境がIE4ということで、ターゲットとする環境はできるだけ広い範囲が希望であります。

># というかそんな動作をするべきではない
 何故でしょうか?
  SSI等の使用に制限が無いなど、サーバー使用に制限が少ないとそのような処理は苦もなく出来るような気がします。
-----------
P.S. ホームページお邪魔さしてもらいました(^_^)

toshi [E-Mail] [HomePage] 1999/09/26(日) 00:58:40
J.Nakaさん
>IMGタグはやってみましたが、ステータスバーに「画像読み込み」とでます。
>実際は画像なんか読んでなくてCGIのPerlコード実行しているだけなんで、何か嘘付きのような気がして却下になりました。(^^;

なぜですか?別にかまわないと思いますけど。
それならページを丸ごとCGIで書き出すことしか思いつきません。かなり問題ありですが拡張子も「.html」にするとか...


苦肉の策ですが <script language="JavaScript" scr="hoge.cgi"></script>にするとか。僕は良く使います。
(document.writeでカウンタなどを書き出すとソースを見ないとSSIを使用しているものと区別がつきません。)

あともし1*1の画像(実際は画像なんか読んでなくてCGIのPerlコード実行しているだけのもの)を書き出すのがいやならすでにある画像をCGIに埋め込んでやればいいと思うのですが


寝ぼけながら書いているので文章が乱れています。とほほ(~_~;)
toshiでした。

ぺぱーど 1999/09/26(日) 04:20:41
>># というかそんな動作をするべきではない
> 何故でしょうか?
>  SSI等の使用に制限が無いなど、サーバー使用に制限が少ないと
話が通じていませんね.
どうしてそこで「サーバー」が出て来るのでしょう?
zizz...さんはMugiさんの書いたwindow.openのような指定をするべきでないと言っているのですよ.

これは考えようによっては『訪問者に対する攻撃』とも言えます.
具体的な例を挙げると犯罪示唆になってしまうので書きませんが
「見えない部分で動作しているウィンドウ」なんて気持ち悪すぎます.

>何か嘘付きのような気がして却下になりました。(^^;
見えないウィンドウの方がよっぽど嘘付きに思えますが.

>CGiによりオーバーヘッドも感じなくさせる目的です。
果たして本当に効果はあるのでしょうか?

zizz... 1999/09/26(日) 12:02:33
> >># というかそんな動作をするべきではない
> > 何故でしょうか?
> >  SSI等の使用に制限が無いなど、サーバー使用に制限が少ないと
> 話が通じていませんね.
> どうしてそこで「サーバー」が出て来るのでしょう?
> zizz...さんはMugiさんの書いたwindow.openのような指定をするべきでないと言っているのですよ.
ページ製作者側がユーザーに対して嫌がらせ出来るのはまずいので、
ブラウザ側で攻撃的な動作を禁止すべきだ、と言いたかったのです。
説明が不足していました。
window.open("","","left=10000,top=10000,...")
みたいな動作を許しているというのは駄目ですね。

とは言え、実際に嫌がらせかそうでないか、なかなか区別がつかないので
Unclosable Window
http://www.tiac.net/users/smiths/security/crashes/noclose.htm
White Screen of Death
http://www.tiac.net/users/smiths/security/crashes/wsod.htm
みたいなことも出来ます。
JavaScriptにも諸刃の剣みたいな部分がありますね。

J.Naka [E-Mail] [HomePage] 1999/09/26(日) 19:55:43
Re:toshiさん
■<SCRIPT>タグについて
 <SCRIPT>タグに、SRC="name.cgi" を付加するとの事ですが、当方の手元の資料には<SCRIPT>タグに関することが皆無で、具体的記述が良く解かりません。適当にやってみましたが、"name.cgi"の指定は全く実行されませんし、エラーライン2(つまりhtmlファイルの二行目がエラー)とかでます。htmlファイルは先頭から、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN">
<HTML><HEAD><TITLE>
となってます。JavaScriptとは全く関係ありません。

>(document.writeでカウンタなどを書き出すとソースを見ないとSSIを使用しているものと区別がつきません。)
document.writeで書き出すカウンタ値は何処からもってくるのですか?
自分が今やっているのは、
var Counter = 0;
の 0 の所を CGIの正規表現置き換えでIndex.htmlファイル自体を書き換えています。

■CGIファイルの画像の埋め込み
 これは、実際はどういう事を指すのでしょうか?
 CGIファイル=Perlスクリプトファイル=テキスト文字列の羅列、これに画像を埋め込むとは? コンパイルしてバイナリコードに画像をアペンドとかするのでしょうか?
(ちなみに、コンパイルなんかしたことないですし、その環境はないです)


toshiさんのレスは何かすっごく美味しいそうなので興味あり色々やってみましたが現物として出てきません、もう一つ見えてきません。出来ましたら、具体的コードをお願いしたいと思います。

------------------
Re:ぺぱーどさん
>話が通じていませんね.
>どうしてそこで「サーバー」が出て来るのでしょう?
すいません、コミケートの行き違いです。自分は、このスレッドの大元の発端はサーバー側がSSI機能のうち、実行コマンド系を禁止しているところにあるのです。ですから、ついサーバーが伝々と愚痴ってしまいました。アイム ソーリー(__)

------------------
Re:ぺぱーどさん & zizz...さん
 え〜、window.open のオプションにleft=10000 とかはwindowsの場合、仮想window領域外でしたけ? 2^16だっけ?
■規格外オプション指定とユーザー本位
 え〜、window.open のオプションにleft=10000 とかはwindowsの場合、仮想window領域外でしたけ? 2^16だっけ?
 まっとにかく要は、製作者側の都合でユーザー側に「見えない&予測外」の動作はユーザーの虚を衝くことになり、製作者側でいくら「これは安全な動作」と認識していも、ユーザー側には気持ち悪い動作としか見えず、このような物をネット上に流すのは製作者ポリシーとして不信感を感じ得ない。という認識が必要ということですね。
(ちょいと、焦り過ぎたようです(^^;反省)

 それと、このようなオープンな掲示板に、怪しげな意図の見え隠れするような書き込みは良くないとも感じました。表現がもう少し別な形であれば、このような反応も無かったかもしまれせん。(あっこんな反応が嫌いだと言っている訳ではありません)
これも、反省点です。(_ _)


------------------
Re:zizz...さん
 御紹介のアドレス二つは、実行する前にソース見てみました。ヘッダ部分に *.jsの箇所があったので、恐いのでブラウザから開いていません。英文の恐れなしたってのもあります(^^;
 .jsってのはWHSの実行ファイルの事でしたけ?

とほほ 1999/09/26(日) 23:41:49
> ■CGIファイルの画像の埋め込み

以下のようなCGI(xxx.cgi)を作成し、
 <IMG SRC="xxx.gif">
とする代わりに
 <IMG SRC="xxx.cgi">
としてやれば、利用者からは単なるページデザインのための画像にしか
見えないものが、実はカウンターだったりします。

#!/usr/local/bin/perl
  :
 カウンターの処理
  :
open(IN, "xxx.gif");
print "Content-type: image/gif\n\n");
read(IN, $buf, -s "xxx.gif");
print $buf;
close(IN);

「とほほのWWW入門」の各ページの先頭にある「とほほマーク」画像
も、実は、昔は隠しカウンターでした。(今ははずしてるけど)

ふじ 1999/09/27(月) 01:01:26
> .jsってのはWHSの実行ファイルの事でしたけ?
JavaScriptの外部ファイルでしょう。

zizz... [HomePage] 1999/09/27(月) 20:13:54
WHSってWSH(Windows Scripting Host)の事ですか?

WSHも*.jsという名前のファイル名を使うようですが、(実はよく知らない)
もともとはふじさんの言うようにJavaScriptの外部ファイルです。
ファイルの削除なども出来てしまうWSHとファイル名が同じというのは紛らわしい。

この前も、MSIEでWSHがWeb Pageから実行出来る という恐ろしいセキュリティーホールが発見されていたし。(これは関係ないか)

> ヘッダ部分に *.jsの箇所があったので、恐いのでブラウザから開いていません。
Netscapeなら 「view-source:通常のURL」 でファイルの内容を見る事ができます。
例のサイトのjsファイルは、デモプログラムを一つにまとめただけのものです。

J.Naka 1999/09/28(火) 00:09:45
「あれやこれや」やってみました。レポートです。

■SSI #exec の代用
<SCRIPT SRC="AccessMan.cgi"></SCRIPT>
↑上は、動作しました。cgiの返す文字列は html内の呼び出し場所に挿入される形になります。これは、SSIコマンド #include はおろか #exec の代替えに使えます。有り難う御座いました。
<script>タグの所属は、JavaScript ではなく、HTMLでありました(^^;お恥ずかしい。

■<IMG Src="*.cgi">
当方環境(InterQ,Apache/1.3.6 (Unix))では、
cgi内で実際にgif画像の出力無くてもエラー無く動作しました。
隠しカウンターとするのに、
<img src="xxx.cgi?clear.gif">
のgif画像の指定は不要で、画像表示領域の隠蔽には、
<img src="xxx.cgi" height="0" width="0">
のように、表示領域指定をゼロにするだけで事たりるようです。
#IMGタグの書式が良く分かってないような気がする(^^;

-------------------
総論として、レスポンレスは、やっぱしIMGタグが良いです。全くオーバーヘッド感じませんね。

解かったのは、こんなところなんですが、これらはバージョンとかブラウザ種の影響が、心配と言えば少し心配です。

----------------
追加レス
Re:ぺぱーどさん 1999/09/26(日) 04:20:41
>>CGiによりオーバーヘッドも感じなくさせる目的です。
>果たして本当に効果はあるのでしょうか?
CGiによるオーバーヘッドも感じなくさせる目的です。
でした(^^;タイプミスで正反対の意味に(^^;

J.Naka 1999/09/28(火) 00:25:48
Re:zizz...さん
>Unclosable Window
>http://www.tiac.net/users/smiths/security/crashes/noclose.htm
>White Screen of Death
>http://www.tiac.net/users/smiths/security/crashes/wsod.htm
これ、実行してみましたが、かなりヤバイですよ。
ウィンドウオープンが止まらなく、リセット以外抜ける方法無いですね。

ふじ 1999/09/28(火) 01:31:20
>これらはバージョンとかブラウザ種の影響が、心配と言えば少し心配
>です。
・画像を表示出来ないブラウザでは CGI が実行されない。
・画像を表示できるブラウザでも画像読み込みをOFFにしていると同様。
という問題はありますね。

あと、<IMG>タグの大きさ指定を 0 にすると、NN4.6(Windows)では
壊れた絵のアイコンが表示されます。(IE4.0では問題ないみたいですけど)

せめて width=1 height=1 としましょう。
#でもちゃんと透明GIF画像を出してやったほうがいいと思うけど・・・
#(個人的な)気分的な問題です。

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