ブラクラを行く前にチェックするスクリプト(Ver0.01)

このエントリーをはてなブックマークに追加
1名無しさん
ブラクラを行く前にチェックするスクリプト(Ver0.01)

http://www.kakiko.com/check/sample.html

これが機能アップすると、少しは厨房野郎に対処できます。
できれば、皆さんの知恵を拝借して、本当に役立つものになることを願っています。
ソースは公開でやっていますので、ご指導ご鞭撻のほどよろしく。
関連スレッド@虹色ロビー
http://www.kitanet.ne.jp/~mail/2ch/test/read.cgi?bbs=main2&key=953660448&ls=100
ぴょん基地の友達
2名無しさん:2000/03/22(水) 04:16
ここの管理人が見てくれると いいんだが・・・・・
3minima:2000/03/22(水) 06:55
まずはHTTPレスポンスヘッダのLocation!
これを調べれば,むぎ茶さんのクラッシャーにも対抗できます。
4むぎ茶(米国法人):2000/03/22(水) 07:52


 ■■■■ 差別は無くならないね。■■
 無いとバランスが取れないから。バランスっていい加減な当て方だけど。
 差別が無い社会って、めりはりが無いよ。
 だからといって、いじめてよしというわけではないんだけど。
 いじめられる人って、まわりはいじめたくなるんだよね。
 そんな感じうけたことはございませんか?
 いじめられる人は何か、そんな雰囲気をもっているんでしょうね。
 動物の猿やチンパンジーの群れの中で、
 弱い態度を示したやつを、みんなでかみ殺すことあるでしょう。
 人間もこれに似たことってあるんじゃないかな。
 強いものが生き残り、子孫を残していく、弱い遺伝子は廃除する。
 弱者をカバーするもの限度を持たねば、バランスが取れない。
 殺虫剤で弱いものが殺された、ゴキブリ、蚊、蠅は
 強いものが生き残っています。人間はどうでしょう?
 弱いものもいて、強いものもいる。強いものの一部は弱気を助ける・・・
 また一部はこらしめる・・ この比率は変らないでしょう。
 差別はなくなりません。努力するだけ無駄でしょうね。(わらひ
5名無しさん:2000/03/22(水) 15:16
>4
まっ ここ(HP@`CGI) の場合、目的はあまり意味があることとは思えず
何かを題材として、より良い、より有用な scripts のヒントでも
それぞれが、掴めればいいんじゃない?
6名無しさん:2000/03/22(水) 15:18
>まずはHTTPレスポンスヘッダのLocation!
具体的にどうやればいいの?
この辺を改造すればいいの?
sub getDoc
{
$query_string = $_[0] ;
my $request = new HTTP::Request "GET"@` $query_string ;
my $response = $ua->request ($request) ;
$response_body = $response->content() ;
$coder = $response->code() ;
}
7名無しさん:2000/03/22(水) 19:42
とてもありがたい試みです。

でも
$body =~ s|(virtualave.net)|<FONT $f0>$1<\/FONT>|gi;
とかの決め打ちはあんま美しくないというか、
拡張性のためにも(tripodとかもあるし)配列にぶち込んで、
mugiとかconconとかとは違う色で警告した方がいいと思います。

あと file:/// もチェックすると良いかもです。
8名無しさん:2000/03/22(水) 19:57
virtualave.net を警告対象にするのはどうかな。
geoやeasy.toやyahooの個人プロフィールでも見たし。
逆に geocities なら無条件に安心みたいな安易な判断基準を
植え付けかねない。これはかえって人を危険にさらすようなことに
なるのでは。
9名無しさん:2000/03/23(木) 00:15
>まずはHTTPレスポンスヘッダのLocation!
やってみました。
http://www.kakiko.com/check/?http://jbbs.virtualave.net/happy/
10minima:2000/03/23(木) 02:12
ちょとすいまそん。
クレジットは「飛び先のチェック by kakiko」でいいですか?
それとも「飛び先のチェック by ぴょん基地の友達」の方が?
11みにふーすか:2000/03/23(木) 02:18
  Ψ  こんばんは、みにふーすかといいます。
└|∵|┘ このCGI、とても素敵と思ったので
     もっと簡単に使えるよう、インターネットエクスプローラの
     アドオンをつくりました。
     それを使うと怪しいリンクで右クリックして「とび先チェック」
     するだけでKakikoさんのCGIにアクセスしてくれます。

http://fooska.tripod.co.jp/
http://members.tripod.co.jp/fooska/
で配布してます。
Kakikoさんのことはドキュメント中に記載していますが、勝手に先走ってしまってすみません。
もし不都合なことがあればこの板か [email protected] までお願いします。
12minima:2000/03/23(木) 02:37
13みにふーすか:2000/03/23(木) 02:44
あああこんなの既にあったんですねぇぇぇ...>minimaさん
14ぴょん基地の友達:2000/03/23(木) 02:59
>10
飛び先のチェック by ぴょん基地の友達
でお願いします、こちらからも貼りました。
15名無しさん:2000/03/23(木) 03:03
にゃははは。すげぇきもちいい。>9
まぁ、Macユーザだから関係ないけど・・・。
16ぴょん基地の友達:2000/03/23(木) 03:07
>12
おっ ガイドラインでやってたんですか、知らなかった
めったにガイドライン見ないもんで、ゴメン
17みにふーすか:2000/03/23(木) 03:26
ぴょん基地の友達さん=Kakikoさんという事でよいのでしょうか?
先走ってしまってすみませんでしたが、私のつくってみたアドインについて
何か不都合なことはありましたでしょうか?
もしよろしければお返事ください。m(_ _)m
18むぎ茶(米国法人):2000/03/23(木) 05:47
19minima:2000/03/23(木) 05:49
20ぴょん基地の友達:2000/03/23(木) 15:44
>私のつくってみたアドインについて
>何か不都合なことはありましたでしょうか?

とっても良いアテデアですね、使ってみます。
まったく問題はありません。 > 17
21minima:2000/03/24(金) 00:45
$text =~ s|[\r\n]||g;
$text =~ s|>(.*?)<|><|g;

@tags = split(/</@` $text);

$table_depth = 0;
$ul_depth = 0;
$alert = 0;

foreach(@tags){
$table_depth++ if /^TABLE/i;
if( 10 < $table_depth ){ $alert = 1; last; }

$ul_depth++ if /^UL/i;
if( 100 < $ul_depth ){ $alert = 1; last; }

$table_depth-- if /^\/TABLE/i;

$ul_depth++ if /^\/UL/i;

}
if( $alert ){
print "このサイトはヤバい。笑い\n";
}else{
print "大丈夫。";
}

htmlの多量ネストを判別するルーチンです。
上の例では,<table>なら10段,<UL>なら100段でアウトにしてます。
$text は,検査するhtmlファイルの内容が入ります。
(ローカルのファイルから得るなら)こんな感じですね。
open FP@`"index.html" or die;
while(<FP>){ $text .= $_; }
close FP;

お気づきの点などあれば,どぞ。
22名無しさん:2000/03/24(金) 00:59
</table></table></table></table></table>…
ってやってからネストしまくれば突破できるね
やる人いないだろうけど。

その前に巨大な HTML ファイルだとメモリ食いませんか?
RLimit してればいいけどさ。
23minima:2000/03/24(金) 01:14
> </table></table></table></table></table>…
解決は簡単。
$table_depth-- if /^\/TABLE/i;
if( $table_depth < 0 ){ $table_depth = 0; }
ですね〜。

> 巨大な HTML ファイルだとメモリ食いませんか?
めちゃんこ食うかもしれませんです(汗。
とりあえず $text =~ s|>(.*?)<|><|g; でタグ以外の部分は消えてるけど,
そういう問題じゃないんですよね・・・。どうしよう・・・。
2422:2000/03/24(金) 01:33
単純に、これではいかがでしょうか。

my($table_depth@`$ul_depth);
$table_depth = 0;
$ul_depth = 0;

open(HTML@`"/home/marin/public_html/fanclub.html") or die;
while (<HTML>) {
 $table_depth++ if m!<table!i;
 $table_depth-- if m!</table!i;
 $ul_depth++ if m!<ul!i;
 $ul_depth-- if m!</ul!i;
}
close(HTML) or die;

print "やばそう"
 if ($table_depth > 10 || $ul_depth > 10);
2522:2000/03/24(金) 01:35
あっと、g オプションを忘れていました。

 m!<table!gi;

みたくしてください。
26minima:2000/03/24(金) 02:17
よっしゃ〜。こんな感じで動きました。

my($table_depth@`$ul_depth);
my @tags;
$table_depth = 0;
$ul_depth = 0;

open (HTML@`"html.htm") or die;
while (<HTML>) {
@tags = split( '<'@` $_ );
foreach (@tags) {
$table_depth++ if m!^table!ig;
$table_depth-- if (m!^/table!ig && $table_depth > 0);
$ul_depth++ if m!^ul!ig;
$ul_depth-- if (m!^/ul!ig && $ul_depth > 0);
}
last if ($table_depth > 10 || $ul_depth > 10);
}
close(HTML) or die;

print "やばそう"
if ($table_depth > 10 || $ul_depth > 10);
27ぴょん基地の友達:2000/03/24(金) 04:44
frame等の場合に、簡単に追っかけられるようにしました。 ver 0.03
http://www.kakiko.com/check/?http://www.50megs.com/www1/prtclgdaz/index.html
28minima:2000/03/24(金) 06:03
▼ぴょん基地の友達さん
$body =~ s|(file:\/\/\/)|$f0$1$f9|gi;
の部分を
$body =~ s|(file:/+)|$f0$1$f9|gi;
に変えてみるとどうでしょう?
file:/ ←このスラッシュは1つ以上あれば有効になるようです。
29deDeBr@Crush:2000/03/24(金) 07:21
ブラクラチェック・スクリプト対抗スクリプト


↓こんな感じのものをジャバスクリプトで書いたり、
外部jsファイルで呼び出したり、
同じようなスクリプトをパールで書いてssiで呼ばれたら
どうしましょう???


var BIG_NUMBER=10000;
var s1="<tab";
var s2="le><tr><td>&nbsp;";
for(var i=0;i<BIG_NUMBER;i++) document.write(s1+s2);
s1="<\/td><\/tr><\/tab";
s2="le>";
for(var i=0;i<BIG_NUMBER;i++) document.write(s1+s2);
alert("You can not read this message...");
30>29:2000/03/24(金) 12:37
JavaScriptは不使用。

SSIはサーバ側で展開されて出力されるので、閲覧側には関係ない。
31ぴょん基地の友達:2000/03/24(金) 16:09
ありがとう > minimaさん
変更してみます。

なにぶん私 perl屋じゃないので、正規表現にはうといです。
皆さんの ご指導をいただけると、とっても嬉しいです。
32minima:2000/03/25(土) 00:42
<meta>を追いかけられるように
$body =~ s|url=\"([0-9A-Z_\.\/\-\~]+)\"|url=\"<A HREF="\?$baseb$1" TARGET="_blank">$baseb$1<\/A>\"|gi;
を付けるといいかもです。
あ,今気づいた。
[0-9A-Z_.\/\-\~]+ ← ピリオドもエスケープしないとマズいかもです(汗
[0-9A-Z_\.\/\-\~]+ ←こんな感じで。
3322:2000/03/25(土) 01:39
> minima
キャラクタクラス内のドットはリテラル文字として扱われますよ。
エスケープしなくて OK です。
34ぴょん基地の友達 :2000/03/25(土) 02:06
>minima さん
ありがとう、やってみました。

次は、 deDeBr@Crush さんの言うように .js を追っかけなきゃ
35minima:2000/03/25(土) 02:12
>33さん
マジっすか。知らなかった。
36minima:2000/03/25(土) 02:23
>ぴょん基地の友達さん
あ,url= の置換後が src= になってますよ〜。

スタイルシートを読み込む場合に対処するために href= を
同じようにリンクに置換すばいいんだけど・・・。
そこまでする厨房はいない気もしますね(´ー`)
37ぴょん基地の友達:2000/03/25(土) 02:43
およっ 今なおします。
38ぴょん基地の友達:2000/03/25(土) 02:45
さらに 欲を言えば src= url= で、
http:// 有る場合と無い場合の処理
" で囲まれている場合とそうでない場合の処理は必要ですね。
39minima:2000/03/26(日) 01:17
あげ〜
40minima:2000/03/27(月) 01:01
ページの下の方で
【現在対処中】
としているURLがあるようですが,
アレの対処はかなり難しいと思うんですが,どうよ?
っていうか,解決の見通しは立ってるでしょうか?
41ぴょん基地の友達:2000/03/28(火) 04:54
一応 追っかけスタイルで対処してみました。

http://www.kakiko.com/check/?http://www.50megs.com/www1/prtclgdaz/index.html

42名無しさん