wizdのソースを見てたら daemon_init()って関数で標準入出力と標準エラーを閉じてたんだけど、この本をパラパラめくってたら「17.4 デーモンになる」なんてページがあって、そうする理由が書かれてた。早速役に立つところを見せてくれて期待が高まる。
ちょっと前に(といってももう去年の 7月だったが) tDiaryが CSRF(Cross-Site Request Forgeries)脆弱性を理由にアップデートされたんだけど、いまいちその脆弱性の具体的なイメージが掴めなかった。
ちょっと検索すれば解ることなんだけど、その検索をサボってた自分はこの本を読んで初めて原理が解った。
(詳しいことは検索したら解りやすいサイトがいくつもあるので書かないけど) tDiaryで日記の更新の時に使われてる Basic認証は、特定のページを表示するときにパスワードを要求してユーザーを認証するけど、その認証は特定のページと関連付けられているわけじゃないので、認証済みユーザーから送信を受け取ったときに Refererがその特定のページであるかチェックするとか、その特定のページに第三者の知らない情報(キー)を埋め込んでおいて一緒に送信するようにしておく(キーが無ければ偽のフォームから送信されたと判断する)とかしないといけないらしい。
有名な XSSと SQLインジェクションぐらいは聞いたことがあるけど、他にも色々網羅して本にまとめてくれると使いやすくて良いね。(ディスプレイは見やすさ、姿勢・場所の選ばなさ、飛ばし読み・拾い読みのしやすさでは紙に勝てないから)
<a href="hoge.avi" tvid=1>hoge.avi</a>というタグがあれば、LinkPlayerはリモコンの(1)ボタンが押されたときにこのリンクをクリックしたのと同じ動作をする。(tvidとは標準的な HTMLでいうところの accesskey属性みたいなもの)
フォルダの中で再生ボタンを押したときに全ファイルの再生が始まるのはサーバーが返す HTMLに <a href="/video/hoge/playall_playlist" tvid="play"></a>みたいなタグがあるから。(再生ボタンを押したときの動作はサーバー次第ってこと)
AVeL Link Serverの出力する HTMLを見たところ tvidの種類は以下の通り
AVeL Link Serverが連続再生とシャッフル再生の両方に tvid="play"を割り振ってるのはどういうこと? 再生ボタンを押しても (HTMLソースで後に出現する)シャッフル再生の方は始まらないよ?