トップページ⇒php
776コメント234KB

【仕様】荒らし対策掲示板【実装】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/08/22 02:57ID:uI+9zDhu
考えないか?
0116nobodyさん03/08/28 01:18ID:???
んじゃ、このスレでは実用的な方法を考えようとは思ってないんだな。
0117nobodyさん03/08/28 01:41ID:???
>>116
制限されるのは荒らし行為だろ?
それともお前は規制されるようなことをしようと思ってそう言ってるのか?
0118nobodyさん03/08/28 01:43ID:???
>>117
だからー、パスを画像で表示して入力させるー、とか言い出したんで
"そんな面倒な掲示板には書き込みにくい" と言ったんだろうがボケが。
0119nobodyさん03/08/28 01:46ID:???
1は画像使いたくないて書いてるが・・・

まあ、他に連投に効果的な方法はないけどな
小細工は色々できるが
0120nobodyさん03/08/28 01:48ID:???
>>118
それは技術的に未熟な方法なだけだろう。
どこ程度が面倒かなんて主観そのものじゃないかボケが。
0121nobodyさん03/08/28 06:11ID:???
>>88
管理人が率先して自作自演で荒らしまくって放置しとけば、
誰も荒らしたいなんて思わんな。

高飛車にでても下手に出ても、反応さえあれば荒らすやつは
荒らすし。

俺は自分の掲示板でいい加減なことばっかり書いて、放置
してるので、いまだ荒らされたことがない。
ROMは一日10人ぐらいはいるようだが、俺以外の書込は
50日に1レスぐらいしかないW
0122nobodyさん03/08/28 07:24ID:???
そりゃただの日記だ
0123103/08/28 18:41ID:???
書きこみテスト
0124103/08/28 18:42ID:???
やったーーーーー!
ついにホスト規制解除された(・∀・、)

誰だよ、漏れと同じホストで荒らしたヴァカは( ゚Д゚)<ゴルァ!!
0125103/08/28 18:49ID:???
>>111
2代目って誰よ?
実現可能で効果てきめんなネタが無いのに、どうやって作れっていうんだよ。
正直、素晴らしいアイデアがあったら教えて欲しいね(´Д`)

>>112
画像チェックコードでしょ?
それを超える新時代の対策を考える為にスレ立てたんだが……。
詳細は>>4を見てくれ。

>>113
ガンガル

>>120
技術的に未熟でない方法を教えてください。
いや、マジで;

>>122
ワラタ
0126103/08/28 18:55ID:???
画像チェックコードは、入力('A`)マンドクセ以前に、解りにくいという話もある。

説明しないと掲示板自体に書き込めない香具師が出てきたとこもあったそうだ。
(そんな香具師は掲示板を使わなくてよし、と言ったらそこまでだが)
で、結局、そういう香具師が多すぎて、はずしたそうだ。
0127nobodyさん03/08/28 19:04ID:???
まあ画像使わないなら連投防ぐのはあきらめな
なぜならブラウザで認識できるものはスクリプトも認識できるものだから
画像チェクコードは人間の目で認識させることに意味がある
0128nobodyさん03/08/28 19:14ID:???
まあ、画像にしたって無駄だろ。
手間だから標的にされにくいだけで。
0129103/08/28 19:14ID:???
>>127
他に手はないかな?
むしろ、逆に人が入力したと思えないモノを排除するとか。
0130nobodyさん03/08/28 19:16ID:???
どうやって判別するんだか
0131103/08/28 19:17ID:???
>>128
確かに、手間かければ懐石されるね。

某、Aさんが言ってたように
無圧縮で連結しないで
連結した後にGIFならGIFのフォーマットに乗っ取って連結すれば
かなーり懐石に手間かかるけど。
0132103/08/28 19:19ID:???
>>130
それが問題です(´Д`)
0133nobodyさん03/08/28 19:23ID:???
文字とかじゃダメだろうね。
人間の主観による判別手段が必要。
2つの写真を見せて、かわいい方をクリック、とか。
0134nobodyさん03/08/28 19:26ID:???
で掲示板スクリプトはそれをどう判別して正解を決めるんだ
0135103/08/28 19:29ID:???
>>133
その認識方法ワラタ

>>134
あらかじめ、問題番号と、正解の番号決めといて
ユーザーが選択後、スクリプト側で答えと比較して
正解なら書き込み許可。不正解ならダメと。
なんか画像チェックコードをあまり変わらないが
画像選別? ワラ
0136nobodyさん03/08/28 19:31ID:???
問題と答えのセットが無限に必要になるぞ
つかクイズと変わらんな
0137103/08/28 19:34ID:???
>>136
でも、文字でクイズ出したら
文字読み取られて、終わりじゃん?

まぁ、確かに効率的じゃないな(´Д`)

音で認識するとか。突然ヴォイス流れて
何言ってたか入力しなさいとか。
0138103/08/28 19:37ID:???
MIDIファイル生成させて
ドレミファソラシドをランダムで選んで
鳴った音を選択とかなら実用的かも。

音階チェック。
0139nobodyさん03/08/28 19:38ID:???
この掲示板は人の音感を試すのかっ

・・・どんどんわけわからん方向にいってるな
0140103/08/28 19:41ID:???
>>139
ダメだな。耳が悪い人が排除される差別的な掲示板になってしまう(´Д`)
視覚的な問題なら、そもそも見えなかったら掲示板利用できないから問題無いんだが。
0141nobodyさん03/08/28 20:08ID:???
>>140
読み上げブラウザ使ってる人もいるから、
問題無いと言い切ってしまうのはちょっと。
0142103/08/28 20:35ID:???
>>141
なるほど。そう考えると画像チェックコードもダメだな。
画像の中身までは読み上げてくれない。つか、無理だ。
0143nobodyさん03/08/28 20:39ID:???
クッキーを使うのは?

BBSのトップを表示しないと、書き込み許可のクッキーは発行されない。
かつ、クッキーに投稿時間を書き込んでおけば?
0144103/08/28 20:54ID:???
>>143
それも>>4で既出。
2chとかその方法とってるっぽい。

thebbsでも、チェックコードを二つに分けて
一方をhiddenに、もう一方をクッキーに入れておいて
投稿時に二つを足した値を、チェックするって方法が提示されてた。
014511203/08/28 21:42ID:???
>1
画像でパスワードが一番めんどくさくないと思うんだが。
たかだか、2-4程度の英数字を入力するのって、そんなにめんどくさい?
もちろん画像は、フォーム入力画面を表示のたびに「pass.jpg」とかを自動生成。
スクリプトは完璧に防げるでしょ。
不安だったら画像にグラデーションでもかけたらさらに耐久性UP!

>143
クッキー扱うのはスクリプトにとって簡単だよ。
0146nobodyさん03/08/28 21:52ID:???
画像パスワードは昨年末の第三次TIME誌投票祭りで
24時間以内に破られているので、薦めるだけ無駄。
0147103/08/28 22:09ID:???
>>145
既存の、スクリプトは防げてもツールは防げない罠。
今のところ、クッキー読み取りつつ連投するツールは無い。
0148103/08/28 22:12ID:???
グラ-デーション・ノイズ等も既出だな。
最近じゃ、画像チェックコードがただの飾りになってる掲示板も多い。
014911203/08/28 22:25ID:???
>146
TIME誌って、あのアメリカの?

>147
すんごい疑問なんだけど、どうやって画像パスをやぶるの?
画像解析しちゃうツールがあるの?厨房にも使いこなせるのかな?
0150103/08/28 22:32ID:???
>>149
stormっていう厨房ツール知らないの?

確か、連結GIFイメージを分割して各画像ごとに分て
予め用意してある画像と比べて、画像チェックコードを突破する。
015111203/08/28 22:41ID:???
なるへそ。
>連結GIFイメージを分割して各画像ごとに分て
漏れが言ってたのは連結GIFじゃなくて、単一の画像ファイルにランダムの
パスワードを生成することを言ってたのよ。なので、ファイルサイズと見た
目はいろいろになっちゃうけど、ファイル名はいつも一緒だよ。

>予め用意してある画像と比べて
そんな画像はどこにも無いので比べようが無い=セキュリティが高いってこと。
0152103/08/28 22:51ID:???
>>115
(´∀`)?

>単一の画像ファイルにランダムのパスワードを生成することを言ってたのよ。
パスワードを画像で表示するって事じゃないの?

連結GIFっていうのは、ランダムな数字のパスワードの場合だったら
0〜9の画像を用意して、発行された数字をもとに
それに対応する数字画像を連結してひとつの画像にして表示するって事です。

>そんな画像はどこにも無いので
別にファイルのバイナリを比べてるわけじゃ無いので
まったく同じ画像じゃなくても、
パターンがわかれば、エミュレートできます。
0153103/08/28 22:51ID:???
レス版間違えた。
>>151ですた。
0154nobodyさん03/08/28 22:53ID:???
画像内の文字(チェックパス)を 1-3文字程度のランダムな文字列にし、画像内である程度ランダムに
配置するようにする(と言っても、文字の順番まで入れ変わるのは×)。フォントもランダムにすれば更にOK。
hidden で、その文字列を crypt したものを埋め込んでおき、書き込まれたときに
チェックパス(を crypt したもの)と比較して、一致すれば許可、一致しなければ破棄。
こんな感じではどうだろうか。

PHP では実装は簡単だな。Perl はシラネ
0155103/08/28 22:57ID:???
>>154
だから、hiddenの値を読みとって、送られたらおしまいでは?;
015615403/08/28 23:02ID:???
>>155
crypt されたものは不可逆なので、読み取られても痛くとも何とも無いわけで。

あ、そういえば、書き込みフォームをするときにフォームのIDでも振っておいて、
サーバ側ではそのIDと、チェックパスを crypt したものを記録しておかないといかんな。
015715403/08/28 23:03ID:???
>>156
書き込みフォームをするときに → 書き込みフォームを出力するときに

ゴメソ
015811203/08/28 23:06ID:???
>152
>パスワードを画像で表示するって事じゃないの?
そうだよ。そのとおり。

>連結GIFっていうのは、
連結GIFを使わないのよ。

>0〜9の画像を用意して、
この画像がパターン化しちゃうからばれちゃう恐れがあるじゃん。

>パターンがわかれば、エミュレートできます。
そうなのね。じゃーいかにその厨房ツールのエミュレートロジックから
外れられるか?という事なんじゃないかな?
外国製だったら、明朝で表示とか。適当な画像でパスワード画像の上から
アルファかけるとか。

>154
>画像内である程度ランダムに配置するようにする
位置を崩せばそのツールをだませるって事?

>フォントもランダムにすれば更にOK。
なるへそ。

>hidden で、その文字列を crypt したものを埋め込んでおき、
サーバー側がパスをわかってれば十分じゃない?
015915403/08/28 23:08ID:???
あああ、なんか混乱してる。

>>158
> サーバー側がパスをわかってれば十分じゃない?

そう、その通り。訂正thx
0160103/08/28 23:09ID:???
総当りでcyriptした値と同じになる文字列検索するとか。

それ以前に画像ファイルは連結じゃないとするとどうやって作るの?
予め、文字列が描いてある一枚の画像を用意するんだったら
無限枚用意しないとパターン化されるよ?
アプレットかなんかで描画するとか?
016115403/08/28 23:10ID:???
PHP には ImageString という便利な関数があるわけで。
0162103/08/28 23:12ID:???
>>158
>連結GIFを使わないのよ。
だから、何使うの?;

>この画像がパターン化しちゃうからばれちゃう恐れがあるじゃん。
0〜9のセットを複数用意して、ランダムで選択とか(himicodeの場合)

>外国製だったら、明朝で表示とか。適当な画像でパスワード画像の上から
アルファかけるとか。
別に、画像の中身で判断してるわけじゃ無いからフォントとかあまり意味無いと思うのですが。
0163103/08/28 23:14ID:???
>>161
あぁ、なるほど。
PHPはちょっといじっただけで全然知らない(´Д`)
スマソ。
0164103/08/28 23:16ID:???
>>160
cyriptってなんだろう?(´Д`;)
cryptですた。
0165103/08/28 23:19ID:???
>>156
>あ、そういえば、書き込みフォームをするときにフォームのIDでも振っておいて、
>サーバ側ではそのIDと、チェックパスを crypt したものを記録しておかないといかんな。
発行済みチェックコードのリスト作っておいて、その中のものと比較すればフォームIDはいらないと思う。
016615403/08/28 23:22ID:???
>>165
それだと、リロードしまくって発行済みコードの数を増やし、あとは総当りでどうにでも
なっちまうと思うんだが。
0167103/08/28 23:25ID:???
>>166
リストに記録する数を制限すればいい。
追記型で、古いものから消えてくように。
そんなにアクセス無い場所なら30個ぐらいにしとけば
突破されても被害少ないぞ。
0168103/08/28 23:26ID:???
つーか、フォームIDはやっぱりhiddenに入れとくの?
0169nobodyさん03/08/29 00:29ID:???
http://www.claraocr.org/
文字はやめとけ。
017011203/08/29 00:47ID:???
>167
パスワードはそのときその人だけの一回コッキリで使うのが最強だよ。
わんたいむぱすが一番。

>168
フォームIDって何のために使うの?
同一ユーザーかどうか知りたいんだったらセッションで管理でしょ。
0171103/08/29 01:41ID:???
>>170
仕様済みチェックコードはリストから消すよ、もちろん。
0172nobodyさん03/08/29 01:54ID:???
結局画像で落ち着いたのか?
0173103/08/29 02:10ID:???
>>172
落ち付きませんよ(´Д`;)
0174nobodyさん03/08/29 02:37ID:???
もう教えて君の相手するのやめろよ
こういうやつ次々現れてキリないぜ
0175103/08/29 02:54ID:???
>>174
教えて君って俺?
0176nobodyさん03/08/29 02:58ID:???
>>175
他にいるか?
0177103/08/29 03:07ID:???
>>176
そうか、残念だ。
0178nobodyさん03/08/29 03:07ID:???
とりあえずなんか作ってみろ
理屈だけコネててもすすまんぞ
0179103/08/29 03:14ID:???
>>178
それは十分解るんだが。
何を作ろうか迷ってるところだ。
プロテクト掲示板は意味無いって結論でたし。
入力する必要無い画像チェックコード掲示板は実現不可って結論でたし。
。・゚・(ノД`)・゚・。
0180nobodyさん03/08/29 03:16ID:???
んだな。
大まかに方向性は決まってるんだから、とりあえずつくっちまえ。
細かい仕様なんて後でもできるよ。

変化を抱擁せよ
0181103/08/29 03:20ID:???
>>180
大まかな方向性というと・・・?

>>81で出た結論って事ですか?
0182nobodyさん03/08/29 03:40ID:???
とりあえずでもいいから思いついた機能を列記してみろよ。
そしてそれぞれをサブルーチンでもいいから書いてみれ。
未だに1行もコード書いてないだろ。
どんな機能を思いついたってコード書けなきゃ意味ない。
0183103/08/29 03:52ID:???
>>182
Ok
0184nobodyさん03/09/01 03:35ID:???
二日たったわけだが
0185103/09/02 00:13ID:???
>>184
とりあえず、ここ二日、仕事が忙しくてスクリプトいじってる心のゆとりが無いんだが(´Д`)
0186103/09/02 00:16ID:???
とりあえず、なんか参考になりそうなスレ

匿名プロクシは、止められないのか・・。
http://pc2.2ch.net/test/read.cgi/php/995085528/l50

新しい掲示板の仕様を考える
http://pc2.2ch.net/test/read.cgi/php/995359658/l50
0187nobodyさん03/09/04 18:06ID:4pZE+ndr
http://www.hansin.pos.to/minibbs7.cgi
ここが、AAとかコピペ荒らしを自動で弾くスクリプト使ってるみたいだけど
0188nobodyさん03/09/04 18:35ID:Ht6cwgxq
http://sirizamurai.s4.xrea.com/dq/r_board.cgi
ここの掲示板で荒らしが来たらみんなでやっつけるってのはどうかな
0189nobodyさん03/09/04 20:52ID:???
連投ツール系は外部JavaScriptファイルにチェックコードをhiddenで書いてたりしても突破する?
Javascriptダメって言われたらそれまでだけど
0190nobodyさん03/09/04 23:02ID:rEKsgWfO
連結GIFの画像コードはツールがあるけど
ttp://aji.s1.xrea.com/
ここの画像コードなら大丈夫じゃないの?
0191nobodyさん03/09/05 01:39ID:???
>>189
*.jsファイル直接読まれてばれる
>>190
その掲示板はゴニョゴニョ・・・
0192nobodyさん03/09/05 01:50ID:???
お?ま…まさか
0193nobodyさん03/09/05 20:16ID:???
>>191
CGIでJSを出力する。

code.txt
unyanya

document.write('<INPUT type="hidden" name="code" value="unyanya">');
で、書き込み時にcode=unyanyaじゃなかったらじはじき、書き込めたらcode.txtをランダムに書き換えるってのは?

説明べたでスマソ
0194nobodyさん03/09/06 01:55ID:???
出力されるものは読まれる
それがHTMLだろうがJSだろうが
上のは
code.txt
function unyaya(){}

CGI_
document.write('<input type="hidden" name="code" value="'+ unyanya() +'">')

とかやりたいの?
毎回code.txtスクリプトに読ませりゃいいじゃん
ブラウザが読めるものはスクリプトも読める
0195nobodyさん03/09/06 02:03ID:???
あ、それとも
<input type="hidden" name="code" value="***">を
document.write()で出力するだけて意味なのかな?
まあ、どっちでも意味ねーべ
読まれる
0196103/09/06 06:36ID:???
>>187
ひららか…
ぶっちゃけ、プロテクトBBSはそこからアイデア得たんだけどね。

>>188
ドラクエ?

>>190
Perl賢者か…
どっかで突破されてなかったっけ?

つーか、今、ライブラリ使わないで
あぷろだ書いてるんだけど
なんか処理とまる(´Д`)
0197nobodyさん03/09/06 07:56ID:???
あの板はごにょごにょのルーチンにごにょごにょ使ってるので
ごにょごにょ送ると画像無視できるわけですよ
まあ一番ひどいのはIMAC零式の改造版なわけですが・・・
ごにょごにょがおかしくなってるので同じものが何度でも使えたりします
つかデフォで使ってるとカル板時代からの穴のせいでタグ使い放題だからだめぽ
0198nobodyさん03/09/06 11:33ID:xymNl04s
>>197
code.txtにはランダムな文字列が書かれてる

code.cgiは
open(F, "code.txt") or ....;
$code = <F>;
close F;
で
content-type: x-applicetion/javascript\n\n",
document.write('<INPUT type="hidden" name="code" value="'+$code+'">');
と吐く

で、BBSの書き込みフォームから
<SCRIPT src="code.cgi"></SCRIPT>

書き込み時に
code.txtの内容とparam('code')が一致しなければ弾く。
無事書き込めた場合はcode.txtをランダムな文字列に書き換える

code.cgi読む⇒POSTする の流れで連投されたらだめだけど、ガブリデュークくらいはふさげない?
0199nobodyさん03/09/06 11:45ID:???
わざわざJS使わなくても<input type="hidden" name="code" value="**">
で同等の効果が得られるのではないかという疑問がまずあるわけだが

つかガブなら英数字のみのカキコ弾けば防げる
0200nobodyさん03/09/06 12:06ID:???
ごにょごにょのとこ気になるよぅ
>ごにょごにょがおかしくなってるので
コレは知ってるのだが
0201nobodyさん03/09/06 12:19ID:???
>>198に補足
「>>197」っていらんかった

>>199
そうですね。CGIからJS吐けば、リファラが書き込みフォームのところじゃなかったら弾くとかできるかなと、思ったんですが。

>つかガブなら英数字のみのカキコ弾けば防げる
ガブって日本語もポストできませんでした?
0202nobodyさん03/09/06 12:21ID:???
日本語は二重投稿で防げる
ランダムは英数字のみだな
0203nobodyさん03/09/06 14:31ID:???
あ、記号はいってたっけ
まあ^\x20-\x7e$てとこか
0204nobodyさん03/09/06 16:22ID:???
ざっとここまで読んだが>>1がリアル厨房か知らんがスキルなさ杉。
いろいろ言うのもいいけどとりあえずアルゴリズム書いてコード書け。
0205nobodyさん03/09/07 00:47ID:???
>>202
日本語ランダムで撃たれたらどうする?

>>204
オマエモナー
0206nobodyさん03/09/07 01:32ID:???
ガブリは日本語ランダムできないだろ
0207nobodyさん03/09/07 01:39ID:???
>>206
らんだむでひらがな割り当てて出力するよう
改造されたら?

つーか、stormでひらがなランダムできたような・・・。
0208205==207==103/09/07 01:43ID:???
てか、英語でレス返したい場合はじかれる掲示板か...
0209nobodyさん03/09/07 01:46ID:???
ツール厨相手を想定してるのであって改造は想定してないわけだが
デフォルトでは\x20-\x7eの範囲でしか作らん

改造につきあうならスクリプト相手のイタチゴッコと同じことになるだけだな

0210nobodyさん03/09/07 01:48ID:???
正しくは英語の"一行レス"が弾かれるな
0211nobodyさん03/09/07 03:48ID:JsDDZm2V
>1
いつまでたってもわからんようだな。
お前の考えてるロジックでは「無理」なんだよ。
0212nobodyさん03/09/07 08:06ID:???
http://www.ait.to/~perl/cgi-bin/minimes/minimes.cgi
微妙だけど既存のちょっとしたツールなら防げないでしょうかね?
だれか軽くテストしてみてくださいませんけ?
0213nobodyさん03/09/07 09:58ID:???
・・・とりあえず改行消す処理をつけてな

まあ、出回ってるツールは防げる(クッキーやらJSには対応してないし)
0214nobodyさん03/09/07 13:23ID:???
>>213
ありがとう。
0215nobodyさん03/09/07 13:44ID:???
わざわざ専用に書かれたらぜんぜん通過できそうだなぁ・・・

一応一回書くのにJSと書き込みフォームのcodeもチェックしないといけないはずだから手間だとは思うんだけど
0216nobodyさん03/09/07 15:59ID:???
まあ、そうだな
いってみれば
掲示板本体からMODE=codeの引数取得
MODE=codeでアクセス、コードを取得
掲示板にクッキーとフォームにコードひっつけて送信
だけだからな
■ このスレッドは過去ログ倉庫に格納されています