タグ

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

  • alertを出したいんだ俺たちは - 葉っぱ日記

    利用者に対してメッセージを意識的に伝えたり、あるいは何かしらの行動を促すために、ダイアログボックスを表示するための機能がブラウザーには複数実装されている。alertの聖地、兵庫県出身者として、その手の機能を以下にまとめた。 機能 UIの占有など 機能、特徴 javascriptの window.alert メソッド タブモーダル 任意のメッセージが表示可能。繰り返し表示される場合にそれを抑止する機能がほとんどのブラウザーに実装されている。 javascriptの window.prompt メソッド タブモーダル 任意のメッセージが表示可能。任意の1行テキストが入力できる。繰り返し表示される場合にそれを抑止する機能がほとんどのブラウザーに実装されている。 javascriptの window.confirm メソッド タブモーダル 任意のメッセージが表示可能。OK、キャンセルのボタンを持つ

    alertを出したいんだ俺たちは - 葉っぱ日記
    invent
    invent 2019/03/12
  • 機密情報を含む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 をつけるべき - 葉っぱ日記
    invent
    invent 2013/05/17
    機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき - 葉っぱ日記
  • Same-Origin Policy とは何なのか。 - 葉っぱ日記

    ちょっと凝ったWebアプリケーションを作成していたり、あるいはWebのセキュリティに関わっている人ならば「Same-Origin Policy」(SOP)という言葉を一度は聞いたことがあると思います。日語では「同一生成元ポリシー」あるいは「同一生成源ポリシー」などと訳されることもありますが、個人的には「オリジン」は固有の概念を表す語なので下手に訳さず「同一オリジンポリシー」と書いておくのが好きです。 さて、この「オリジン」とは何なのかという話ですが、これは「RFC 6454 - The Web Origin Concept」で定められており、端的に言うと「スキーム、ホスト、ポート」の組み合わせをオリジンと定め、それらが同じものは同一のオリジンとして同じ保護範囲のリソースとして取り扱うということです。 例えば、http://example.jp/fooとhttp://example.jp:

    Same-Origin Policy とは何なのか。 - 葉っぱ日記
    invent
    invent 2013/03/30
    Same-Origin Policy とは何なのか。 - 葉っぱ日記
  • GoogleのJSON(モドキ)の先頭にwhile(1); がつく理由 - 葉っぱ日記

    なぜGoogleはJSONの先頭に while(1); をつけるのか #JavaScript #HTML #Ajax #StackOverflow - Qiita これはクロスサイト・リクエスト・フォージェリ対策。違うよ!全然違うよ! 攻撃者の作成した罠ページにてJSONを<script src="target.json">みたいに読み込んで、ゴニョゴニョやることでJSON内の機密情報に攻撃者がアクセス可能というのは合ってるけど、それを「クロスサイト・リクエスト・フォージェリ」とは言わない。無理に何か名前をつけて呼ぶとすれば、「JSON Hijacking」という俗称や、あるいは単純にクロスサイトでの情報漏えい、程度ですかね。 ちなみに、ArrayコンストラクタやObjectでのアクセサを定義してJSONをJSとして読み込んで内部にアクセスする手法は、現在のところ公にされているところでは古

    GoogleのJSON(モドキ)の先頭にwhile(1); がつく理由 - 葉っぱ日記
    invent
    invent 2013/02/06
    GoogleのJSON(モドキ)の先頭にwhile(1); がつく理由 - 葉っぱ日記
  • CD-ROM トレイを取り出せる Chrome拡張、「chrome-eject」作った。 - 葉っぱ日記

    Chrome 使ってると良く CD-ROM を取り出したくなりますよね。 ならないとしたら、今すぐこの記事を読むのをやめて病院に行って下さい。 hasegawayosuke/chrome-eject · GitHub https://github.com/hasegawayosuke/chrome-eject インストールすると というアイコンが追加されるので、ボタンを押すだけで CD-ROM トレイがゲロっと排出されます。 便利ですね! 皆さんもぜひ、使ってみて下さい。 (今日の参考文献: http://mattn.kaoriya.net/software/lang/ruby/20130110212633.htm)

    CD-ROM トレイを取り出せる Chrome拡張、「chrome-eject」作った。 - 葉っぱ日記
    invent
    invent 2013/01/13
    CD-ROM トレイを取り出せる Chrome拡張、「chrome-eject」作った。 - 葉っぱ日記
  • はまちちゃんへ、しっかりしてください - 葉っぱ日記

    (あとで書く)

    はまちちゃんへ、しっかりしてください - 葉っぱ日記
    invent
    invent 2012/08/31
    はまちちゃんへ、しっかりしてください
  • アウェーな勉強会とYAPC::Asia - 葉っぱ日記

    勉強会は行かないより行ったほうがいいんだろうけどホームな勉強会ばかり行ってても勉強になんてならないんでアウェーな勉強会に行くほうがいいなと思ってて、ちょうどYAPC::Asiaのスピーカーを募集してるってことなんで、応募してみた。 YAPC::Asia 2012 Tokyo Tlaks 普段、Perlはほとんどつかってなくって、ちょっとしたコードを書くためにも常に基的な文法から調べないとわからないし、Perl界隈の人たちとそこそこ仲はいいとはいえ、それはPerlを使っている人のごくごく一部な人たちでしかなくて、それ以外の普段Perlをバリバリ使っているアウェーな空気の中で話すということになったら、それは自分自身の糧にもなるだろうなと思ったことが応募の理由としては一番大きい。 それ以外にも、Perlを使っていてちょっとわからないことをなんとはなくTwitterIRCで聞くと、みんな親切に

    アウェーな勉強会とYAPC::Asia - 葉っぱ日記
    invent
    invent 2012/06/10
    アウェーな勉強会とYAPC::Asia
  • JSONのエスケープをどこまでやるか問題 - 葉っぱ日記

    Ajaxなアプリケーションにおいて、サーバからJSONを返す場合に、JSON自体はvalidであるにも関わらず、(IEの都合で)エスケープが不足していて脆弱性につながってる場合があるので、書いておきます。 発生するかもしれない脆弱性 JSONのエスケープが不足している場合に発生する可能性のある脆弱性は以下の通りです。 JSON内に含まれる機密情報の漏えい XSS それぞれの詳細については後述します。 開発側でやるべきこと 文字列中のUnicode文字は "\uXXXX" な形式にエスケープするとともに、ASCIIな範囲であっても「/」「<」「>」「+」も同様にエスケープすることにより、前述の脆弱性を防ぐことができます。 Perlであれば、以下のような感じになります。JSON->ascii(1) に続けて、JSON文字列を正規表現で置換しているあたりがキモになります。 use utf8; u

    JSONのエスケープをどこまでやるか問題 - 葉っぱ日記
    invent
    invent 2011/07/12
  • JavaScriptで + - * = なしで記号だけでプログラムを書く - 葉っぱ日記

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

    JavaScriptで + - * = なしで記号だけでプログラムを書く - 葉っぱ日記
    invent
    invent 2010/03/25
    機械語みたい。
  • JavaScript変態文法最速マスター - 葉っぱ日記

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

    JavaScript変態文法最速マスター - 葉っぱ日記
    invent
    invent 2010/02/04
  • 1