2005-04-29 (金)
■ zsh のキーバインド
coLinux 上の Gentoo で zsh を使っているけど、DELETEキー、HOMEキー、ENDキーが上手く動かない状態だった。 bash だと期待した動作(Windowsと同じ)をするんだけど。
zsh でのこれらの設定は bindkey を使うらしい(bash の場合は bind)。 海外のページを参考にしつつ .zshrc に以下を追記した。
bindkey -e bindkey "^?" backward-delete-char bindkey "^H" backward-delete-char bindkey "^[[3~" delete-char bindkey "^[[1~" beginning-of-line bindkey "^[[4~" end-of-line
- -e は Emacs 風のキーバインドにする命令(CTRL+A, CTRL+Eで行頭・行末に移動)。
- ^? と ^H はバックスペース。端末によって設定が違う?
- それ以降の行は、DEL、HOME、ENDキーへの割り当て。
xtermで使う場合はまた設定が異なるようだけど、使わないので深追いしないことにした。 で、これらの設定を忘れないようにGentoo Linuxメモに残す。
余談
こんな使い方がフローとストックなのかな? blog のまとめとしての Wikiで書いたように、面倒でなかなか両方は更新しないんだけど、こういう設定ファイルを残すのには便利かな。
■ CSRFの防ぎ方
高木浩光@自宅の日記 - クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法より。
データ変更などの重要な処理の場合、form の hidden フィールドに Cookie の セッション ID を埋め込んでおくという対策。 確かに、セッション ID は他人に知られないように作られている(はず)なので、別にワンタイムトークンを生成する必要はないんだね。
さて、Basic認証でやっている tDiary はどうするべきか。 (tDiary の場合はユーザごとに編集画面の URL が異なるので、潜在的な危険性は mixi などの集中サービス型よりも低そうだけど)
追記
フォームのパラメータとして cookie の値をやりとりするのはいやな気がするのは、Cookieが格納されるHTTPヘッダはユーザに直接見えなくて、フォームのパラメータが格納されるHTTPボディは見えるからじゃないかと推測。 どっちも同じ通信路なのにね。
■ coLinux をサービス化する
いちいちコマンドラインで起動するのは面倒なので。
C:\Program Files\coLinux>colinux-daemon.exe -c "c:\Program Files\coLinux\colinux.xml" --install-service Cooperative Linux Daemon, 0.6.2 Compiled on Sat Feb 5 10:19:28 2005 daemon: installing service 'Cooperative Linux' daemon: service command line: "C:\Program Files\coLinux\colinux-daemon.exe" --run-service "Cooperative Linux" -d -c "c:\Program Files\coLinux\colinux.xml" daemon: setting restart options daemon: service installed.