ブラクラを行く前にチェックするスクリプト(Ver0.01)
1 :
名無しさん :
2000/03/22(水) 02:56
2 :
名無しさん :2000/03/22(水) 04:16
ここの管理人が見てくれると いいんだが・・・・・
3 :
minima :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
10 :
minima :2000/03/23(木) 02:12
ちょとすいまそん。 クレジットは「飛び先のチェック by kakiko」でいいですか? それとも「飛び先のチェック by ぴょん基地の友達」の方が?
11 :
みにふーすか :2000/03/23(木) 02:18
12 :
minima :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
19 :
minima :2000/03/23(木) 05:49
20 :
ぴょん基地の友達 :2000/03/23(木) 15:44
>私のつくってみたアドインについて >何か不都合なことはありましたでしょうか? とっても良いアテデアですね、使ってみます。 まったく問題はありません。 > 17
21 :
minima :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 してればいいけどさ。
23 :
minima :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; でタグ以外の部分は消えてるけど, そういう問題じゃないんですよね・・・。どうしよう・・・。
24 :
22 :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);
25 :
22 :2000/03/24(金) 01:35
あっと、g オプションを忘れていました。 m!<table!gi; みたくしてください。
26 :
minima :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
28 :
minima :2000/03/24(金) 06:03
▼ぴょん基地の友達さん $body =~ s|(file:\/\/\/)|$f0$1$f9|gi; の部分を $body =~ s|(file:/+)|$f0$1$f9|gi; に変えてみるとどうでしょう? file:/ ←このスラッシュは1つ以上あれば有効になるようです。
29 :
deDeBr@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屋じゃないので、正規表現にはうといです。 皆さんの ご指導をいただけると、とっても嬉しいです。
32 :
minima :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_\.\/\-\~]+ ←こんな感じで。
33 :
22 :2000/03/25(土) 01:39
> minima キャラクタクラス内のドットはリテラル文字として扱われますよ。 エスケープしなくて OK です。
34 :
ぴょん基地の友達 :2000/03/25(土) 02:06
>minima さん ありがとう、やってみました。 次は、 deDeBr@Crush さんの言うように .js を追っかけなきゃ
35 :
minima :2000/03/25(土) 02:12
>33さん マジっすか。知らなかった。
36 :
minima :2000/03/25(土) 02:23
>ぴょん基地の友達さん あ,url= の置換後が src= になってますよ〜。 スタイルシートを読み込む場合に対処するために href= を 同じようにリンクに置換すばいいんだけど・・・。 そこまでする厨房はいない気もしますね(´ー`)
37 :
ぴょん基地の友達 :2000/03/25(土) 02:43
およっ 今なおします。
38 :
ぴょん基地の友達 :2000/03/25(土) 02:45
さらに 欲を言えば src= url= で、
http:// 有る場合と無い場合の処理
" で囲まれている場合とそうでない場合の処理は必要ですね。
39 :
minima :2000/03/26(日) 01:17
あげ〜
40 :
minima :2000/03/27(月) 01:01
ページの下の方で 【現在対処中】 としているURLがあるようですが, アレの対処はかなり難しいと思うんですが,どうよ? っていうか,解決の見通しは立ってるでしょうか?
41 :
ぴょん基地の友達 :2000/03/28(火) 04:54
42 :
名無しさん :
2000/04/06(木) 07:46