zt日記

書いているのは Kazuhiro NISHIYAMA a.k.a. ZnZです。
2001|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|
2012|04|05|06|09|

この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。

xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法インストールメモXREA + tDiary + Namazuをどうぞ。


2006年01月01日(Sun) 謹賀新年

[NDS] 年末年始につながらず

ノートPCだけならPHSでなんとかなるけど、NDSは無線LANがないとつながらないので、WHR-G54Sを買っておいてから帰省したが、年末年始の年越しイベント前後は混雑していたらしくNDSからニンテンドーWi-Fiコネクションに全くつながらなかった。Webの方は「正常に稼働しています」と出ていたので、サーバ自体は正常でネットワークが耐え切れていなかった?

[trac] trac webadmin

sargeでtracを0.9にしてwebadminのeggファイルを置いても使えないので、調べてみると、setuptoolsが古いのが原因だったので、unstableから0.6a8-0.1をbackportして使った。

ticketのcomponentとversionの編集だけ欲しかったので、以下の設定にした。webadmin.web_ui.adminmoduleがdisabledだと全く編集できないみたい。

[components]
webadmin.web_ui.adminmodule = enabled
webadmin.ticket.componentadminpage = enabled
webadmin.ticket.versionadminpage = enabled
本日のツッコミ(全1件) [ツッコミを入れる]

不比等 [賀正♪ 今年もwakamu,a,b,eとどんどん増殖していくんでしょうか。(^^;(謎) 今年もよろしくデス。]


2006年01月02日(Mon)

[web] リセット: 使うべからず(2000年4月16日)

OKボタンの位置 - WebStudioの話をみて、思い出したのでメモ。

Alertboxのこの話を見るまではなんとなくリセットボタンを付けていたと思う。最近はtype属性がresetのinput要素を見ていないような気がする。


2006年01月07日(Sat)

[security] Re: サニタイズ言うなキャンペーンがわかりにくい理由

このような、いわゆるパス名パラメータを「サニタイズ」しなくて済めば気が楽なのですが、ファイルを開くところで一律 ../ を排除しようとすると、今度は内部の設定ファイルに書かれたパスをうまく処理できないという問題が出てきます。

  • 設定ファイルに書かれたものや、管理者の入力したものに関しては任意のパスの指定を許す
  • 外部からの入力では任意のパスの指定を許さない

という必要があるので、状況に応じて危険な文字を削除したり、逆にそのまま使ったりしなければなりません。つまりは意識的に「サニタイズ」しなければならないということだと思うのですが……。これを「サニタイズせよ」と言わなくて済むような解決策ってあるのでしょうか。

危険な文字を削除っていう手法は危険なので使わないようにしているのですが、本当にその方法が必要なのでしょうか?

安全な文字だけを通すようにするという手法ではだめなのでしょうか?

たとえば、データファイルのファイル名の一部をCGIのパラメータとして受け取るようになっているPerlスクリプトなら/^[a-z]+$/のような正規表現(Rubyなら\A[a-z]+\z/)で期待している文字しか入っていないことを確認して(Perlの場合はuntaintもこれで出来る)、違っていたらエラーにするというのが「セキュリティ対策以前に元来本質的に必要な処理」だと思います。

[ruby][security] Re: ASPとかJSPとかPHPとかERBとか、逆だったらよかったのに

自動quoteつきERBの実験を見てみたけど、そんなにコピーしまくらなくても、下のような感じで文字列を書き換えてしまえば(ほとんどの場合は)良さそうな気がします。

文脈を考えずにgsubしているので、コード中の文字列部分とかに「"<%="」が出てくる場合は「"<""%="」に分割するなどの対処が必要になってしまいますが、そういうレアケースに対応するよりもシンプルな方が良いだろうと言うことで。

もう一つ、エスケープしない場合のマークとして、副作用がない式として「:asis;」を使っているので、$VERBOSEがtrueの時に「warning: unused literal ignored」という警告が出てしまいます。警告が嫌なら何もしない関数を作ってその関数の呼び出しをエスケープしないマークにするという手がありそうです。

require 'erb'
class EscapeERB < ERB
  def initialize(str, *rest)
    super(str.gsub(/<%=(?!:asis;)/, '<%=ERB::Util.h'), *rest)
  end
end
if __FILE__ == $0
  $test_var = '<b>test</b>'
  p EscapeERB.new('<%= $test_var %>').result #=> "&lt;b&gt;test&lt;/b&gt;"
  p EscapeERB.new('<%=:asis; $test_var %>').result #=> "<b>test</b>"
end

2006年01月08日(Sun)

[web][firefox] nofollow

「rel="nofollow"」を区別出来るようにするためにこんなものをユーザスタイルシート(userContent.css)に入れてみた。after疑似要素に直接画像を入れる方法がわからなかったので、全角空白をcontentにいれて16x16の画像を背景にしている。

とりあえず区別出来ればいいと思っていつもの適当な文字だけ画像をWindows上のIconEditor LittleCanvasというソフトで白黒のみで作って、Imagemagickでconvert nofollow.ico nofollow.xbmで白黒二値だけの画像にして(直接pngにするとalphaの情報なども残って少しサイズが大きいため)、convert nofollow.xbm nofollow.xpmでxpmにして色をyellowと#A8A8A8にエディタで変更して、convert nofollow.xpm nofollow.pngでpng形式に変換して、ruby -e 'puts [File.open(ARGV.shift,"rb"){|f|f.read}].pack("m")' nofollow.pngでエンコードしてnofollow.pngという画像になった。

a[rel="nofollow"]:after {
content: " ";
background-repeat: no-repeat;
background-position: left top;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAIAAADAAbR1AAAACXBIWXMAAABIAAAASABGyWs+AAAAiklEQVQ4y7WUQQ7AIAgElfhHfCK8kh640FgIhLoHk5aVQbCdIiJjMDMTjVCIiHtnnFZgN+e3lQFa1w3Msg8Wk2+aF9UM4AXyp1G/XT9a1Md4gjjcx6yMKcbE+ElEVLnXVU390Lyq+4D1b7pT0E+RAuigMmOs3qjXr6LfqLMU8EyZSj2nfXNlBrYTD0y9fjBXspzTAAAAAElFTkSuQmCC");
}

2006年01月11日(Wed)

[linux] stty

Ctrl+Sは「stop "^-"」(""でくくっているのはzshのglobの設定によっては^に特別な意味があるから。)で止まらないようにしてるから滅多に止まらないなあ。

そういう設定をしていない端末を使っているときにbashでCtrl+Rで履歴をたどってるときに行き過ぎて戻ろうと思ってCtrl+Sを押してしまって止まるという経験はあるけど。


2006年01月17日(Tue)

[mail] @nifty ID宛メール

今更ながら、@nifty ID宛メールを拒否する設定に変更した。もう使っていないも同然で、spamしかこないので影響はないはず。


2006年01月20日(Fri)

[firefox] FLASH が動かない

WindowsのFirefoxを1.5にあげてからFLASHが表示されなくなったと思って調べてみたら、FLASH が動かないに書いてあるAdblockの「ツール>拡張機能>Adblock>設定>Adblock Options>Obj-tabsのチェックを外す>Done」で解決した。


2006年01月23日(Mon)

[firefox] Adblock

最近Ruby hotlinksで「ただのにっき」の画像が出ないと思ったら、「http://sho.tdiary.net/images/banner.png」というURLの「banner」がAdblockに引っかかっていたからだった。

本日のツッコミ(全1件) [ツッコミを入れる]

babie [見晴らしいい所だねー。]


2006年01月24日(Tue)

[security][net] ウェブサイトの信頼性を高める新たな試み - CNET Japan

Firefoxがロケーションバーを黄色くするようになったころに、次の段階としてどこまで審査されているかどうかが区別できるようにならないといけないと思っていたけど、審査レベルをどうやって証明書の中に埋め込むのかが決まれば、そのうち実現されそう。

[linux] sudo vimで「E138: Can't write viminfo file $HOME/.viminfo!」となったらsudo -H vimで解決

DSA-946 の対処が入ってからsudoでvimを使うとvimを終了する時に「E138: Can't write viminfo file $HOME/.viminfo!」と出るようになってしまった。

今までのsudoのセキュリティ対応は、危険と思われる環境変数を削除するという、危険が全て予測可能というまずい仮定に基づいていたので、今回の安全な環境変数のみ(デフォルトではLC_*, LANG, LANGUAGE and TERM)を通すようにしたというのは望ましいと思う。

元のvimの話に戻ると、きっと環境変数HOMEが設定されなくなって、$HOME/.viminfoというパスが存在しなくなったからだと思い、sudo envで確認して、エラーが出ない環境と見比べて、sudo -Hで解決するということがわかった。

本日のツッコミ(全1件) [ツッコミを入れる]

zunda [現在の証明書でもSubject(証明される側)のLとST(たぶん住所ですよね)の有無を調べれば、審査レベルがある程度..]


2006年01月25日(Wed)

[Wanderlust] グローバルフラグ

サマリモードで「F」を押す(wl-summary-set-flags)とミニバッファで「Flags:」ときかれて、好きな名前のフラグを付けることが出来る。「,」区切りで複数付けることも出来る。

試しに「test」と入れてみると、「Test」というグローバルフラグが出来て、courier-imap側に保存された。

付けたグローバルフラグを消すには、もう一度「F」を押して編集したり、「C-u F」で一度に全部消したり出来る。

「'flag/」というアクセスフォルダを作っておけば、グローバルフラグ一覧がわかる。((「F」で出てくる「Flags:」では最初が大文字になっているが、「'flags/」の下のフォルダ名としては小文字になっていた。)

$」で付けたり外したり出来る「Important」もグローバルフラグの一種なので、「'flag/」に出てきたり、「F」で「Important」と出てきたりする。

「Important」フラグだけは特殊で、他のMUAでもフラグやマークとして見える。

もう使わなくなったグローバルフラグは「'flag/」の下のフラグの名前のフォルダ(たとえば「Test」というフラグなら「'flag/test」)を「m d」で消せば良い。(28: global-flag の削除?)

「m d」で消してもWanderlustから扱わなくなるというだけで、IMAPサーバ側にフラグが保存されていれば、それはそのまま残る。

グローバルフラグを設定したWanderlust以外から参照したい時も最初に「F」で適当なメッセージにフラグを付けて、フラグをWanderlustが認識するようにしないとサーバ側にあってもフラグが見えない。

(参考: 自分の好きなフラグをつけて検索しやすくしたい、infoの「5. サマリモード」の「5.1 使用方法(TIPS)」の「 5.1.3 永続的マーク」、[Wanderlust] global flags)


2006年01月29日(Sun)

[misc] 左右が反転しない鏡〈リバーサルミラー〉

それは左右が反転している鏡なのでは?

普通の鏡は、(自分から見て)右にあるものはちゃんと(自分から見て)右にうつっているし、(自分から見て)左にあるものはちゃんと(自分から見て)左にうつっているので、逆とは感じないのに、逆と教えられて混乱していた事を思い出しました。

参考: 鏡は左右が逆に映るのになぜ上下はそのままなのですか

本日のツッコミ(全1件) [ツッコミを入れる]

dan5 [「逆と感じない」というのにちょっと驚きました]


2006年01月30日(Mon)

[UI] 改悪されているPiTaPa改札

自分で撮った写真がないので、実際の見た目は他のサイトを参照してもらうしかないのですが(「IC対応改収札機に変化」のところにPiTaPaの改札の写真ありSuicaの改札の写真あり)、見比べてみてSuicaの改札に比べてPiTaPaの改札のどこが悪いのかわかるでしょうか?

[UI] Suicaの改札と比べるてどこが悪いのか?

答えはランプの位置で、PiTaPaの改札のようにタッチすべき場所とは別の場所にランプが付いているので、間違えてその場所にタッチしてしまうという勘違いをしてしまうことが起きるのがSuicaの改札に比べると悪くなっている。

Suicaの改札の開発の時にそのあたりは充分調査されたはずなのに、その成果を使えないような理由がある?


2006年01月31日(Tue)

[firefox] Live HTTP Headersが "ページの情報を表示" の中の "Headers" タブで表示できない件が解決

にっき経由。たまにしか使わないということであまり困ってなかったので、ちゃんと調べてなかったけど、手元の環境だけで問題が起きていなかったわけではなかったらしい。


copyright © 2001-2013 ZnZ
Key fingerprint = 6E14 2C9C DBD7 874D 8B3C CAA8 9B58 5538 ED7E 1B73