last(), number position(), number count(node-set), number id(obj), number local-name(node-set = self::node()), string namespace-uri(node-set = self::node()), string name(node-set = self::node()), string string(object = self::node()), string concat(string, string, string*), string starts-with(string, string), boolean contains(string, string), boolean substring-before(string, string), string substri
先日公開しました はてなブックマークを拡張するW!ボタンですが、想像していたよりも反響があり驚きました。ありがとうございました。 さて、今回はそのW!ボタンの開発に利用したテクニックの一部と参考文献を紹介します。 W!ボタンの開発には以下が役に立ちました。 JavaScript Shell return文で強制的に制御を返すテクニック The data: URI kitchen Live HTTP Headers Greasemonkey Hacks JavaScript Shell JavaScript Shellを利用することで 正規表現 DOM XPath などを手軽に試行錯誤できる環境が得られます。この中でもXPathの作成をJavaScript Shellで行うのが特に有効だと感じました。というのも、JavaScript Shellはシェルで入力されたJavaScriptのコード
今年は1回しか花粉症で薬飲んでません。昨日、ニュースでスギ花粉のピークは終わったって言ってました。住んでる場所によるのかな? 根が深い。(ぇ 文字コード(SJIS)とHTMLエンコードとCross-Site Scriptingの微妙な関係 もしかしたら周知の事実で私だけ遅れてるのかもしれないけど、メモってことで。IE限定。 PHPでHTMLエンコードされてるサンプルコードを書いてみた。 サンプルコード(SJISで保存してください) <form> text: <input type='text' name='text' value="<?= htmlspecialchars($_GET{'text'}) ?>"><br> text2: <input type='text' name='text2' value="<?= htmlspecialchars($_GET{'text2'}) ?>"
もっといっぱい動くっぽかった。まとまったら後で書くですよ。っていうか、対策としてそういう条件を強いるのはなんだかなぁな位幅が広いかも?*1 ダメだった……。残念。次はEUC調べよっと。 EUCの場合 脆弱なコード例(もちろん文字コードはEUCで) <form> text: <input type='text' name='text' value="<?= htmlspecialchars($_GET{'text'}) ?>"><br> text2: <input type='text' name='text2' value="<?= htmlspecialchars($_GET{'text2'}) ?>"><br> <input type=submit value="送信"> </form>攻撃例*2 http://localhost/break_quote_euc.php?text=te
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く