Search Result: javascript

AjaxのXSS対策

…nchronous JavaScript XMLの略であり,【後略】 高木さんのはてブには 説明が下手。精進してちょ。 と、いつになく優しいコメント(?)がついています。福森さんは顔見知りでなかったのか、はてまた単に忙しかっただけか・・・ というのも、この記事、突っ込みどころが満載なのですが、少しだけ指摘してみます。1ページの末尾には、 つまり,contents.cgiでクロスサイトスクリプティング対策が行われていなかったということになります。このように不正なスクリプトを入力…

JavaScriptの配列

…知りませんでした。 JavaScriptの場合とある意味逆ですね。JavaScriptも文字列と数値のインデックスを持てますが、内部的には文字列がキーとして扱われます。a["15"]とa[15]は同じ要素を指しますが、a["15"]とa["015"]は別の要素を指します。 このあたりは、私のホームページ(オブジェクト指向プログラム言語としてのJavaScript)に少し詳しく(易しく)説明しています。下記の3.〜7.が該当する内容です。 JavaScriptのオブジェクト オ…

JavaScriptのXSS

…SS Vol.38で、小飼弾、天野仁史、id:hamachiya2三氏の鼎談を読んでいたら、ありましたね。(「は●」はhamachiya2氏の発言) は●あと、セキュリティで気をつけておいた方がよいことなんだけど、最近よく見かけるのはJavaScript内でのXSSかな。最近GoogleとかYahoo!で見つけたのもそうだったよ(後略)。 そうなんですね。最近多いんです。それも、Ajaxを使ってないオーソドックスなWebアプリで。 JavaScriptのXSSに気をつけよう。

大昔のJavaScriptプログラム

JavaScriptでふと思い出しました。昔々、こういうプログラムを作ったのを。 JavaScriptにより数独(ナンバープレイス)を解く 1998年5月だから、もう9年前ですね。 いちおー、JavaScriptのprototypeを多用して作っています(HTMLソースでご確認を)。現代風のJavaScriptのオブジェクト指向的なプログラミングと比べたらダメダメでしょうが、考古学的な価値はあるかもしれません。

XSS対策:JavaScriptのエスケープ(その3)

…4の日記XSS対策:JavaScriptのエスケープ(その2) - ockeghem(徳丸浩)の日記に対して、id:hasegawayosukeさんからコメントを頂戴した。その内容は、JavaScriptに対応していないブラウザの場合に対する考慮が抜けているという趣旨だと理解した。元の日記にも書いたように、私自身はJavaScriptの動的生成は(特殊な場合を除いて)好ましくないと考えているが、始めた以上は最後まで検討しようと思う。 解決すべき課題の整理 まず、解決すべき課題…

XSS対策:JavaScriptのエスケープ(その2)

…1の日記XSS対策:JavaScriptなどのエスケープ - ockeghem(徳丸浩)の日記に対する金床さんのコメントに触発されて、JavaScriptのエスケープについて検討してみよう。ただし、現実のアプリケーション開発においては、私はJavaScriptの動的生成を推奨していないが、これはエスケープ処理をどのように考えるかと言うレッスンのつもりで検討することにする。金床さんのコメントで紹介されたリンクには、以下のようなガイドライン案が提案されている。 JavaScrip…

XSS対策:JavaScriptなどのエスケープ

…ると確かに失敗する。JavaScriptのスクリプトなどが入っている場合も昨日と同じ方法論で考えることは可能である。まずはこれを検討してみよう。 スクリプトがonXXXのイベントハンドラとして記述されている場合 この場合は、HTMLタグの属性値としてスクリプトが記述されるので、昨日示した●●●●部分=スクリプトは文字参照によるエスケープが必要となる。"●●●●●●●●●●●●"具体的には、(最低)「"」と「&」である。 <input type="text" onmouseov…

数値項目に対するSQLインジェクション対策

…、Perl、PHP、JavaScript、Rubyなどを例として取り上げる。 上に挙げた言語の中で、Rubyは変数にこそ型がないが、データ(オブジェクト)は型をしっかりと持っている。そのため、型変換や型チェックということが意味を持つ。 一方、PerlやPHPは、内部的には型を持っているのだろうが、現実のプログラミング上は実に「柔軟に」運用されているので、現実問題としてはデータにも型がないように見える。しばしば、数値15と文字列"15"は同じように扱われる。Perlの場合、型に…

Firefoxのパスワード・マネージャの脆弱性その後

…ンフォームを作成し、JavaScriptでそのフォームをサブミットすればよい。これは比較的簡単なJavaScriptハックである。 これに対して、Firefox 2.0.0.3では、フォームのアクションURLを調べて、飛び先が元ドメインになっている場合に限り、ID/パスワードを保管するような対策をとった。 しかしながら、サイトにXSS脆弱性があるという前提では、この対策では十分ではない。JavaScriptを利用して、動的にアクションURLを書き換えることが出来るからである。…

「携帯電話向けWebアプリの脆弱性事情」に統計数値で答える

…ブラウザの機能制限(JavaScriptが使えないなど)ために、「あぁ、ここでJavaScriptが使えればもっと色々悪いことができるのに」というもどかしさは、ケータイ向けサイトの方にある。しかし、Critical+Highの合計値で、PC:78%、ケータイ:63%という数値は「大差ない」とも言えるわけで、上記のようなケータイの「低機能ゆえの安全さ」があるにもかかわらず、両者に大差がないという現実からは、Webアプリケーションの「作り」という点では、ケータイ向けの方が「雑な」…

JavaScriptの動的生成

…TIPS】 12. JavaScriptをPHPで記述しよう:ITpro JavaScriptを使用したスクリプトを記述していて、条件による分岐を いちいち記述していくのが面倒だなーと思ったことはないでしょうか。 そんなときにちょっぴり役に立つ技を紹介したいと思います。 それは読み込むJavaScriptファイルをPHPで記述してしまう方法です。 これを使えば、面倒なJavaScriptもPHPスクリプトで動的に変化させる ことができるようになります。 JavaScriptを…

携帯電話向けWebアプリケーションのセッション管理手法

…電話向けブラウザではJavaScriptをサポートしていないので、POSTにするということは、リンクをあきらめてフォームとボタンにしなければならない。リンクが使えず、すべてをボタンにしなければならないサイトデザインは、かなり制約を受けることになり、現実的ではない。また、POSTのHiddenフィールドにセッションIDを自動的に埋め込むような開発ツールは一般には普及していないと思う。このような理由により、携帯電話向けWebアプリの開発には、URLにセッションIDを埋め込む方法が…