荒らしに対する考察
1投稿者:三河人  投稿日:2001/11/27(火)01:58:52
荒らし対策委員会。
http://isweb16.infoseek.co.jp/computer/ruins1/index.html [そーす]

なかなか読み応えがありそうです。
2投稿者:三河人  投稿日:2001/12/28(金)12:35:26
@カブロガニから見つけてきました。
http://www.geocities.com/javaplug/storm.html [そーす]

使用するなら自サイトへのアタックテストにのみにしましょう…。
3投稿者:名捨て人  投稿日:2001/12/31(月)02:31:28
俺は荒らしよりも、
>本荒らしツールは、自分が設置した掲示板のみに使用して下さい。
>迷惑な使い方は絶対しないで下さい。
こんな事書いて配布してる奴の方が嫌いだな。
「荒らしツール」と自分で認めてるし。

荒らし?と言えばもう一つ。掲示板への宣伝書き込み。
知られている宣伝書き込みツールはここに載ってる。
ユーザーエージェント見て弾いちゃいましょう。

User-Agentについてのたわごと
http://www.dais.is.tohoku.ac.jp/logs/agentgripes.html [そーす]
4投稿者:三河人  投稿日:2001/12/31(月)03:12:05
>荒らし?と言えばもう一つ。掲示板への宣伝書き込み。
確かにこれは迷惑する方が圧倒的ですね。
ここにも以前まではよく宣伝書き込みがありましたが最近は無いなあ…。
なんでだろ?
大体のものがネタにもならないから、弾きたいと思いますね。
5投稿者:三河人  投稿日:2002/01/14(月)02:34:36
2ch研究から転載。
---
例の英数字や記号を繋げて並べると折り返してくれずどんどん右にスクロールして並んでしまうという話ですが。
とりあえずCNPスレッドに<WBR>というタグを使えばいいという意見があって、やってみたらよさそうな気がしたのですが。
これを使うと半角英数の途中でも改行してくれるそうです。

参考; http://tohoho.wakusei.ne.jp/html/wbr.htm [そーす]

これだと、正規表現で、

$text =~ s/([\S]{30})/2ch研究から転載。
---
例の英数字や記号を繋げて並べると折り返してくれずどんどん右にスクロールして並んでしまうという話ですが。
とりあえずCNPスレッドに<WBR>というタグを使えばいいという意見があって、やってみたらよさそうな気がしたのですが。
これを使うと半角英数の途中でも改行してくれるそうです。

参考; http://tohoho.wakusei.ne.jp/html/wbr.htm [そーす]

これだと、正規表現で、

$text =~ s/([\S]{30})/$1<wbr>/g;

とか一行書くだけで済みそうな・・・。
もっと良いやり方があるかもしれませんが、一応上のについて解説しておくと、何らかの文字が空白文字無しに30続いたらwbrタグを入れるというものです。この場合の30というのは、1バイト文字(半角英数)の場合の話なので、日本語(2バイト文字)なら15文字ということになります。
wbrをたくさん入れても支障がないなら、これでいいのかもとは思うのですが。
あんまりスマートなやり方ではないので、本当はもう少しすっきりしたやり方があればと。
まあなんだかんだ言いながら技術的にレベルの高いことをやっている2ちゃんねるでも対応していないところからすると、意外と難しいのかもしれません
---
実際のところは解りませんが、単に導入していないだけなのかもと
思いました。<wbr>/g;

とか一行書くだけで済みそうな・・・。
もっと良いやり方があるかもしれませんが、一応上のについて解説しておくと、何らかの文字が空白文字無しに30続いたらwbrタグを入れるというものです。この場合の30というのは、1バイト文字(半角英数)の場合の話なので、日本語(2バイト文字)なら15文字ということになります。
wbrをたくさん入れても支障がないなら、これでいいのかもとは思うのですが。
あんまりスマートなやり方ではないので、本当はもう少しすっきりしたやり方があればと。
まあなんだかんだ言いながら技術的にレベルの高いことをやっている2ちゃんねるでも対応していないところからすると、意外と難しいのかもしれません
---
実際のところは解りませんが、単に導入していないだけなのかもと
思いました。
6投稿者:三河人  投稿日:2002/01/14(月)14:49:38
うーむ、どうやらf2sってREMOTE_ADDRを吐かない仕様なのかなあ。
あぷろだを不正利用してる輩を弾こうと思っても弾けないっす。
あっははははは!!1111
7投稿者:三河人  投稿日:2002/01/14(月)14:59:02
>>6の件はこれっすな。
http://pc.2ch.net/test/read.cgi/perl/981081855/ [そーす]
やっぱり無理っぽいす。
8投稿者:三河人  投稿日:2002/01/20(日)01:12:42
これ、どーやってるのか解りません。
http://www.amezor.to/main/020120000624.html [そーす]

ブラウザかOS限定の機能かな?
回避策はありそうですが、荒らし方法が解らない事には完全に
対処出来たとはいいきれなさそうですし…。
とりあえずは、投稿内容以外の改行マークを無効にすればいいのかな?
9投稿者:三河人  投稿日:2002/01/20(日)01:37:36
>91投稿者:今日は疲れた。親指を使い過ぎたからな。
>お
>や
>す
>み
>投稿日:2002年01月20日(日) 01時12分52秒

うーむ、どうやらケータイからの書き込みのようで…。
コード体系が違うからタグ突破出来てしまうのかな?!
よーわからん。
10投稿者:名捨て人  投稿日:2002/01/20(日)01:48:41
>これ、どーやってるのか解りません。
これってのが、どれ?なのかワカランけど、縦書きの事なら
名前から改行抜いてないから出来て当たり前。
11投稿者:ついでに言うと  投稿日:2002/01/20(日)01:51:10
コメントには改行制限あるけど名前には無い。
100行でも1000行でも、、、可。
12投稿者:三河人  投稿日:2002/01/20(日)01:52:54
>10の名捨て人さん
>>これ、どーやってるのか解りません。
>これってのが、どれ?なのかワカランけど、縦書きの事なら
>名前から改行抜いてないから出来て当たり前。

あ、縦書きの事です。
一応、投稿されてくる情報の「<」を「&lt;」に置き換えてるので
OKだと思ってたのですが…?
13投稿者:三河人  投稿日:2002/01/20(日)01:54:04
>18投稿者:甘  投稿日:2001/10/30 [火] 07:47:00
>「甘\r\n史\r\n太\r\n」は間違い。
>以下の3パターンで送られてくるのだろう。
>win 風、 CR +LF → 「甘rn史rn太rn」
>mac 風、 CR →    「甘r史r太r」
>unix 風、 LF →   「甘n史n太n」
>
>19投稿者:甘  投稿日:2001/11/06 [火] 05:08:38
>携帯からも荒らし対策が施されたカル板。
>http://cgi2.mediamix.ne.jp/~t6946/k/che.cgi [そーす]

http://sakuraaasaku.virtualave.net/cgi-bin/big-08/log/010303230624.html [そーす]
http://sakuraaasaku.virtualave.net/cgi-bin/big-08/main/011025020948.html [そーす]

この辺りが原因かと思ったのですが…まだ解りません。
14投稿者:名捨て人  投稿日:2002/01/20(日)01:54:13
横レスでも出来るね。
青文字でアスキーアート。
15投稿者:三河人  投稿日:2002/01/20(日)01:56:00
>14さん
すんません、ちょっと再現してもらえますか?
実際に見てみたいのですが。
16投稿者:名捨て人  投稿日:2002/01/20(日)01:57:14
>7のリンク先の一番読むと、
$ENV{HTTP_X_FORWARDED_FOR}から取得できるんじゃないですかね?
なんとなく。
17投稿者:三河人  投稿日:2002/01/20(日)02:00:51
>16の名捨て人さん
>>7のリンク先の一番読むと、
>$ENV{HTTP_X_FORWARDED_FOR}から取得できるんじゃないですかね?
>なんとなく。

もうすっかり諦めてしまってました(笑)
後で確認してみます。どもです。
ただ、>>7のURLを全部見るのが長すぎてキツいっす(笑)
18投稿者:名捨て人  投稿日:2002/01/20(日)02:03:39
うん、全部読むのは(笑
19投稿者:三河人  投稿日:2002/01/20(日)02:05:12
もし今可能でしたら、投稿者名の改行荒らしをココでやってみて
欲しいのですけど、ダメですか?
20投稿者:三河人  投稿日:2002/01/20(日)02:11:35
>15の小1さん
わざわざありがとうございました。
でも…実際の投稿方法がまだ私にはわかりません(泣)
教えてもらう訳にはいきませんか?
21投稿者:三河人  投稿日:2002/01/20(日)02:14:23
投稿方法が解りませんが、強引にスクリプト対応してみました。
全然自信がありません。
22投稿者:名捨て人  投稿日:2002/01/20(日)02:20:18
>「<」を「&lt;」に置き換えてるので
タグじゃ無いと思いますよ。
\rだの\nだのを<br>に置き換えてますよね?
名前の時は止めれば済む事です…。
23投稿者:三河人  投稿日:2002/01/20(日)02:22:48
>22の名捨て人さん
>>「<」を「&lt;」に置き換えてるので
>タグじゃ無いと思いますよ。
>\rだの\nだのを<br>に置き換えてますよね?
>名前の時は止めれば済む事です…。

確かに置換えしてますが…。
原因が解らなかったので
・通常投稿の時…投稿内容以外からのタグ<>を無効化
・横レス投稿の時…投稿内容のタグ<>を無効化
としてみました。
24投稿者:三河人  投稿日:2002/01/20(日)02:26:42
あ、>>23のは、\rだの\nだのを<br>に置き換え後に再度タグチェックして
やるようにしてみました。一応。
25投稿者:名捨て人  投稿日:2002/01/20(日)02:30:54
例えば、ですがデコードしてる所で

if ($key eq 'comment') {
  $value =~ s/\r\n|\r|\n/<br>/g;
} else {
  $value =~ tr/\r\n//d;
}
こんなんで、どうでしょう。
26投稿者:名捨て人  投稿日:2002/01/20(日)02:33:48
三河人さんのところで
こんなに一杯書いたの初めてだ(笑
おやすみなさい。
27投稿者:三河人  投稿日:2002/01/20(日)02:45:18
>25−26さん
なるほどー。要は、
・投稿欄の内容は、\rなんかを<br>置換え
・投稿欄以外の内容は、\rなんかを消してしまう
って事ですね。
んー…どっちがいいんでしょ?追々考えてみます。
こんな深夜にありがとうございました&おやすみなさい。
#何方かはハッキリとはわかりませんが…頭文字が「D」で始まるサイトの管理人さんですか?
28投稿者:三河人  投稿日:2002/01/20(日)13:09:04
>>23の対応を一旦したのですが、やっぱり
・通常投稿の時…投稿内容以外からの<br>を無効化
・横レス投稿の時…投稿内容のタグ<br>を無効化
としました。
29投稿者:三河人  投稿日:2002/01/21(月)02:44:54
さっき、わひょみさんと話をしていて知ったのですが
投稿時間制限を行っているにも関わらず、連続スレ投稿が可能となる場合が
あったそうです。
ココでも連続スレ投稿制限をかけていまして、テストする限りは
問題無いのですが…。
ただ過去に1度、連続レス投稿が可能となった時がありました。
(レスについても連続レスは不可能としているつもりなのに)
なぜでしょう…?
30投稿者:名捨て人  投稿日:2002/01/23(水)01:22:17
>なぜでしょう…?
投稿時間制限がちゃんと機能してないから。
と、言うか。コードも無しで答えられる人いるのかな。
31投稿者:三河人  投稿日:2002/01/23(水)12:19:31
具体的には下の処理が突破されたのですが…。
sub reschk {
$resdate = (stat("$bbspath/$folder/reshostchk.dat"))[9];
if (open(RCK,"$bbspath/$folder/reshostchk.dat")){
$chks = <RCK>;
close(RCK);
if ($r_h eq $chks && $nowtime - $resdate < $restime){
&error("同一ほすとからの書込は$restime秒以上間を開けてえな");
}
}
if (open(RCK,"$bbspath/$folder/rescheck.dat")){
$chks = <RCK>;
close(RCK);
if ($comm eq $chks){
&error('同一内容の連続れすはできへんでえ');
}
}
}
ちなみに今は、flockをかけるようにしました。
flockがかかってなかったのが原因かな?
32投稿者:名捨て人@深夜です  投稿日:2002/01/24(木)00:40:03
「同一ほすとからの書込」じゃなかったとか。
過去に一度だけなら、ちゃんと機能していると思うけどなあ。
33投稿者:三河人  投稿日:2002/01/24(木)00:49:38
>32さん
それが…「同一内容」で「同一時間」だったのです。
>「同一ほすとからの書込」じゃなかったとか。
これなら納得できたのですが…それでも「同一内容」って所が
納得できない状態でして。
荒らしやら人が来るようになった時まで様子見してみます。
34投稿者:名捨て人  投稿日:2002/01/26(土)02:12:07
>荒らしやら人が来るようになった時まで様子見してみます。 
そうですね(笑
上にあった(ありました)リンク辿ってちょっとソース読んでみたんだけど、
2つのファイルをチェックに2回、記録に2回で計4回開いてた。
記録時には上書きモードで開いてるからこの時点で0バイトファイルに
なっちゃいます。その所為かな?
でも、「同一内容」で「同一時間」なのか。ワカラン。

で、チェック方法は、
ログに書き込む直前にチェックすれば、1ファイル1回で済むと思うんだけど。

sub reschk {
open RCK,"+< $bbspath/$folder/rescheck.dat" or return;
flock RCK,2 or die $!;
my ($time,$host,$res) = split(/\t/,<RCK>);
if ($r_h eq $host and $nowtime - $time < $restime){
close RCK and &error("同一ほすとからの書込は$restime秒以上間を開けてえな");
}
if ($comm eq $res){
close RCK and &error('同一内容の連続れすはできへんでえ');
}
truncate RCK,0; seek RCK,0,0;
print RCK "$nowtime\t$r_h\t$comm";
close RCK;
}

エラーになっちゃった人の分は新たに書き込まないので、
何度も罠に掛からずに済みます…。
35投稿者:三河人  投稿日:2002/01/26(土)03:13:42
>34さん
>ログに書き込む直前にチェックすれば、1ファイル1回で済むと思うんだけど。
う、その通りです(笑)
参考にしたソースが今の状態だったんで、そのままにしてました。
確かに指摘してもらった通り、1回で出来ます。
そうかー、入出力モードでオープンしておいて
・エラーだったらナニもせずクローズ
・正常だったらデータポジションを0にして(=上書きのような状態で)書き込み
ですね。
勉強になりました。明日辺り、そーさせてもらいます。どもです。
36投稿者:三河人  投稿日:2002/01/27(日)02:43:08
>34さん
お蔭様で、上手くいきました。
あれこれ試したのですが、結局ほとんど教えてもらった通りにしました。
ありがとうございました。
37投稿者:三河人  投稿日:2002/01/28(月)12:29:57
ざー2でちょっとテストしてみましたが
同一ホストからの連続スレ投稿は30秒制限が設けられていました。
早速導入したみたいですね。
38投稿者:名捨て人@深夜です  投稿日:2002/01/30(水)00:50:30
>36
記録を10行にして、チェックする時は配列に
突っ込んでやれば「最新10件でチェック」になります。

どんどん機能アップしているようなので、管理用の
スクリプトは分けてしまってはどうかなあ。
その方が安全だし。
と、言うのは現在のスクリプト、アブナイ所アリ。
コーヒーでも啜りながら見直してみるのも良いかもです。
39投稿者:三河人  投稿日:2002/01/31(木)23:47:47
私としてはナニがアブナイのかなんなのか解らなかったり。
40投稿者:三河人  投稿日:2002/03/03(日)01:56:50
セキュリティホールがあるみたいですが現在も全然解りません。
が、対処云々はどのレベルのセキュリティホールなのかにもよりますね。・解ったら対応するレベル…多重投稿が可能 など
・要検討するレベル…管理人パスが閲覧可能 など
・早急に対応したいレベル…削除パスが閲覧又は改ざん可能 など
この例にはあてはまらないかもですが、どのくらいのレベルかな?
41投稿者:じゃろです 投稿日:じゃろです
じゃろです
42投稿者:三河人  投稿日:2002/03/05(火)01:25:34
>41さん
情報ありがとうございました。まったく気がついていませんでした。
が…。確かに汚染チェックはしていないのですが、チェックしていないスクは
内部で読んでいるファイルが全て「.html」の拡張子で読んでいますので
amezo.cgiなどの「cgi」拡張子を読む事はできないのかと思ったのですが。
私がテストした限りでは読む事が出来ませんでした。
やりかたがまずかったのでしょうか?
何れにせよ、汚染チェックはした方が良いと思いましたので
簡単なチェックを各スクリプトへ追加しました。
43投稿者:三河人  投稿日:2002/04/06(土)22:52:19
DoS攻撃の資料どすえ。
http://www.soi.wide.ad.jp/iw2000/iw2000_tut/slides/03/48.html [そーす]
44投稿者:三河人  投稿日:2002/10/06(日)00:19:49
自動投稿による連続荒らし及び宣伝書き込み。
これらの事をフェイザーっていうのかな?
(ちょっと調べただけですけど、全然解ってなかったりする)

で、これらの投稿をうまく弾けないかなあと思って
簡単な対策をしてみたんですが、やはりとゆーか、大した成果は
得られなかったようです。
#ちなみに、削除パスを書き込むタイプの自動投稿のみ弾くように対策しました。
#コレは多分、上手くいっているのでは?と思います。
#組み込んでからは(まだ数ヶ月だけですが)そういった投稿が無くなりましたので。
45投稿者:三河人  投稿日:2002/10/06(日)00:22:39
ここはやはり、フェイザー(?)対策をきちんと行う必要があるかなあと
メガビスクリプトを何回も見直しているのですが、なんであの仕組みで
OKなのかが全然理解出来ないままでいます。
#単なるヴァカなんですけど。

シンプルな仕組みで何とか対応出来ないかと日々考えています。
良い案が浮かぶか、理解出来た所でまた対応していきたいかと思ってます。
46投稿者:三河人  投稿日:2002/10/11(金)02:48:24
メガビで聞いたら、弐編さんが教えてくれました。
----------
3  三河人   2002/10/09(Wed) 00:29
ここで質問はいいのかな?
magabbsスクリプト内にあるフェイザー対策の機能なんですけど
ソースを見てもイマイチ仕組みが理解出来ないのですが
何方か教えていただけないでしょうか?
なぜ、あのような仕組みで対策が成されているのかがどうしても…。
----------
4  弐ch編者◆NNIhen8g   2002/10/10(Thu) 10:29
>>3
ん?ようするにformの中に書き込み毎に生成されるランダムな文字列を埋め込んで
その文字列は20個分サーバーに保存されていて
その文字列と書き込みされた時のそのformの文字列を比較して一致したものがあったら
書き込みOKてこと
ただ、この方法だと欠点があってフェイザーソフト側でhttp通信して
そのformの中の文字列を毎回読み込まれてたらだめで、
あとこの方法をとると、スレッドをじーーーっくりみててさぁ書き込もう
としたらフェイザーですか?になる(ようするにその開いていた時点での文字列がすでにサーバー側で破棄されていたらだめ、、、
http://www.megabbs.com/cgi-bin/readres.cgi?bo=haihu&vi=1031516250 [そーす]
----------
47投稿者:三河人  投稿日:2002/10/11(金)02:52:39
と、ゆー訳で、メガビスクリプトでも完全無欠という訳ではなかったようでした。
#すこし前に、メガビに自動投稿荒らしが来たのを見て
#「あれ?対策されてるんじゃなかったのかな?」と思ってたので…。

まー、それでも単純なフェイザーは弾くんでしょうから
機能が無い場合を考えれば雲泥の差でしょうね。
48投稿者:三河人  投稿日:2002/11/01(金)02:21:32
さて、あれこれと>>44-47というように考えていたのですが
もっとシンプルに対策できるかも?と思いました。
ズバリ壷っぽい感じではありますが、スレ作成時に1クッション置いて
「この内容で投稿しても宜しいですか? 『中止』『OK』」
みたいな画面を挟めば、フェイザーもそこまで対応出来ないんじゃ
ないかと。(想像だけの話ですが)
つまり、この1クッション置いた画面で『OK』ボタンを押して初めて
スレ作成が成立する流れにするとゆー事で。
仮に自動でボタンを押すようであっても先に『中止』ボタンが
順番的に押される(と思う)ので、イケてると…ダメ?
49投稿者:>48  投稿日:2002/11/01(金)07:09:16
本来の手動投稿の使い勝手が悪くなるがな
50投稿者:三河人  投稿日:2002/11/01(金)12:44:27
>本来の手動投稿の使い勝手が悪くなるがな
そうですね。
ま、ここは新規スレが滅多に立たないですし、スレ作る時だけ
1クッション出るだけですから大して問題ないでしょう。
所詮、私のCGI練習場ー。
51投稿者:名捨て人@御昼です  投稿日:2002/11/01(金)12:47:29
スレたての時だけの意味ですね。それならあまりストレスありません。
投稿者 メール

新着レス 次の50個 レス全部を見る 掲示板に戻る 上へ