【F-board】PHP-J閉鎖【スパム】 (57レス)
上下前次1-新
20: 2006/05/25(木)01:48 ID:??? AAS
>>19
ずいぶん前のバージョンの話だよ。
21: 2006/06/03(土)15:35 ID:JBlVFVz+(1) AAS
>>6
閉鎖したってことは、もうF-boardの面倒みないのかな?
残されたユーザーで、ほそぼそとメンテナンス&再配布をやってみますか?
22: 2006/06/03(土)22:23 ID:??? AAS
再配布すんなよ。
23: 2006/06/04(日)02:27 ID:gUzo7/y/(1/9) AAS
http://pantora.net/pages/php/f-board/
F-boardという人気の掲示板を攻撃するワームが一部で流行っています。
片手間で管理しているFedora JP 掲示板も攻撃されました。
SQLを直接実行しメッセージを削除しても、スレッド更新日時は元に戻りません。
配布元のPHP-J.comは閉鎖してしまいました。
そこで更新日付を元に戻すPHPスクリプト「fix_moddate.php」を作成しました。
少々時間のかかるスクリプトなのでターミナルから実行してください。
ダウンロード:fix_moddate.tar.gz
24(1): 2006/06/04(日)02:34 ID:gUzo7/y/(2/9) AAS
http://zapanet.info/blog/item/747/catid/17
いろいろと改善方法を取ることができましたが、今回取ったのはとても簡単な方法で、「投稿前のチェックボックスを一つ追加」しただけです。
チェックボックスにチェックが入っていないとエラーになって投稿できないようにしました。
この掲示板はPHPとMySQLで作られているタイプなので改造も比較的簡単でした。
25(1): 2006/06/04(日)04:12 ID:??? AAS
セキュリティーホールがあったの?スパムに狙われてるだけ?
26: 2006/06/04(日)11:25 ID:??? AAS
>>25
セキュリティーホールはないよ
27: 2006/06/04(日)11:33 ID:gUzo7/y/(3/9) AAS
メッセージを投稿する部分を改造する場合、
/post.php
/lib/widget/default/WidgetPost.php
をいじればいいみたいですね。
WidgetPost.phpのコード(WidgetPostクラス)を見ると、HTMLが埋め込まれているので、トレースするのがちょっと面倒くさいです。
デザインテンプレートシステムを導入して、デザインとロジックを分離した方がメンテナンスしやすいですね。
http://www.itmedia.co.jp/enterprise/0402/19/epn01.html
28: 2006/06/04(日)12:06 ID:gUzo7/y/(4/9) AAS
>>24
●投稿時の入力項目として、チェックボックスを一つ追加する方法を検討
(1) チェックボックス(□にレ印を入れるやつ)の表示を追加する
/lib/widget/default/WidgetPost.php
の175行目付近(パスワード入力欄の表示位置の直下)に、
$htmlString .= '
<tr>
<td class=row1><b>投稿確認</b></td>
<td class=row2><input type="checkbox" name="confirm">投稿時にチェック(レ印)を入れてください。</td>
</tr>';
省3
29: 2006/06/04(日)12:07 ID:gUzo7/y/(5/9) AAS
(2)スレッドに新規投稿時の確認処理追加
投稿ボタンをクリックすると、
<form action="post.php" method="POST" name=message>
<input type="HIDDEN" name="act" value="submitThread">
という動作になっている。
/post.php
の112行目付近に、
$confirm = PreVar::getVar('confirm','POST');
というコードを追加する。
=(1)で追加した「confirm」の値のチェック処理を追加
省5
30: 2006/06/04(日)12:08 ID:gUzo7/y/(6/9) AAS
(3)スレッドに返信時の確認処理追加
投稿ボタンをクリックすると、
<form action="post.php" method="POST" name=message>
<input type="HIDDEN" name="act" value="submitReply">
という動作になっている。
/post.php
の198行目付近に、
$confirm = PreVar::getVar('confirm','POST');
というコードを追加する。
=(1)で追加した「confirm」の値のチェック処理を追加
省5
31(3): 2006/06/04(日)12:11 ID:gUzo7/y/(7/9) AAS
以上の3点の修正で、投稿時にチェックボックスの入力項目(レ印)が1個追加できます。
チェック方式を変更する場合、
/lib/class_FormValidator.php
のFormValidatorクラスに、新たなメソッドを追加すればOKだと思います。
上記(1)〜(3)のチェックは、FormValidatorクラスのisEmptyメソッド(空値のチェック)をそのまま利用しています。
http://zapanet.info/blog/item/747/catid/17
・投稿前にランダムに文字列画像を生成して、その文字列を投稿者に入力してもらう
これをやるなら、PEARライブラリのCAPTCHAとかを利用できそうですね。
http://www.doyouphp.jp/sample/sample_others_captcha.shtml
CAPTCHA α版のセキュリティは、まだ十分ではないようですが。
省2
32(2): 2006/06/04(日)12:16 ID:??? AAS
>>31
ワンタイムチケット持たせりゃ良いんじゃない?
2ch見たくクッキー喰わせるだけでも・・・
利用者は何も変わらないし
33: 31 2006/06/04(日)13:04 ID:gUzo7/y/(8/9) AAS
>>32
kwsk!!
【補足】
/lib/widget/default/WidgetPost.php
の165行目付近
if($this->_var['allowPass'] == true || $messInfo != ''){
…
}
みたいなかんじの条件分岐を入れて、チェックボックスの表示/非表示を切り替える処理があった方がよかったみたいですね。
=メッセージの編集/削除の処理では、チェックボックスの値確認処理(上記の(2)や(3)のような処理)を入れてないので、チェックボックスが表示されても意味なし。
省1
34(1): 2006/06/04(日)13:15 ID:??? AAS
>>32
スパマーがクッキー食ってたら意味無いような??
>>31
逆襲さん、おつかれ
35(1): 2006/06/04(日)13:17 ID:gUzo7/y/(9/9) AAS
>>ワンタイムチケット
CSRF対策 PHP
http://techtech.jp/jdl/weblog/blog/1383/1051
サテ技本のCSRF対策に疑問
http://p0t.jp/mt/archives/2005/12/csrf_1.html
↑こういう処理を追加すればいいのかな?
36(1): 2006/06/04(日)13:51 ID:??? AAS
>>34
ワンタイムチケットなら毎回投稿画面を開かなきゃダメなので効果はかなりあるかと
>・投稿前にランダムに文字列画像を生成して、その文字列を投稿者に入力してもらう
これはかなり解りにくい画像を作らないと、昔の垢取りツールでも、画像解析あったし・・・
どの道、人がやれる事なのでコンピュータにやらせることも不可能じゃないので完璧な対策は難しいと思う
なので、簡単で比較的効果の高そうな方法が良いかと
#f-boardぐらいならスクラッチしちゃっても良いんじゃないかと思ったり
37: 2006/06/21(水)13:37 ID:??? AAS
>>35
第三版で修正されてるよ。
38: 2006/07/20(木)08:20 ID:??? AAS
※下記ホストをアクセス規制するとマジでいいです。
*marunouchi.tokyo.ocn.ne.jp
*.d-osaka.nttpc.ne.jp
*.o-tokyo.nttpc.ne.jp
*.osk.mesh.ad.jp
*.dy.bbexcite.jp
*.vectant.ne.jp
*.ap.highway.ne.jp
*.fbb.reset.jp
*.ppp11.odn.ad.jp
省5
39: 2006/08/25(金)09:56 ID:23HGiUnU(1) AAS
スパムがチェックボックスに対応してきたヨカンが
上下前次1-新書関写板覧索設栞歴
あと 18 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.037s