Plone いぢり
一つ上に移動ぷろ〜ん始めました。
今まで Zope ベースで行っていた我がブログですが、 COREBlog が Plone ベースになったのを機に Plone がナニモノであるのか知る意味もあって 、COREBlog2 を使ってみることにしました。が、しかし、デフォルトのままでは誰でもユーザーを作れてしまってナニナニなので、改造することにしました。
後になってどこを変更したか忘れてしまいそうなので、使用感のテストと備忘録を兼ねて変更内容を記録することにしました。
1.新規ユーザー作成を管理者に限定する。
ZMI にて、Security タブで
Add portal member
の Acquire? に入ってるチェックを外して、Manager、Owner にチェックを入れる。
2.ログインフレームにあった、New User? ボタンを消す。
ZMI にて、portal_skins/custom/portlet_login を編集。
<dd class="portletItem" tal:condition="canRegister">
<a href="" tal:attributes="href python:join.pop()">
<tal:block replace="structure portal_object/user.gif"/>
<span tal:omit-tag="" i18n:translate="box_new_user_option">New user?</span>
</a>
</dd>
この行を削除。
しかし、ここまで来るのに何時間掛かってるんだか(ばき
まだまだやりたいこと沢山あるんですがいつ出来ることやら・・・つーかやらずに終わりそー(ぉぃ
- カテゴリ
- Plone いぢり
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
久々のブログ更新
つーか、これ、自分以外で誰か読んでいるのか?(ばじゅ
まぁ、そんなことはどーでもいいのですが(と、強がる)、ここ数ヶ月、チマタで話題の SNS サイト mixi なんてのを使ってみてるわけですが、ちゃんとプロが作っているだけあって、自由度は窮屈なぐらい無いのですが、その分 html 書くのにタグを手打ち入力したりなんて事も無いし、写真もイヤになるぐらい簡単に「日記」に写真が貼れてしまうのを見て、この辺がすごく当サイトはデキが悪いので少しでも改善しようと、写真の扱いを簡単にするべく ATPhoto とゆー Plone プロダクトがあることを発見したのですが、さらにムービーや音楽も扱える ATMultimedia なるものも有ることが判明したので、ATMultimedia を入れてみることにしました。
ATPhotohttp://plone.org/products/atphoto
http://plone.org/products/plonemultimedia
これは、ドラグ&ドロップで画像ファイルをアップロード出来たり、ヤケに詳細なEXIF が見れたり、iPhoto みたいなスライドショーまで出来てしまうとゆースグレモノ。これ使えば mixi に勝てるかもーなんて思っていたら、どーもドラグ&ドロップアップロードで使っているJUpload がどーも上手く動かない。仕方がないのでJUpload は諦めてZIP形式で固てバッチアップロードも出来るのでそちらを使うことにしました。
JUpload
http://jupload.sourceforge.net/index.html
んで、表示の方はどーでしょーか?
ひとり Flickr
http://isi.kicks-ass.net:8080/isi/304a8a66305730a230eb30e0
- カテゴリ
- Plone いぢり
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://isi.kicks-ass.net/isi/bakilog-2.0/4e453005306e30ed66f465b0/tbping
スパムコメント対策その2
以前、当ブログにスパムコメントわんさか来て困るということで、こんな対策をしてみたんですが、全く効果がありませんでした(泣)。前回の対策で参考にしたサイト(COREBlog2スパム対策(まとめ) - 清水川Web)ではバズワードによるリジェクトということをされているようですが、バズワードの場合、バスワードリストのメンテナンスをしなければならないのと、相手もしっかり(??)バズワード対策されていて、本文が”Hello”だったりと一般的な単語ばかりであまりアテにならない感じなので却下。
この話を友人と思われる方に話したところ、「サーバー上のコメント欄は閉じて、コメントはTwitterやdel.ico.usにさせるってのはどお?」というアイデアを貰ったのですが、このサイトだけはいただいたコメントも含めてなるべく外部のサービスに依存しない形で残したい。ということで、これも却下。でも、これはこれで面白いアイデアなので、コメントはTwitterに書いてもらってこっちからボットで書かれたコメントを回収して回るシステムとかつくればいいのかな?なんて思ったりしなかったり・・・
ということで、なんとかサーバー上で対策したいということで、Plone対応のCaptchaシステムもあるということでCaptchaを試してみることにした。
Plone で使えるCaptchaプロダクト(ZOPE/Plone上でのアドオンと言うかアプリというかそんなヤツ)は二つありまして、一つは Plone Captcha というもので、画像の生成を外部のサーバー( www.captchas.net )で行うもので、サーバーの負荷が少ない(たぶん破られる心配も少ない?)というメリットはあるものの、なるべく外部のサービスをせず自己完結型とするというコンセプトなので、今回はパス。そして、もうひとつは自己完結型の Plone Captchas というプロダクトで名前が似すぎて紛らわしいことこの上ないんですが、外部サーバーを使うものに比べサーバー負荷は高くなってしまうのですが、こちらを使うことに決定。
ここからが本題(ぉぃ
前フリが長くなってしまいましたが、ここからが本題。まず Plone Captchas のサイトからプロダクトをダウンロード。このブログが動いている Plone は 2.1.2 で、最新のバージョンでは対応していないので、少し古い 1.3.1 をダウンロード。インストール方法は普通のPloneプロダクトと同じなので割愛(ぉぃ
インストールが終わり、「サイト設定」をクリックすると「qPloneCaptchas setup」というリンクが現れるので、そいつをクリック。
リンクをクリックすると、qPloneCaptchas の設定ができマス。
そして、設定画面はこんな感じ。
になるハズ...なんだけど、我が家の環境ではPILがインストールされておらず、上のスクリーンショットのオレンジ色のアンダーラインが引かれた部分がグレーアウトしていて選択出来ない状態に。このラジオボタンを選択するとアクセする度にCaptchaを生成するんだけど、それが出来ず予め用意されているデータをしようするだけとなってしまい、しかもランダムな文字列ではなくてフツーの英単語集から選んでいるだけという脆弱さ(泣)。ということで、後からPILを入れてみたんだけど、どーもPILのインストールが上手く行ってないみたいで、ほとんど使えないとゆートホホな状況で、動的生成は諦めて静的生成(?)に戻しました(苦笑)。まー、無いよりはマシかな?と言うか、とりあえずはブログの方に組み込まないと話にならないので、PILは後回し(ぉぃ
ということで、いよいよブログへの組み込むことに。
Captchaグラフィックとキーワード入力ボックスの組み込み
CORE BlogのソースをいじってインストールしたCaptchaをブログに組み込んでみますです。ZMIにて<ブログURI>/portal_skins/COREBlog2/cbcomment_form を編集して、以下のリストに示した行を追加。ブログにCaptcha画像とパスコード入力フォームを組み込みます。
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal"
metal:use-macro="here/main_template/macros/master"
i18n:domain="plone">
<body>
<metal:block fill-slot="top_slot"
tal:define="dummy python:request.set('disable_border',1)" />
<metal:block fill-slot="sub" />
<div metal:fill-slot="main">
-----------------------------------------中略-------------------------------------------------
<textarea name="body"
id="body"
cols="40"
rows="8"
tabindex=""
tal:content="request/body|request/text_override | nothing"
tal:attributes="tabindex tabindex/next"
></textarea>
</div>
<div metal:use-macro="here/captcha_widget/macros/captcha"></div> #←追加
<div class="formControls">
<input type="checkbox"
id="remember_cookie"
name="remember_cookie"
value=""
tabindex=""
tal:attributes="tabindex tabindex/next;
checked python:request.form.has_key('remember_cookie');" />
<label i18n:translate="remember_info"
for="remember_cookie" >Remember your info. on cookie?</label>
<br />
-----------------------------------------中略-------------------------------------------------
</div>
<input type="hidden" name="form.submitted" value="1" />
</fieldset>
</form>
</metal:commentform_macro>
</div>
</body>
</html>
Captcha認証を有効にする
Captchaを組み込んだだけではただ表示してそれっぽく見えるだけでパスコードがあろうと無かろうと関係無くコメントを書き込める状態なので、CORE Blogのコメント書き込み条件(コメント入力フォームの項目の右側に赤い点がある項目が正しく埋まってないとコメントできない)にCaptcha認証を加えます。
<ブログURI>/portal_skins/COREBlog2/cbentry_comments/manage_formValidatorsForm を開くと下のスクリーンショットのようになるので、”Add New Form / Script Validator Override”のところでCaptcha認証(図中①、”captcha_validator”とする)を設定し、”Add”ボタン(図中②)をクリックして登録して完了。
そんなワケで、Captcha文字列が固定(30種類の文字列からランダムに出力)でしかも普通の英単語とお粗末にも程があるって感じだけど、一応完成ということにします。PILさえ何とかすれば文字列の問題もナントカなるかな?つか、Python 2.4 /usr/local に入れてしまった方が早いかもなー...あーメンドクセ(ぉぃ
ちなみに単純な英単語なんてイヤーン、もっとCaptchaらしくヘンテコな文字列にしたいという方はコチラを参考に弄るとヨサゲです。
Plone Captcha 1.0.2 と Plone Captchas 1.0 — takanory.net
http://takanory.net/takalog/655
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://isi.kicks-ass.net/isi/bakilog-2.0/anti-spam-comments-captcha/tbping
スパムコメント対策その2のその後
PILがインストールされておらず「スパムコメント対策その2」で上手く行かなかった。Captchaの自動生成ですが、その後PILをインストールしたにも関わらず全く使えず、原因を追求するのが面倒になって放置していたのですが、やはり普通の英単語を使ったなんちゃってCaptchaではすぐに破られてしまうようで、しばらくブログのエントリーもかかずに完全放置している間にスパムの温床になっていたので、重い腰を上げてちゃんとパスワードらしい文字を生成するように頑張ることにしました…
まずは、qPloneCaptchas の設定で、Captchaの出力をStaticからDynamic(「スパムコメント対策その2」を参照)に切り替えPloneのエラーコンソールを出してみると、やはりPILライブラリの _imaging がねぇぞゴルァと言ってる。が、PILをインストールしたディレクトリに降りるとそこにはちゃんと _imaging.so があったりして意味不明(ぉぃ
ぢゃあ、うちの Plone/Zope ちゃんはもしかして別のバージョンのPythonで動いてる?(我が家では Plone/Zope 用に /usr/local/Plone-2.1 以下にPyhon2.4.6をインストールしてソイツで Plone/Zope を動かしてる)。ということで、試しにコンソールで、Pythonを単体で起動して import _imaging してみることに・・・
すると、今度はlibjpegがねぇぞゴルァと言われインポートを拒否られてしまった…libjpegも抜かりなくインストールしたっつーのにぃー(涙)。
つーことで、どーもライブラリはインストールされたけど、PILインストール時に libjpeg がリンクされてなかったみたい。ということで、PILの再インストール。OSで持ってるPython2.4が起動してしまわないように、Plone/Zope 用のPythonをフルパスで指定してインストロールしたら上手く行ったみたい。
あとは、/< Zope インスタンスのあるディレクトリ>/Products/qPloneCaptchas/data/basic_english.py を編集してCaptchaらしくランダムな文字列でパスワードを生成するように仕込んでおしまい。
from random import choice import string chars = string.letters + string.digits count = 256 words = '' for i in range(count): words = words + "".join([choice(chars) for i in range(5)]) + '\n'
設定が終わったら、 Zope を再起動して変更の結果を反映させて完了。
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://isi.kicks-ass.net/isi/bakilog-2.0/anti-spam-comments-captcha2/tbping