パーソナルツール
現在の場所: ホーム takalog COREBlog2 でのトラックバックスパム対策(その2)
書いた本
Plone 完全活用ガイド の Chapter 1, 2, 3, 11 を執筆しました。
plone のインストール、使い方から、機能・デザインのカスタマイズ、プロダクトの作り方まで、 plone のすべてがぎゅっと詰まっている書籍になっていると思います。
plone に興味がある人から、すでに使いこなしている方まで、ぜひ読んでみてください。
Plone 完全活用ガイドのサポートページ
« 2012February »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
このBlogについて
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。 zope/plone関係の技術的な内容については http://takanory.net の方にまとめていこうと思います。 コメント・ツッコミはご自由にどうぞ。
twitter facebook linkedin foursquare
カテゴリ
android (16)
av (27)
books (35)
coreblog (49)
ds (22)
ferret (24)
google (34)
icecream (44)
lego (69)
mac (20)
misc (74)
moblog (277)
movie (32)
pc (44)
plone (337)
puzzle (42)
python (56)
server (67)
snowscoot (9)
software (126)
sports (32)
suidou (30)
winds (47)
 
文書操作

COREBlog2 でのトラックバックスパム対策(その2)

作成者 takanori投稿日 2008年09月01日 23時27分 最終変更日時 2008年09月01日 23時27分

COREBlog2 でのトラックバックスパム対策(その1) では、トラックバックスパムに含まれているキーワードを抽出しました。

次に、COREBlog2 のトラックバックを受け付けるスクリプトで、これらのキーワードが含まれているかチェックするようにします。

基本的なコードはかなり以前に書いた COREBlog2 簡易 trackback spam 対策 と同じような形式になります。

portal_skins/COREBlog2/tbping を以下のようにカスタマイズします。

変更前

title = cbtool.convert_charcode(form['title'])
blog_name = cbtool.convert_charcode(form['blog_name'])
excerpt = cbtool.convert_charcode(excerpt)
url = cbtool.convert_charcode(form['url'])

#Try to add trackback
try:
    #Send notify mail if need
    if context.getSend_trackback_notification():
        try:

変更後

title = cbtool.convert_charcode(form['title'])
blog_name = cbtool.convert_charcode(form['blog_name'])
excerpt = cbtool.convert_charcode(excerpt)
url = cbtool.convert_charcode(form['url'])

from re import compile
NON_WORD_REGEX = compile(r"[\W\-]+")

buzz_words = (
    'wellbutrin',
    'tarmadol',
    'acomplia',
    'propecia',
    :
)

#Try to add trackback
try:
    # buzz word check
    s = NON_WORD_REGEX.sub(" ", "%s %s %s %s" % (title, blog_name, url, excerpt)).lower().split()
    for word in s:
        if word in buzz_words:
            raise RuntimeError, 'buzz word error'

    #Send notify mail if need
    if context.getSend_trackback_notification():
        try:

コードの中身は前半で buzz_words にキーワード一覧を定義しておきます。

その後、 buzz word check と書いてあるところで、トラックバックの中に含まれている言葉に buzz_words に含まれている単語がないか調べて、含まれている場合はエラーを返しています。

あ、前回と同様 re モジュールを使っていますので、 PythonScript で標準以外のモジュールを使う で書いてある設定が必要です。

でも、この形式だと新しいキーワードのトラックバックスパムがどどどっと押し寄せると、意味ないんですよねぇ。

# 今日1日で140以上のトラックバックスパムが書き込まれてます...

というわけで次は別な対処方法を行います。

(さらにつづく)

カテゴリ
coreblog coreblog
トラックバック用URL:
http://takanory.net/takalog/967/tbping
コメントを追加

下のフォームに記入してコメントを追加できます。平文テキスト形式。

(必須)
(必須)
(必須)
(Required)
Enter the word

Powered by vine linux, python, zope, plone, coreblog