2006年5月17日

掲示板SPAM対策

掲示板へのスパム(SPAM)対策メモ。
掲示板改造支援サイト

Read More...

2006年5月10日

WindowsでPerlUnitを使う

ActivePerlがインストールされてて、WEBに出られるのは前提とする。

  1. コマンドラインで、以下を実行。
    ppm install Test-Unit
  2. TestRunner.plがあるディレクトリへのパスを通す。(普通は、"C:\Perl\site\lib\Test\")
    パスを通すやり方は以下。
    1. 「マイコンピュータ」のプロパティを開く。
    2. 「詳細設定」タブの「環境変数」を開く。
    3. 「システム環境変数」で"Path"を編集する。
    4. Windowsを再起動する。
  3. 使うときは、コマンドラインで、こんな感じに。
    cd ターゲットのあるディレクトリ
    TestRunner.pl target.pm
    バッチを組んどくと便利そうだ。

以上!

Read More...

2006年5月4日

フォームメールを利用したスパムメール

井上雅央の豊富な「顔面こすり」バリエーションに感動していたら、管理しているサイトで不具合を見つけてしまった。
内容は、フォームメールを利用してスパムメールを送れてしまう、というもの。
PHPで関数マニュアル見ながら作って、「動いた動いたおっけー!」と思っていたが、人様に迷惑をかけるようなものになってしまっているとは・・・。

以下は、その道の人にとっては、阪神江草のテーマ曲が「怒りの獣神」なのと同じくらい、常識だろうが、僕と同レベルの「WEBプログラミング、趣味でときどきだけやりまんねん。」な人のためにメモ。
(適当にググって「多分こうゆうことだろう」というレベルなんで、あんまし信用しないでください。)

本文部分の入力エリアの頭にBCCヘッダをごっそり付けて、フォームメールの送信を行うと、普通にガシガシBCCできてしまう。
これを防ぐには、入力データから'\n'を取っ払ってからsendmailに渡す。
('\n'がないと、ヘッダとして区別されない)
また、保険として(?)文字列の長さ制限と、','の禁止をすればいい。

僕は、「なんか最近変なメールがきてるな~」と思って気がつきました。
自分が設置したフォームメールを使って、謎なメールが来ている人は、フォームメールのセキュリティホールを疑ってみてください。
知らない間に、たくさんの人に迷惑をかけているかもしれません。
試してみればわかることやし。

燃やせ燃やせいーかりをもやっせー・・江草のキャラにあってないよな~。

Read More...

2006年5月3日

なんでもないコードでStackOverFlowException

プロパティへのgetやsetをしているだけなのに、ガシガシ再帰し続け、いつの日かStackOverFlowExceptionが投げられるコード。

public class Person
{
private string name = string.Empty;

public string Name
{
get
{
return this.Name;
}
set
{
this.Name = value;
}
}

public Person()
{
//
// TODO: コンストラクタ ロジックをここに追加してください。
//
}
}

上記のNameプロパティに、setしてもgetしても、StackOverFlowExceptionがthrowされる。
原因は、大文字小文字のスペルミス。

アホみたいなミスだが、マルチスレッドなアプリでやらかしてしまうと、発見するまでも結構な時間がかかることも。

細かい単位のテストをしっかりやってれば大丈夫なはず・・・。 でも、忘れかけたころに、またやらかしてしまう。

藤○(神)のバント失敗よりは確率が低いだろうか。

Read More...