New Community Forums are coming. Watch this space for news.
Subscribe: RSS
  • WebService::Livedoor::SpamChampuru::DNSBL の下方に PHP 版も公開されていたので今回被害を受けた IPアドレスを使ってさっそく調べてみました。

    外部からの呼出では IPアドレスでの判定しかできないため今回のような DHCP で割り当てられたアドレスには無力なようです、残念。

    $brtn = CheckSpamIP("116.21.172.105");
    if ($brtn)
    	print "SPAM-IP!";
    else
    	print "IP OK!";
    
    
    function CheckSpamIP($check_ip)
    {
    	if (strlen($check_ip) == 0)
    		return TRUE;
    
    	$ips = split("[.]", $check_ip);
    	$cnt = count($ips);
    
    	if ($cnt < 4)
    		return TRUE;
    
    	$host = "";
    	for ($ni = $cnt;$ni > 0;$ni--)
    		$host .= $ips[$ni-1].".";
    
    	$host .= "dnsbl.spam-champuru.livedoor.com";
    	return checkdnsrr($host, "A");
    }
    • いろいろ検索してて、いい方法を見つけました。今回のようなパターンには最高の方法です
      原理はアクセスの有った ipアドレスからホスト名を引く関数を使う方法です。
      名前引きのできないアドレスからの訪問は bbclone を見ている限り国内からのアクセスはほとんどありませんし注意書きを書いておけば、まずは問題なさそうです。

      外国からのアクセスで、特に今回のようなアクセス元はほとんどの場合がipアドレスでのアクセスで名前引きができなんですよね。こんなにぴったりの方法は他にありません

      問題はプロキシサーバーの場合どうなのかということですが一度試してみます。
      プロキシに対応できない場合は htsccess と組み合わせれば怖いもん無しです ・・ たぶん
      それよりも一番うれしいのは htaccess の方法のように denny リストの更新が不要なことですよ

      これくらいのコードなら今の掲示板にも比較的簡単に組み込めそうですし ・・・ たぶん  laugh
      $ipaddress = $_SERVER['REMOTE_ADDR'];
      $hostname = gethostbyaddr($ipaddress);
      if ($ipaddress==$hostname) {
      	// 書き込みエラー処理に飛ばす
      	exit;
      }
      // 書き込みを続行

      しばらく使ってみて、また結果報告をしたいと思います。

      この方法なら、書き込みのあったアドレスのエラーログも取れそうです。
      • 今回使わせてもらっている掲示板は残念ながら元々承認機能がないのでエラーログを撮るのは難しそうです。
        modx のブログに応用を考えれば非公開で書き込みするようにすれば簡単に応用できそうです。
            ・
            ・
        とりあえずこれで準備万端。ログさえ残せればもっと楽しみが増えるんですがその辺は今後ゆっくり考えていくことにします laugh
        • 今回のような宣伝書き込みは掲示板設置以来4年ほどで初めてのパターンです。かなり勉強になりました。

          そこで今回は書き込みする側にも満足感を与えるためにある仕掛けを考えました。ようするにホスト名の引けないクライアントからのアクセスの場合、おとり用の掲示板に書き込んでもらうことにしました。これなら後からどんな訪問があったかもよくわかります。見つけたときにたまに消してやればもっと喜ぶでしょう。そのために禁止ワードも適当に入れとくことにします。

          でも、もうあきらめてしまってもう来てくれないと楽しみがありません。
          わーははは  laugh
          • Quote from: dainiti at Mar 28, 2009, 02:49 PM

            それに、ブログもっていないので smiley

            ブログを持ってください。汗

            明確な規約があるわけではないですが、ここはコミュニティなので、一人のユーザが延々と自分の試行錯誤を
            書いているとうるさく感じる人がいると思います。周囲の空気を読みつつ、少し遠慮をお願いしたいです。
            「MODxにも関係あるかもしれない」というのは、理屈としては分かりますが・・

            他の人が今回の話題に興味を持ってワイワイやっていただけたら、それはそれでコミュニティとしてアリですが、
            これだけ書いて誰からもコメントがつかないのは浮いて見えるような気がします。
            • 少しスパムの話と逸れますが。。。

              Quote from: dainiti at Mar 29, 2009, 02:22 AM

              今回使わせてもらっている掲示板は http://www.mt312.com/ の写メール掲示板 IMG-BBS です。
              残念ながら元々承認機能がないのでエラーログを撮るのは難しそうです。

              サイト先を確認したところ、公開されいてる掲示板は独自のライセンス体系になっているようで完全なフリーでの提供ではなく、条件付でのフリー提供となっています。
              ソースの改造に関しても利用形態によっては有償になる場合もあるので、こういったフォーラムで投稿すべき内容ではないように思えます。
              解釈によってはスクリプト利用規約に書かれている事業者登録(有償)が必要な「第三者への改造提供行為」に接触するような気もします。
              その場合、事業者登録対象はdainitiさんかmodxフォーラム責任者のどちらかでしょう…。

              dainitiさんが事業者登録しているのでしたら、フォーラムへの書き込みに大して問題がないか製作者に確認していただければそのまま載せてもかまわないと思います。
              その場合は許可を得た旨を記載してください。

              グローバルIPの件もそうですが、フォーラムに書き込む際は、本当にその書き込みに問題がないかもう少し注意を払っていただけませんか。
              面倒くさい事と思われるかも知れませんが、フォーラムを問題なく運営するためのリスク回避として必要ですのでご理解ください。
              • Quote from: soushi at Mar 29, 2009, 08:28 AM

                解釈によってはスクリプト利用規約に書かれている事業者登録(有償)が必要な「第三者への改造提供行為」に接触するような気もします。
                設置当時はあれこれ使用条件をみて決めたと思うのですが今見てみると確かに事業者登録というのが有るようです。
                さっそく作者様にメールにて問い合わせをしています。現在の使用規約が去年の10/30にすべて書き換えられているようなので以前がどうだったのかは記憶があいまいです。

                このトピックでのソースコードの表示はとりあえず削除しておきます。
                • Quote from: yama at Mar 29, 2009, 07:55 AM

                  明確な規約があるわけではないですが、ここはコミュニティなので、一人のユーザが延々と自分の試行錯誤を
                  書いているとうるさく感じる人がいると思います。周囲の空気を読みつつ、少し遠慮をお願いしたいです。
                  もう少し考慮してから書き込むことにします。で、毎回おさがわせして申し訳ないのですが質問のできないブログを持つつもりは今のところありません。

                  今回も soushi さんとのやり取りがなければ gethostbyaddr の利用方法にまで自分だけではたどり着けませんでした。ただし言葉使いと内容についてはもう少し考えて発言したいと思います。