Home > Ethnaで手軽にCSRF対策する
Ethnaで手軽にCSRF対策する
- 2006-12-13(2006-12-13 17:19:15)
冗長な解説はしない。まず、プロジェクト毎のActionForm(ActionClassではない)の中で
function _validatePlus()
{
if ($this->use_csrf_plugin == true) {
if (!Ethna_Util::isCsrfSafe()) {
$this->ae->add(null, '外部からのリクエストは受け付けていません');
}
}
}
と書いておいて、さらに、プロジェクト毎のViewClassで、
function getFormBlock($content, $params)
{
// method
if (isset($params['method']) === false) {
$params['method'] = 'post';
}
if ($this->af->use_csrf_plugin == true) {
Ethna_Util::setCsrfID();
$csrf = smarty_function_csrfid(array(), &$renderer);
$content .= $csrf;
}
return $this->_getFormInput_Html('form', $params, $content, false);
}
としておくと、ActionFormで$use_csrf_plugin = true;した時だけ自動的にcsrf用のフォームが追加され、validateした時に一緒に検証されるようになる。はず。
Trackback
TrackBackPingURL:
- Djangoで手軽にCSRF対策する - スパムとか - 2006-12-14 13:20:35
武蔵流プログラマへの道で、「Ethnaで手軽にCSRF対策する」というエントリが上がっていたので、「Djangoで手軽にCSRF対策する」というまねっ子エントリ。
#LLRingではお世話になりました
Referer
- 65hit: http://project-p.jp/halt/anubis/blog_show/645
- 34hit: http://ime.nu/project-p.jp/halt/anubis/blog_show/645
- 22hit: http://www.everes.net/2006/dec/14/django-csrf-settings/
- 17hit: http://www.google.co.jp/search?q=ethna+csrf&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 13hit: http://www.rhaco.org/
- 12hit: http://project-p.jp/halt/
- 11hit: http://www.everes.net/
- 10hit: http://reader.livedoor.com/reader/
- 10hit: http://www.google.co.jp/search?q=ethna+csrf&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 9hit: http://b.hatena.ne.jp/entry/3486387
- はてブ
-
- SimpleTest - CakeWiki
- NSIS/Reference - CakeWiki
- LVMで構築されたディスクをUSBでつないでマウントする - /halt/Snapshot
- ruby/Tips/実行しているファイルのパスを取得 - CakeWiki
- ReactOS - CakeWiki
- プラグイン - CakeWiki
- OpenOffice Calcでリアルタイムスプレッドシートのデータを読む - /halt/Snapshot
- php/Tips/ファイルの結合 - CakeWiki
- CENTURYのplus oneモニタがVGAで便利 - /halt/Snapshot
- php/Ethna/ActionForm - CakeWiki
- vim - CakeWiki
- UbuntuとDell 2001FPと945g(i810) - /halt/Snapshot
- SQLiteManager - CakeWiki
- Munin - CakeWiki
- パスタはネットで大量買いが安い - /halt/Snapshot

