コンピューターのことなどを綴ったメモ (旧:目から鱗 w/SQLite)
| Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
NP_PostLog [Nucleus]
2007年1月31日
そこで、そのようなケースにおいてPOSTされた値のログをとるプラグインを作成した。
NP_CaptchaSL [Nucleus]
2007年1月30日
このプラグインはNP_Captcha同様に画像認証によりスパムを撃退するものであるが、認証用の画像はこのプラグインをダウンロードするときに一度きり作成されるだけである。インストールした後は認証用の画像を作成しないので、GDがインストールされていないサーバ環境でも使用可能である。画像作成を行わないことに加えて独自のMySQLテーブルも持たないため、オリジナルのNP_Captchaに比べてサーバへの負担がかなり低いはず。
反面、一度認証キーが破られてしまうと、スパムを連続して送られてしまうことはありうる。そういったケースでは、このプラグインをもう一度ダウンロードしなおして、上書きインストールをすればよい。こうすることで、認証画像を変更することが出来る。
NP_CaptchaSLをダウンロードするには、ここをクリックしてください。
(NP_CaptchaSLを提供するためのダウンローダー(NP_CaptchaSLDL)は、公式フォーラムからダウンロードしてください。)
スパム対策ロードマップ [Nucleus]
2007年1月25日
1)NP_JSEncodeもしくはJavaScriptによる対策(注意:この方法だけでは防御が甘いため、この段階は既に過去のものになっている)
2)NP_ProtectByMD5 による対策(現在の状態)
3)NP_ProtectByMD5 + JSEncode
4)NP_ProtectByMD5 + NP_ProtectByAjax
5)スーパーライト版 NP_Captcha
6)ライト版 NP_Captcha
7)NP_Captcha
MacBook [General]
2007年1月14日
早速Safariで自分のブログを見てみた。よしよし、巧く表示されている……と思いきや、色々不具合が。修正しないといけないなあ。
NP_WordCountJP [Nucleus]
2007年1月10日
<%WordCountJP%> 記事の文字数を表示(本文と続きをあわせたもの)
<%WordCountJP(title)%> 記事のタイトルの文字数を表示
<%WordCountJP(body)%> 記事の本文の文字数を表示
<%WordCountJP(more)%> 記事の続きの部分の文字数を表示
<?php
class NP_WordCountJP extends NucleusPlugin {
function getName() { return 'NP_WordCountJP'; }
function getMinNucleusVersion() { return 220; }
function getAuthor() { return 'Katsumi'; }
function getVersion() { return '0.1'; }
function getURL() {return 'http://hp.vector.co.jp/authors/VA016157/';}
function getDescription() { return $this->getName().' plugin'; }
function supportsFeature($what) { return (int)($what=='SqlTablePrefix'); }
function doTemplateVar(&$item,$type='') {
switch(strtolower($type)){
case 'title': return $this->showlen($item->title);
case 'body': return $this->showlen($item->body);
case 'more': return $this->showlen($item->more);
default: return $this->showlen($item->body.$item->body);
}
}
function showlen($text){
mb_language('ja');
mb_internal_encoding(_CHARSET);
echo mb_strlen($text);
}
}
?>NP_FormTicket [Nucleus]
2007年1月4日
NP_JSEncodeと組み合わせれば、HTMLを調査せずに決め打ちで投稿してくるスパムに対処できる。
また、mixiの『はまちちゃん』トラップのような、CSRF攻撃によるコメント投稿を防ぐことが出来るはず。
<?php
class NP_FormTicket extends NucleusPlugin {
function getName() { return 'NP_FormTicket'; }
function getMinNucleusVersion() { return 320; }
function getAuthor() { return 'Katsumi'; }
function getVersion() { return '0.1'; }
function getURL() {return 'http://hp.vector.co.jp/authors/VA016157/';}
function getDescription() { return $this->getName().' plugin'; }
function supportsFeature($what) { return (int)($what=='SqlTablePrefix'); }
function getEventList() { return array('FormExtra','ValidateForm'); }
function event_FormExtra(){
global $manager,$member;
$manager->addTicketHidden();
}
function event_ValidateForm(){
global $manager,$member;
if ($manager->checkTicket()) return;
exit('<html><body>'._ERROR_BADTICKET.'</body></html>');
}
}
?>NP_ProtectByMD5でスパムを軽くあしらう [Nucleus]
2006年12月29日
結果としてはすべてブロックしたので、スパム業者は勝利を収めることが出来なかった。しかし、攻撃の間ずっとサーバのリソースを無駄に使い続けられたと考えると100%こちらの勝利とも言いがたい。こういったケースでのリソースの消費について考えてみた。
NP_ProtectByAjax [Nucleus]
2006年12月26日
使用方法はNP_JSEncodeとほとんど同じであるが、プラグイン編集オプションからキャッシュデータ(スパムロボットに対して隠蔽しているHTMLを保持する)を消去する機能が追加されている。
私のブログは人気があまり無いおかげで、NP_JSEncode と NP_ProtectByMD5 でスパムコメントを完全にブロックできている。が、将来これらの方法でブロックできなくなるケースに対処するため、作ってみた。もともとは、NP_JSEncodeの次期バージョンに組み込む予定にしていたが、ちょっと思うところあって別プラグインとして開発。
(ここからダウンロードできます。)
コメントスパムの連続攻撃 [Nucleus]
2006年12月18日