ブックマーク / hasegawa.hatenablog.com (8)

  • ブラウザ上でMarkdownを安全に展開する - 葉っぱ日記

    不特定のユーザーが入力したMarkdownをブラウザ上でJavaScriptを使ってHTMLに変換するという場面においては、JavaScriptで変換してHTMLを生成するという処理の都合上どうしてもDOM-based XSSの発生を考えないわけにはいかない。かといって、MarkdownをパースしHTMLを生成するという処理すべてをXSSが存在しないように注意しながら自分で書くのも大変だし、markedやmarkdown-jsなどの既存の変換用のJSを持ってきてもそれらがXSSしないかを確認するのは結構大変だったりする。 そういった場合には、Markdownから生成されたHTMLをRickDOMを通すことで、万が一HTML内にJavaScriptが含まれていたとしてもそれらを除外し、許可された要素、許可された属性だけで構築された安全なHTMLに再構築することができる。さらに、そうやって生成

    ブラウザ上でMarkdownを安全に展開する - 葉っぱ日記
  • アセンブラ短歌 - 葉っぱ日記

    世の中には常人には理解できない趣味を持っている人がいまして、組み込みOSを作っている坂井さんもその一人で、最近は「アセンブラ短歌」という新しい遊びを提案しています。アセンブラ短歌というのは坂井さんによると、“「アセンブラ短歌」は五・七・五・七・七の三十一バイト(みそひとバイト)から成る 機械語コードでプログラムを書いてみるという近未来の文化趣味であり,近年, 国内のハッカー間で密かなブームが起きています.” ということらしいですが、さっぱり意味がわかりません。 まあ意味がわからないのですがとりあえず嗜みとしてアセンブラ短歌くらい詠めないと恥ずかしい感じなので、自動的にアセンブラ短歌を生成するやつを作りました。 8086アセンブラ短歌ジェネレータ これを使うと、こんな感じの8086のアセンブラ短歌が誰でも簡単に詠めちゃいます。 a7 03 87 13 b7 03 65 a8 fb 1f 2

    アセンブラ短歌 - 葉っぱ日記
  • 機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき - 葉っぱ日記

    WebアプリケーションにおいてJSONを用いてブラウザ - サーバ間でデータのやり取りを行うことはもはや普通のことですが、このときJSON内に第三者に漏れては困る機密情報が含まれる場合は、必ず X-Content-Type-Options: nosniff レスポンスヘッダをつけるようにしましょう(むしろ機密情報かどうかに関わらず、全てのコンテンツにつけるほうがよい。関連:X-Content-Type-Options: nosniff つかわないやつは死ねばいいのに! - 葉っぱ日記)。 例えば、機密情報を含む以下のようなJSON配列を返すリソース(http://example.jp/target.json)があったとします。 [ "secret", "data", "is", "here" ] 攻撃者は罠ページを作成し、以下のようにJSON配列をvbscriptとして読み込みます。もちろ

    機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき - 葉っぱ日記
    oooooooo
    oooooooo 2013/05/17
    IE 6, 7, 8 は修正されたけど IE 9, 10 はまだ
  • 顔文字でJavaScript - 葉っぱ日記

    顔文字のJavaScriptを生成する aaencode を書いた。こういう↓JavaScriptが簡単に生成できる。 ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o]; (゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)= (゚Д

    顔文字でJavaScript - 葉っぱ日記
    oooooooo
    oooooooo 2010/06/12
  • JavaScriptで + - * = なしで記号だけでプログラムを書く - 葉っぱ日記

    id:hoshikuzu さんが言ってたので書いてみた。こんな感じ↓。コードはすぐ書けたけど、この記事書くのに30分以上かかってる気がする。 javascript:(~~[])[<_>{/...$/({})[~~[]][~~[]]}{/../({})[~~[]][1]}{/...$/({}[{}])[ ~~[]][~~[]]}{/..$/(!{})[~~[]][~~[]]}{/./(!![])[~~[]][~~[]]}{/...$/(!![])[~~[]][ ~~[]]}{/..$/(!![])[~~[]][~~[]]}{/...$/({})[~~[]][~~[]]}{/./(!![])[~~[]][~~[]]}{ /../({})[~~[]][~~!![]]}{/...$/(!![])[~~[]][~~[]]}</_>][<_>{/...$/({})[~~[]][~~[] ]}{/../

    JavaScriptで + - * = なしで記号だけでプログラムを書く - 葉っぱ日記
  • JavaScript変態文法最速マスター - 葉っぱ日記

    Java変態文法最速マスター - プログラマーの脳みそをリスペクト。 JavaScriptの変態文法・技法一覧です。あんまり使わないけど、知ってるとXSSとか攻撃したいのにWAFに妨害されるなど、いろいろ制約があるという場合に便利。 文字列の生成 引用符を使わずにさくっと文字列を作る。fromCharCode とか使ってもいいけどめんどくさいので、正規表現やE4Xを利用。 alert( /string/.source ); alert( <>string</> ) 空白文字を使わず記述 文脈上、スペースを書きたいけれどいろいろ制約があって書けない場合にはコメントで代替。実行するコードを作り上げてevalしてもいいけど大袈裟なので。 var/**/x=1; */ を含むコードブロックをコメントアウト コードの塊りをコメントアウトしようと思って /* */ で囲むと、コード内に string.

    JavaScript変態文法最速マスター - 葉っぱ日記
  • はてなの画像は俺のもの。俺の画像は俺のもの。 - 葉っぱ日記

    先日IRCでOyaji-pun guyの人と話してて、f.hatena.ne.jp の画像が見れないときに少し不満があるという話をしてた。 ざっと上げると いろんな理由で f.hatena.ne.jp 以下の画像が取得できないことがある。 その場合にブックマークレットを使ってrescue901.appspot.com/http://f.hatena.ne.jp/xxxxxx/xxx.jpg のように置換することで表示できるようにしたい HTMLのレンダリング後に<img src>で指定された画像が表示できているかを調べる標準的な方法がない とりあえず、naturalHeight / naturalWidth あたりを使ってお茶を濁した こんな感じ。mattnChrome User だからこれで良くなるのかもしれないけど、さすがにIEでも対応したいよね...って事で3分程度で調べてみた

    はてなの画像は俺のもの。俺の画像は俺のもの。 - 葉っぱ日記
    oooooooo
    oooooooo 2009/11/04
    これとは別に、大きい画像を期待してクリックして、変わらぬ小さなサイズでガッカリが多い
  • 2007年のクロスサイトスクリプティングを振り返って - 葉っぱ日記

    最近あちこちで「日記書くのサボってるよね」とか言われたので、サボってるわけじゃなくって書くネタがないだけだけど、無理やり2007年のXSSを振り返ってみるというネタで書いてみます。以下、著名サイトで見つけたXSSです。 産業技術総合研究所のXSS 404応答のページにてcharsetの指定がないため、UTF-7を利用したXSSが可能でした。ただし、ページ中に日語を含むため、CVE-2007-1114を利用しIE7にてUTF-7で書かれたiframeを経由した場合のみXSS可能でした。ですので、実際の脅威にはつながりにくいと思います。届出:2007年4月11日、修正完了:2007年6月5日 sourceforge.jpにおけるXSS cvs.sourceforge.jpにおける404応答のページにてcharsetの指定がないため、UTF-7によるXSSが可能でした。ログインした状態ではセッ

    2007年のクロスサイトスクリプティングを振り返って - 葉っぱ日記
  • 1