// jQueryでHTMLエスケープする例 function escape(content) { return $('<div />').text(content).html() }
不特定のユーザーが入力したMarkdownをブラウザ上でJavaScriptを使ってHTMLに変換するという場面においては、JavaScriptで変換してHTMLを生成するという処理の都合上どうしてもDOM-based XSSの発生を考えないわけにはいかない。かといって、MarkdownをパースしHTMLを生成するという処理すべてをXSSが存在しないように注意しながら自分で書くのも大変だし、markedやmarkdown-jsなどの既存の変換用のJSを持ってきてもそれらがXSSしないかを確認するのは結構大変だったりする。 そういった場合には、Markdownから生成されたHTMLをRickDOMを通すことで、万が一HTML内にJavaScriptが含まれていたとしてもそれらを除外し、許可された要素、許可された属性だけで構築された安全なHTMLに再構築することができる。さらに、そうやって生成
For a long time there has been a debate in web development as to whether web apps and sites should be rendered on the server or the client — or, of course, both. With a recent post by PPK the debate flamed up again and one thing that struck me as particularly unhelpful was the argument that where something is rendered would be automatically determine whether a given framework is (one dimensionally
In short, Fetch API- it's a new Promise- based standard for doing AJAX requests. Syntax for XHR was provided more then 10 years ago (XMLHttpRequest2 - about 4 years ago). Many things changed, we got HTML5, CSS3, also close to start using EcmaScript 6. From jQuery Deferred, $q and Native JavaScript Promises people became familiar and like promises in JS. It’s time for new laconic API to do AJAX-req
jsdom is a JavaScript implementation of the DOM designed for use primarily in Node.js but also compatible in various environments. It supports a wide range of web standards, including DOM manipulation, HTML parsing, and XHR, and is actively evolving with contributions from the community. Future enhancements aim to improve its functionality and compatibility with modern web specifications.
JSer.info #208 - DOMのJavaScript実装(Node.jsでも動くDOMの実装)であるjsdom 2.0.0がリリースされました。 機能的な追加ではないですが、2.0.0となったのは今までDOM Level{1,2,3}別で実装されていたが、今後はLiving Standardモデルで実装していくという方針を示すためだそうです。 バージョン番号をつけるのはメリットよりもデメリットのほうが多いという過去の経験やjsdom内部でもlevel別だと辛い感じになってきたので、Living Standardモデルへと変えていくことになったようです。 公開APIについては殆ど変更はありませんが、内部的にかなり構造を変更していくリファクタリングをして行くようです。 ES6のコードをES5へ変換するツールである6to5 2.0.0(現時点で2.2.0まで出ていますが)がリリースされ
これは VirtualDOM Advent Calendar 2014 に勝手に参加する記事です。 あたたかい春の昼下がりのこと、あるブラウザベンダの社内を不穏な噂が駆け巡った。 「React.js なるライブラリ、どうも仮想 DOM というやつのせいで速いらしいぞ」 もうリアルな DOM はお役御免、ブラウザも商売上がったりか・・・。雇用に不安を覚える人(私)がいる一方、 そのアイデアをとりこんでブラウザの DOM を速く出来ないかと考える人たちもいた。 仮想 DOM はなぜ速いのか。誰かのつてを辿って React.js チームにおいでいただき、速さの秘密をテックトークしてもらう。 イミュータブルなデータ構造による単純化、非同期適用による処理のバッチ化、差分アルゴリズムによる副作用の最小化… いくつかのアイデアはブラウザからはどうにもならないが、たとえば非同期化なんかは形は違えどブラウザ
<form id="fileUpload" name="fileUpload" method="post" action="/server"> <input type="text" name="fileName" value="memo.txt"> <input type="file" name="file"> <input type="submit"> </form> <script> var fileUpload = document.getElementById('fileUpload'); fileUpload.addEventListener('submit', function(e) { e.preventDefault(); var xhr = new XMLHttpRequest(); xhr.open('POST', '/'); xhr.send(new FormData
This blog site has been archived. Go to react.dev/blog to see the recent posts. Today we’re releasing React v0.11.2 to add a few small features. We’re adding support for two more DOM elements, <dialog> and <picture>, as well as the associated attributes needed to use these elements: open, media, and sizes. While not all browsers support these natively, some of our cutting edge users want to make u
RickDOM - ricking DOM elements safety from string https://github.com/hasegawayosuke/rickdom ブラウザ内のDOMParserあるいはcreatHTMLDocument APIを使って不活性なDOMを組み立てたのちに、必要な要素と属性、スタイルだけを切り出して複製しているので、原理的にDOM based XSSの発生を抑えることができます。 使いかたも簡単。 var rickdom = new RickDOM(); var container = document.getElementById( "container" ); var elements; var i; // read allowings property to show default rule // div.textContent =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く