Personal tools

コメントスパムの簡易な(?)防止法

ざっくりと。

ということで, 一度でもPreviewしないと投稿できない ようにしてみました。

comment_formの「POSTボタン」を以下のようにdtml-ifで囲んでみた。いやー,Zopeは簡単だ。。。

<dtml-if "REQUEST.form.has_key('previewComment')">
<input type="submit" name="addComment:method" value=" POST " />
</dtml-if>

ってこれじゃ直接コメント投稿用のURLにPOSTされておんなじじゃんか。いかにも頭悪そうだ(苦笑)。。。

自分の浅はかさを深く深く反省して,以下のようにすればOKかな?

1) SecurityでAnonymousのコメント追加をブロック

2) DTML Methodを作って,コメント追加時のPOST先として設定,コメントを追加できる権限を持ったユーザを作り,Proxyを設定

3) Preview時にcookieとかsessionにキーを設定

<dtml-if "REQUEST.form.has_key('previewComment')">
<dtml-call "RESPONSE.setCookie('postkey',
                  'Put some unique string here.',
                  expires='Wed, 19 Feb 2020 14:28:00 GMT')">
<input type="submit" name="addComment_dt:method" value=" POST " />
</dtml-if>

4) POST先のDTML Methodでキーを判定。合っていればコメントとしてポスト,合っていなければPreviewに戻す

んー,大丈夫か。あとで確認して内容をアップデートとします。

Category(s)
COREBlog
The URL to Trackback this entry is:
http://coreblog.org/ats/470/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
コメントスパム避けのための認証文字列です

Captcha Image

Pythonな求人
r = urlopen("http://www.webcore.co.jp/recruit")
About this blog
■Author


atsこと柴田淳です。Atsushiはガイジンにうまく発音して頂けないので,これからはJunというペンネームで行こうと思っていましたがあんまり使ってません。
Webcore株式会社 代表取締役
■TRIVIAL TECHNOLOGIES 2.0
トリビアル・テクノロジー 2.0,「トリテク 2.0」と呼んでください。
Blog(ブログ)サイトです。Plone上で動く,オープンソースのBlog Product - COREBlog2を使っています。
 
最近書いた本,Mook
みんなのPython Webアプリ編
Pythonの基礎から,Webアプリやフレームワークの仕組みまで,つまることなく一気に学べる書籍です。「みんなのPython」と一緒に読んでください:-)。
みんなのPython
Pythonの入門書です。基本的なことから分かりやすく解説するよう勤めました。Pythonをはじめたいと思っている人,JavaやC++,PerlやRubyを学ぼうと思って躓いてしまった人はぜひ読んで下さい。
 

Powered by Plone, the Open Source Content Management System