2009/04/18
USERS GROUP ML 終了 WSHは…
USERS GROUP ML が終了しました。
WSHのMLは受け入れ先がないようです。
昔、WSH MLもう一個あったんですがそっちも消滅してるっぽいですねぇ・・・
さて。 うちの掲示板が色々あって停滞しているのですが、もしお手すきの方がいらっしゃったらご回答いただけると幸いです。
なお、PowerShell ML はAdmintechさんところにあります。
元記事:http://blogs.wankuma.com/mutaguchi/archive/2009/04/18/171668.aspx2008/11/22
[ASP.NET][C#]BBQの利用
ご無沙汰してます。牟田口です。近況は省略(えー mixiついったーブログその他などを。
さて、最近、spamコメントが鬱陶しくて色々対策を考えてるんですが、手っ取り早く効果的なのはBBQを使うことですね。某巨大掲示板群サイトで荒らしに使われた、おもに公開プロキシのリストをDNSを引いて持ってくるというものです。Perlの実装はこのページにあります。PHPの実装も見かけました。
意外と.NET,C#な実装を見かけないので、最近覚えたC#でさくっとかいてみました。
using System; using System.Net; using System.Net.Sockets; namespace CheckBBQ { class Program { static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("BBQ判定プログラムの使い方:\r\ncheckbbq.exe IPAddressもしくはHostName\r\n戻り値:\r\n-1:失敗\r\n0:串ではない\r\n1:串である"); return; } IPAddress[] addresses= Dns.GetHostAddresses(args[0]); if (addresses.Length == 0) { Console.WriteLine("-1"); return; } string ipAddress = addresses[0].ToString(); string[] ipAddressParts = ipAddress.Split('.'); Array.Reverse(ipAddressParts); string hostName = string.Join(".", ipAddressParts) + ".niku.2ch.net"; try { addresses = Dns.GetHostAddresses(hostName); } catch (SocketException ex) { Console.WriteLine("0"); return; } catch (Exception ex) { Console.WriteLine("-1"); return; } if (addresses.Length == 0) { Console.WriteLine("-1"); return; } ipAddress = addresses[0].ToString(); if (ipAddress == "127.0.0.2") { Console.WriteLine("1"); } else { Console.WriteLine("-1"); } } } }
使い方はコードを見てください。これは単に引数のホストをBBQにかけ、結果を標準出力に出すコンソールアプリですが、メソッド化してもaspxに組み込んでもWebサービスにしてもまぁ好きなように使ってくださいませ。
でも、BBQは万能選手じゃありません。本来書き込めるべき人が書き込めないことも多々あります。なので、BBQをまず通してOKならOK、NGならCAPTCHA認証をやってもらう、とかがいいと思います。
トラックバックspam対策もいろいろ考えたんですが、まだ国産のは少ないので、送信データが英字のみをはじく、でも効果は結構あります。このへんmixiでメモったのでコピペ。
- トラックバックって
- 2008年10月11日20:04
黒歴史になるんだろうか
オートディスカバリーはないと微妙だしあるとspamの温床になるし。
何らかの認証の共通規格を設ける?
RSSは2.0で一応落ち着いたけどトラックバックは発展しないままだなー
私はいま、現行規格のまま、オートディスカバリーを有効にしてかつspamトラックバックが送られないようにする方法を考え中
送り元を見に行くというはてな方式も一つの方法論であるんだけど、なんかこう納得できないものがある
コメント
- むたぐち 2008年10月11日 20:07
- 送信元ホワイトリスト方式もなんだか微妙です
- むたぐち 2008年10月11日 20:18
- excerpt,titleなどの文字列で弾くのはよくある対策だけど根治法じゃない
いたちごっこだー
BBQは使えない。理由は少し考えれば分かりますので略。
やっぱりはてな方式なんかな。urlの先をまず見に行って、そこにこちらへのリンクがなければまず速効NG。
あとはお好みで、引用がなければNGとか。
でもこれって莫大なコストがかかるし送り元を見に行くというのがそもそもなんか根本的にどうなんっておもう。
- むたぐち 2008年10月11日 20:38
- トラックバックは性善説ベースで作られた規格
引用元を見に行くのは性悪説ベースの対処
両極端すぎる
- むたぐち 2008年10月11日 21:08
- 送り元を見に行く方式の問題はまだあって、A→Bにトラックバックを送信された場合、B→Aに「AにBのURLが存在するか」を確認しに行く。
一見合理的だけど、このトラックバックって誰でも送れるんだよねー。Aを書いた人じゃなくても。つまり、AともBとも関係ない悪意を持つxがいて、A→Bへのトラックバックを乱射した場合どうなるか。B→AのDoS攻撃みたいなんが成立しちゃう。同ドメインへの確認間隔を制御する必要がでてくる。でもそれはもちろん正しくサービスを利用する人にとっては不便になるわけで。
- むたぐち 2008年10月11日 21:28
- 送信元を見に行く方式で、トラックバックを送った人のリモートホストと、urlに指定されたWebサイトのドメインが一致するかまず調べるという方法もあるけど(たぶんはてなではこれをやっている)、これは正しい使い方をしていても一致しないことも当然あるわけで(手動でトラックバック打つときとかね)。だけどこの辺が確かに手の打ちどころではあるようには思う。手動で打つ時はオートディスカバリー関係ないしな。ただ、私のようにDNSの逆引きができないというか正逆で結果が異なるようなサーバーの場合は泣いてもらうしかないかなー。
- むたぐち 2008年10月11日 21:32
- つまり、オートディスカバリー用(Blog提供サービスが見に行く用)のtrackback ping URLと、手動で打つ場合のtrackback ping
URLをまず分ける。
前者は、トラックバックを送った人のリモートホストと、urlに指定されたWebサイトのドメインが一致するかまず調べ、一致しない場合ははじく。一致した場合は送信元を見に行って、こちらへのリンクがある場合は通す。それ以外ははじく。
後者は、trackback ping URLを用意するがあるところまではコピペできるが、それに数文字、画像にかかれた文字をつけたすようにする(認証の代わり)。
この辺が落としどころかなー。
- むたぐち 2008年10月11日 21:35
- 追加文字列は定期的に変わるようにする。
- むたぐち 2008年10月11日 21:37
- オートディスカバリーのほうはチェック間隔に制限を設ける。
- JZ5 2008年10月11日 22:38
- SPAM温床はメールと同じようなもんじゃないだろか。
バーベキューってなんですか?
手動のトラックバックURL(使わないけど)は、JavaScriptなんかで生成するのはどう? Server側とClient側で共通のアドレス作れるけど、直接ファイル読み込んでJavaScript実行してないと正しいURLがない。
http://katamari.jp/blog/index.php?UID=1163941454
- むたぐち 2008年10月11日 22:54
- いえねー、トラックバックってわりと新しい規格なのになんでspam温床になることを考えて規格作らなかったのかと。
eメールは昔々作られたものだから仕方ないとして。
JavaScriptいいですねー。やってみます。
トラックバックspam対策って結局同じところに辿りつくのねw>URL
- むたぐち 2008年10月11日 22:55
- BBQについてはこちら
http://bbq.uso800.net/
JZ5さん事後承諾でごめんなさいだけどコピペさせていただきました。
あと、BBXを使うのも一つの案かな。こっちは広告爆撃ブラックリストなので近いものがあるかと。
元記事:http://blogs.wankuma.com/mutaguchi/archive/2008/11/22/161939.aspx2007/01/11
チェック式 WSH入門 第8回 公開
Functionプロシージャでユーザー独自の関数を定義する − @IT
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh08/cformwsh08_01.html
早いものでもう第8回ですね。ようやくVBScript編は終わりに近づいてきました。
基礎から押さえて一通り網羅してきたつもりですが、なんか抜けてないでしょうか?あ、Select Caseは次回やりますんでw ステートメントがばらばらに登場する変な講座になりましたが、これもありかなーと思っています。あとで見るとき分かりづらいかなという懸念はあります。ステートメント別目次なんぞ作ったらよいでしょうか。
今回の記事はもともと1回分と思って書いたのですが長すぎということで分割されたものです。
「複数の値を返すFunctionプロシージャ」とかやろうかなーと思ったんですが、それよりClassステートメントを覚えてもらった方がいいかと思って省略しました。Classは次回やります。あとオブジェクトつながりでErrオブジェクトを取り上げる予定です。正規表現はどうしましょうw まともにやったら1回分のネタにはなりますが、VBScriptから離れた別の言語(ではないかな?あくまで「表現」か。)ですしねー。
また何かありましたらフィードバックをお寄せください。質問などもお待ちしてます。(質問はWSH Lab.の掲示板でお願いします)。
で、関係ないですが明日はわんくま大阪勉強会ですね。PowerShellについて1時間20分みっちりしゃべってデモります。参加される方、お会いできるのを楽しみにしています。
元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/01/11/55708.aspx2006/06/21
Scripting Weblog IIの始まりです。
こんにちは。Scripting MSMVPの むたぐち こと 牟田口大介 です。
Windows Scripting Host
Laboratoryというサイトを運営しています。MSMVPはこのサイトでの情報提供や掲示板でのサポートの功績が認められて、2004年7月にいただきました。WSHを始めとするWindows
Scriptの分野に興味を持っています。@ITで連載も持っています。
少しプライベートな自己紹介しておきます。私は兵庫県の芦屋市に生まれ、28年間ずっと棲息しております。化学系の某大学院を卒業し、修士の学位を持っていますが、今は研究生と言う形で3年ほど大学に在籍してるものの、正直、あまり活動はしてません(汗 論文も出てないし…(汗汗 あ、専門は有機材料化学です。合成から物性測定、材料としての応用までやってます。有機EL素子という、電圧をかけると光る素子の材料を合成して実際に素子を作製して性能をみたりしています。
4年ほど前にちょっと精神的に落ち込んでしまって(鬱、あるいは抑うつ状態ってやつですね)から中々出口が見えないそんな日々ですが、MSMVPという賞をいただいたことでだいぶ立ち直ってきました。そろそろ就職しないとどうにもまずいそんな日々ですが、体調も見ながらぼちぼちと言ったところですね。化学もいいけどIT系の会社がいいのかなーと思ったりもする今日この頃。
先日行われたわんくま同盟大阪勉強会#1に参加した際、なんだか楽しそうだったので(ぉぃ)、わんくま同盟に入れてもらうことにしました。もともと私はブログを持っていたのですが、なんとなく更新が途絶えてしまっているのでそのリニューアルバージョンとして、Scripting Weblog IIという形で再開することにしました。始めのうちは昔の記事をインポートしていくところからしていこうかなあと思っています。大した量でもないので。
記事のメインは、Windows PowerShellという、Microsoftが開発中の新しいシェル&スクリプティング環境についてになると思います。たまにWSHとか科学ニュースとかも取り上げていったりする、趣味全開のブログになると思います。でも情報価値はそれなりに持たせようと思っているのでちょっとだけ期待しててください。
というわけで皆さん、これからよろしくお願いいたします。
元記事:http://blogs.wankuma.com/mutaguchi/archive/2006/06/21/31081.aspx
Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー