タグ

Javascriptとurlに関するkyo_agoのブックマーク (12)

  • encodeURIComponentが世界基準だと誤解してた話

    URLをいじくるプログラムをいじっていて、仕様がよくわからなくて悩んだのでまとめます。 2/23: 追試部分を追記 2018/7/14: JavaScriptのURLSearchParamsと、GoのPathEscapeについて追記 ことの経緯 HTTPとはなんぞやとか、GETとPOSTがどうの、それぞれでパラメータがどういう経緯でウェブアプリケーション(とかCGI)に渡って来るのかぐらいは知っていました。で、ウェブでXHRでGETリクエストを送る場合にはJavaScriptのencodeURIComponent()で各パラメータをエンコードして、&でくっつけて、URLの末尾に?で付与すればいいんだよね?と思っていました。こんな感じに。 var finalUrl = [url, "?", encodeURIComponent("key"), "=", encodeURIComponent(

    encodeURIComponentが世界基準だと誤解してた話
  • ChromeのMediaStreamTrackとvideo要素の組合せには罠がある話 - console.lealog();

    WebRTC界隈で、 Chromeの`video.srcObject = stream`はバグってるから使っちゃダメ 代わりに`video.src = URL.createObjectURL(stream)`を使え という噂があって。 とはいっても、 Safariでは`URL.createObjectURL(stream)`がエラーになる URL.createObjectURL(stream) が廃止予定となりました | Firefox サイト互換性情報 などなど事情もあるのでそろそろ`srcObject`だけ使いたい! そのためにもどういうケースでバグってるとか、この噂の真意を確かめたいなーと思って調べてたのが事の発端。 よくわからなかった 実際に`srcObject`を使ってるコードでストリームが止まる謎の挙動を示すケースが実際にあった。 ただ代わりに`createObjectURL(

    ChromeのMediaStreamTrackとvideo要素の組合せには罠がある話 - console.lealog();
  • Proposalには載っていないSwift 5のasync/awaitが素晴らしいと思う理論的背景 - Qiita

    追記 (2020-08-05) 投稿時には async/await が Swift 5 で導入されそうでしたが、 2020 年 8 月( Swift 5.2 )現在ではまだ async/await は導入されておらず、 Swift 6 での導入が有力になっています。 async/await は "Swift Concurrency Manifesto" の最初の Part に挙げられていますが、公式にアナウンスされた "On the road to Swift 6" の中で Concurrency が挙げられています。 先日、 async に関する PR が Swift リポジトリの master ブランチにマージされました。 2ヶ月ほど前、 Chris Lattner から swift-evolution に "async/await + actors" というタイトルで驚きのメールが流

    Proposalには載っていないSwift 5のasync/awaitが素晴らしいと思う理論的背景 - Qiita
  • WebmentionがW3C勧告に | フロントエンドBlog | ミツエーリンクス

    2017年1月12日、WebmentionがW3C勧告になりました。 WebmentionはTrackbackに類似したプロトコルのひとつで、サイト上での言及を任意のURLに通知する方法です。 通知の受信側からみれば、他サイトにおいて言及された際、その通知を受信する方法の1つです。 Webmention仕様は、Pingback仕様の簡略版として策定が始まりました。 今ではPingbackのモダンなアップデート版であると言及されています。 WebmentionはHTTPとx-www-form-urlencoded(パーセントエンコーディング)を用いた、HTMLにおけるformの形式で送信されます。 これが、XML-RPCを用いているPingbackとの大きな違いであり、簡略化されているといわれるゆえんです。 すでにWordPressのプラグインが存在している(GitHub)など、各方面での実

    WebmentionがW3C勧告に | フロントエンドBlog | ミツエーリンクス
  • Node v7 で入った WHATWG URL 実装について | blog.jxck.io

    Intro Node v7.0.0 が公開され、今回のリリースで WHATWG URL の実装が Experimental として入った。 既に標準で含まれていた url module との違いや、 URL API などについて解説する。 WHATWG URL URL は非常によく使われる、 Web において重要なフォーマットの一つだ。 ものによっては一見シンプルに見えるかもしれないが、その仕様はそれなりに大きい。 しかし、これまで DOM/JS はこれをパースする専用の API を持っていなかったため、例えば <input type=text> に入力された URL 文字列のパースは、片手間な正規表現で行われることも少なくなかった。 同様に、動的生成されるクエリやハッシュなどを URL に含める場面でも、やはり文字列操作による構築が行われてきた。 片手間な正規表現や文字列処理が、 URL

    Node v7 で入った WHATWG URL 実装について | blog.jxck.io
  • IEのdocument.URLUnencodedとは何者なのか

    両者の違いを詳しく説明しているサイトが見つかりませんでしたので、自分でざっくり調べてみました。付け焼き刃なので、間違いが含まれている可能性はあります。 結論から言うとdocument.URLUnencodedはバグのまま放置されているのではないかと推測しました。 仕様 document.URL(以下、URL) URLの仕様はW3Cで定義されており、 URL of type DOMString, readonly The absolute URI [IETF RFC 2396] of the document. とあります。読み取り専用になっているのはこれを準拠しているからでしょう。 document.URLUnencoded(以下、URLUnencoded) URLUnencodedはIEの独自実装(他ブラウザでも一部対応していた気もしますが失念)ですが、質問にも記載されているMSDNの説

    IEのdocument.URLUnencodedとは何者なのか
  • createObjectURLとは何か? - NullPointer's

    createObjectURL、省メモリだとかaudioの再生がスムーズだとか言われてるけど、これが何物なのか日語の詳しい説明が見当たらないので、自分の理解を書いておく。File APIの仕様書を軽く流し読みして得た理解なので正確さは保証しない。ま、大筋は間違っちゃないと思う。 createObjectURLはFileオブジェクトのURL(Blob URL)を作成するもの。httpスキームのURLがサーバ上のリソースを指しているように、Blob URLは自分のPCのメモリ上にあるリソースを指し示す。 FileReaderのreadAsDataURLメソッドを使うとfileオブジェクトを元にURLを作成できるが、これはData URLで、URLエンコードされたファイルの中身そのもの。よって、ファイルを読み込んでData URLを作成すると、JavaScriptエンジンはファイルサイズに比例

    createObjectURLとは何か? - NullPointer's
  • Masato Kinugawa Security Blog: U+2028/2029とDOM based XSS

    ECMAScriptの仕様では、0x0A/0x0D以外にU+2028/2029の文字も改行とすることが明記されています。 これはあまり知られていないように思います。 以下はアラートを出します。 <script> //[U+2028]alert(1) </script> 知られていないだけでなく、知っていたとしても、スクリプトで文字列を処理するときに、U+2028/2029まで考慮する開発者がどれだけいるのかという話です。 実際、U+2028/2029を放り込むと文字列リテラル内にその文字が生のまま配置され、エラーが出るページは当にたくさんあります。まあ、エラーがでるだけなら、大抵の場合大きな問題にはなりません。 ところが、U+2028/2029によってXSSが引き起こされてしまう場合というのを最近実際に見ました。 Googleのサービスで見つけた2つのケースを取り上げたいと思います。 ケ

  • Masato Kinugawa Security Blog: Flash動画プレイヤー「ふらだんす」に存在したXSSから学ぶ、FlashのXSS3パターン

    ストリーミング・ジャパンが以下のURLで提供しているFlash動画プレイヤーの「ふらだんす」に存在し修正された、僕が報告した3件のXSSについて書きます。 http://www.streaming.jp/fladance/ 更新しましょう 2013年4月12日に提供されたバージョン 2.1.5以降 を使っていなければXSSの穴をサイトに作っていることになります。一応「ふらだんす」の上で右クリックすると使っているバージョンがわかるので脆弱かどうか確認できますが、こういったFlashの動画プレイヤーの更新情報をちゃんとチェックしている人はほとんどいないと思うので、最近導入した人でなければまず脆弱なものを使っていると思います。心当たりがある人は「2.1.5」に更新しましょう。あるいは使っているサイトをみかけたら教えてあげましょう。 これ以降は技術的な話です。 技術的な話 あらかじめことわっておく

  • swfobject.js がアレな話 - ほむらちゃほむほむ

    もばいる全盛感のある世間的には今更,FLASH なんてどうでもいいし,swfobject.js 自体 2009年から更新されてないから,こんな古いものをと言われかねないような話ではあるものの,日語での言及をあまり見てないし,つい先日もさる通信キャリアがトップページでやらかしてて多分知られてないんだろうなと思ったので書こうと思った次第. swfobject.js とは何か この記事の対象読者にとっては説明するまでもない話とはおもうけど一応前置きとして説明しておくと,swfobject.js は FLASH を web ページに埋め込むための JavaScript のライブラリ.クロスブラウザ対応してたり,面倒な HTML-tag のお作法を覚えなくても良くなったりとでデファクトスタンダードな感じのモノ.2007年とちょい古いがリクルートMTL の SWFObject v2.0 ドキュメント

    swfobject.js がアレな話 - ほむらちゃほむほむ
  • File API で作成した blob をダウンロードする

    この記事は “HTML5 Advent Calendar 2012” の16日目の記事です。他の記事もぜひご覧ください。 HTML5 では BlobBuilder オブジェクトを作成して、ファイルをメモリ上に読み込んだり、あるいはユーザーの入力やサーバーから取得したデータを元にしてメモリ上にファイルの内容を作成することが可能です。また作成した Blob は XML HTTP Request (XHR) の FormData としてサーバーにアップロードすることも可能です。 ではメモリ上の Blob をローカルに保存したい場合、どうすればよいでしょうか。Web ページのスクリプトから直接ローカルのファイル システムを操作する File System API (File API: Directories and System と File API: Writer) の標準化について議論が進めら

    File API で作成した blob をダウンロードする
  • 「改行削除の代わりにGZIP」を実践してみた : document

    11月16 「改行削除の代わりにGZIP」を実践してみた はじめに この記事の内容は「改行削除するくらいなら gzip したらいいじゃない」という記事の内容を受けて書いたものですので、まずはそちらをご覧になると良いかと思います。 記事を読んで、なんとなく呼ばれたんじゃないかという気になったので間違った方向でこれに取り組んでいこうと思います。 GZIP の展開を JavaScript で行う まずは、GZIP ファイルを JavaScript で展開します。 いくつか実装はあると思いますが、ここは自作で使い慣れてる zlib.js を使ってやります。 そして、展開したらそれを Object URL にして適用します。 簡単ですね。 大体こんな感じです。 で、できたものはこちらになります。 http://imaya.github.com/demo/gunzip/ こちらのデモでは割と最近の機能

  • 1