タグ

2009年8月13日のブックマーク (6件)

  • UTF-8の動的コンテンツをShift_JISと誤認させることで成立するXSS - masa141421356’s blog

    文字コード指定の無いUTF-8のコンテンツでは、ブラウザ側の文字コード自動認識でシフトJISと誤認させることで、HTMLの特殊文字を一切使わずにXSSが成立する場合があります。 原理 UTF-8 では1文字が3バイトマッピングされる場合があります。 そこで、これをShift_JISと誤認させると、3バイト目と次の1バイトをセットで1文字と誤認させることができます。これにより、HTMLの区切り文字の効力を失わせてスクリプトを注入することが可能です。 例:"あ" = E3 81 82 なので、シフトJISと誤認すると "縺" (E381) +余分な先行バイトの 0x82 具体例 例えば、動的なコンテンツ(UTF-8で応答を生成) <html> <head> <title>abcde</title> </head> <body> <form> <input type=text value="ユー

    UTF-8の動的コンテンツをShift_JISと誤認させることで成立するXSS - masa141421356’s blog
  • ここ数日のDBIx::Skinny - Lism.in * blog - nekoya (id:studio-m)

    Wassrでつぶやいてたら取り込まれたり、githubのcollaboratorに入れてもらったのでpushしたりしたことのまとめ。 ■$row->setの引数がhashからhashrefに変わった before $row->set($key => $val); 元々は単一のkeyでsetするのが基、ということでhashだったらしいです。とは言え、複数でも問題なく使えてました。で、updateはhashrefを渡すので、それと統一された形です。 after $row->set({ $key => $val }); CPANに上がってるのとインタフェースが変わってるので、要注意です。 ■order_byの拡張 before MyApp::DB->search($table, $where, { order_by => [ { id => 'desc' } ] }); hashrefをn個入

    ここ数日のDBIx::Skinny - Lism.in * blog - nekoya (id:studio-m)
  • DBIx::SkinnyでFormValidator::Simple::Plugin::DBIC::Uniqueを使う - Lism.in * blog - nekoya (id:studio-m)

    Skinny使い始めて、FV::SimpleでDBIC::Uniqueなバリデーションは自分でPlugin書かないとダメかと思ったけど、自分の使い方だとそのままいけたのでメモっとく。 FV::Simple::Plugin::DBIC::Uniqueは指定のクラスがDBIC互換のcountメソッドを持っていれば問題なく動くので、SkinnyをラップしたModelのクラスにcount()を実装してやればOK。 package MyApp::User; use FormValidator::Simple qw/DBIC::Unique/; sub validate { my ($self, $args) = @_; my $result = FormValidator::Simple->check($args => [ id => [ qw/UINT/ ], name => [ qw/NOT_B

    DBIx::SkinnyでFormValidator::Simple::Plugin::DBIC::Uniqueを使う - Lism.in * blog - nekoya (id:studio-m)
  • かんたんCMS 「Tokyo Promenade」を使おう - mixi engineer blog

    先日、待望の長女が誕生したmikioです。あまりにかわいいから育児ブログでもつけようという魂胆ではありませんが、今回は自作のCMSであるTokyo Promenadeについて語ります。 Tokyo Promenadeとは 以前の記事で、Tokyo Cabinet(TC)を使ったCMSを作ることを予告しましたが、Tokyo Promenade(TP)がまさにそれです。TCのテーブルデータベースを使って記事を管理する軽量なコンテンツ管理システム(CMS)の実装です。例によってC言語のみで記述され、libc以外の全実装が "made by mikio" な製品です。 読み方は「東京プロムナード」です。プロムナードとは散歩道のことですが、東京メトロの広告に出てくる宮崎あおい的なキャラが写真付きブログを書いちゃうようなユースケースをイメージして名づけました。まあ実装はそんな洒落た感じとはほど遠いです

    かんたんCMS 「Tokyo Promenade」を使おう - mixi engineer blog
    nekokak
    nekokak 2009/08/13
  • Test::Deep0.103以降を入れてると、Test::Declareを使ったmake testが通らない - Lism.in * blog - nekoya (id:studio-m)

    僕の手元でTest::DeclareとかDBIx::Skinnyをmake testすると、 Subroutine Test::Declare::isa redefined at /opt/local/lib/perl5/5.8.9/Exporter.pm line 67. at /Users/ryo/perl5/lib/perl5/Test/Deep.pm line 30とか怒られます。proveで直接テスト走らせたら問題無いので、そのままmake installしてました。 てなことを両モジュールの作者であるid:nekokakさんに聞いてみたら、向こうでは問題なく動いてるということだったのでちょっと調べてみました。 エラーメッセージからisaのEXPORTで問題が発生してるのは分かるとして、これが出る環境とそうでない環境の違いはどこなんだろう。 と思ったら、Test::Deepは0.

    Test::Deep0.103以降を入れてると、Test::Declareを使ったmake testが通らない - Lism.in * blog - nekoya (id:studio-m)
    nekokak
    nekokak 2009/08/13
  • InnoDB Plugin 1.0.4 - InnoDB史上極めて重要なリリース

    時間の今日、InnoDB Pluginの新バージョン1.0.4がリリースされました。このバージョンでは、「バイナリログを有効にするとグループコミットが効かなくなる問題」が修正されています。ほとんどの環境にとって極めて効果の高い修正です。ほかにもI/Oスレッドの多重化(同様のものがMySQL5.4にも搭載)など効果的な修正が行なわれています。 InnoDB PluginはまだGA(安定版)ではないので、品質面では標準搭載されているInnoDBよりも落ちます。ただしMySQL Enterpriseサブスクリプションを買っている方であれば追加費用無しでInnoDB Pluginのサポートを受けることができるので、お気軽に試してみて頂ければと思います。 グループコミット問題修復の効果のほどは、一目瞭然なので図を見た方が分かりやすいでしょう。下図は、mysqlslapで、複数のコネクションから並

    InnoDB Plugin 1.0.4 - InnoDB史上極めて重要なリリース