タグ

securityとJavascriptに関するn2sのブックマーク (17)

  • Code4Sec | LinkedIn

    Aceite e cadastre-se no LinkedIn Ao clicar em Continuar para se cadastrar ou entrar, você aceita o Contrato do Usuário, a Política de Privacidade e a Política de Cookies do LinkedIn.

    Code4Sec | LinkedIn
  • Content-Security-Policy と nonce の話 - tokuhirom's blog

    Content-Security-Policy の nonce を利用すると、XSS の脅威をかなり軽減できます。 そこで、Web Application Framework ではデフォルトで対応したほうがよいのではないか、という旨を @hasegawayosuke さんから教えて頂いたので、実装について考えてみました。 とりあえず CSP の nonce はどういうものなのかを考慮するために、コード例を探していたのですが、実際に動くサンプルというものが nonce 関連のもので見当たりませんでした。 そこで、実際に動くサンプルを用意しました。 https://github.com/tokuhirom/csp-nonce-sample 以下は Sinatra で書かれたサンプルコードです。 require 'sinatra' require 'securerandom' get '/' d

  • PHPのJSONのエスケープ

    (Last Updated On: 2023年12月8日) 追記:最近のOWASPガイドの更新でJavaScript文字列はUnicodeエンコードで安全性を確保するよう変更されました。元々このブログでもUnicodeエスケープのまま利用するように書いています。他の言語のユーザーはUnicodeエスケープを利用しましょう。PHPもASCII領域の文字をUnicodeエスケープするようにした方が良いと思います。これは提案して実現するように努力します。 JSONはJavaScriptのオブジェクトや配列を表現する方式でRFC 4627で定義されています。メディアタイプはapplication/json、ファイル拡張子はjsonと定義されています。 PHPにJSON形式のデータに変換するjson_encode関数とjson_decode関数をサポートしています。 JSON関数がサポートされている

    PHPのJSONのエスケープ
    n2s
    n2s 2013/11/16
    めんどいな、PHP
  • JavaScript文字列のエスケープ

    これらの中で注目すべきは ‘ と ” と \ です。シングルクォート、ダブルクオートは文字リテラルを作成する為に利用され、\ でエスケープできることです。つまり、文字リテラルの最後に \ が現れると文字列の終端が無くなります。単独で不正なJavaScriptの挿入が可能になる訳ではありませんが、プログラムの構造が破壊される事を意味します。 PHPにはJavaScript文字列用のエスケープ関数が用意されていません。htmlspecialchars()やhtmlentities()で代用している場合も多いと思います。しかし、これらの関数ではJavaScript文字列のエスケープを十分に行う事ができません。 JavaScriptプログラムの構造が破壊される例 <?php $msg1 = 'test string\\'; $msg2 = ');alert(document.cookie); //

    JavaScript文字列のエスケープ
    n2s
    n2s 2013/11/02
    いや、まだ見かけますよ、そういうレガシーなやり方>id:oldriver id:tokuhirom / 記事のような複雑なことやらなくてもHTMLエスケープだけ意識すればよくなるのでdata-fooを使う方法はもっと一般的になってほしい。
  • 地獄のJavaScriptセキュリティ

    TopicsPlaceHolder SectionTitlePlaceHolder TIME rest time current/total en

  • 複数のJoomla!サイトにおいて、jjencodeを使用して記号だけに難読化したJavaScriptを注入する攻撃が発生 - 葉っぱ日記

    イタリアのJoomla!を使用している複数のサイトにおいて、悪意あるサイトに誘導するためのJavaScriptを注入されるという攻撃が発生したようですが、そのときに埋め込まれるJavaScriptが、jjencode によって難読化されたものだったようです。 Italian compromised sites extraexploit: dollars javascript code – yet another Javascript obfuscation method for cc frauds 実際に攻撃を受けたサイトのHTMLソースは以下のような感じ。jjencode によって生成された記号JavaScriptが埋め込まれています。 jjencodeによる難読化コードを、このような形で攻撃に利用することは、実際には攻撃者側にとってはあまり効果がないのではないかと思います。理由は以下の

    複数のJoomla!サイトにおいて、jjencodeを使用して記号だけに難読化したJavaScriptを注入する攻撃が発生 - 葉っぱ日記
    n2s
    n2s 2010/10/08
    いたちごっこにはなりにくそうってことかな?
  • なぜJSONPだとクロスドメイン制約を超えられるのか? - 射撃しつつ前転 改

    なぜ通常のXMLHttpRequestにはクロスドメイン制約があるのに、JSONPではクロスドメインでリクエストを送信できるのか?不思議に感じたので、ちょっと調べてみた。 クロスドメイン制約は「ブラウザ上で実行されるJavaScriptは同じドメインにしかリクエストの送信やクッキーの編集を行えない」という制限である。 なぜこのような制限が必要になるのか。クロスドメイン制約がなかったらどうなるかを思考実験してみよう。ブラウザ上では、いくつものサイトからダウンロードしてきたJavaScriptが同時に実行されることは珍しくない。また、悪意のあるページにアクセスしてしまい、悪意あるJavaScriptを実行してしまうことも、十分に起こり得る話である。間違えて変なページにアクセスしたら致命的な問題が起きました、ではまずいので、ブラウザではJavaScriptができる事にかなりの制限を与えている。X

    なぜJSONPだとクロスドメイン制約を超えられるのか? - 射撃しつつ前転 改
  • [気になる]JSONPの守り方

    XSSにCSRFにSQLインジェクションにディレクトリトラバーサル……Webアプリケーションのプログラマが知っておくべき脆弱性はいっぱいあります。そこで連載では、そのようなメジャーなもの“以外”も掘り下げていきます (編集部) JSONPだって、セキュリティを気にしてほしい 皆さんこんにちは、はせがわようすけです。今回は、JSONPを使用する場合のセキュリティについて解説しましょう。 JSONPとは、JSON with Paddingの名称が示しているとおり、JSON形式のデータにコールバック関数の呼び出しのためのコードを付加することで、クロスドメインでデータの受け渡しを実現するためのデータ形式です。JavaScriptからクロスドメインでのデータが簡単に扱えることなどを理由に、多数のWebアプリケーションでAPIの一部としてJSONP形式でデータの提供が行われています。 具体的な例を見

    [気になる]JSONPの守り方
  • JavaScript変態文法最速マスター - 葉っぱ日記

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

    JavaScript変態文法最速マスター - 葉っぱ日記
  • 書籍『Ajaxセキュリティ』に関する残念なお知らせ - ockeghem's blog

    昨年の10月に刊行された書籍Ajaxセキュリティは,発刊直後に購入したが,しばらく積ん読になっていた。最近になって読み始めたのだが,いささかあきれる結果となった。HPの現役エンジニア2名の著作,一人は元SPI Dynamics社(WebInspectの開発元,HPが買収)出身,GIJOE氏の監訳ということで期待していたのだが,残念である。 残念だと思う主要な理由は,脆弱性への対策が十分に示されていないことだ。Ajaxであってもインジェクション系脆弱性が発生する可能性があること,むしろ従来型のWebアプリケーションよりもその可能性が広がることは説明されているが,肝心の対策が不十分だ。 書第四章の後半には,対策として入力検査(バリデーション)が示されている。 4.6 適切な入力検査 4.7 リッチなユーザ入力のバリデーション しかし,入力検証だけでは,任意の文字入力を許す場合の対策はできない

    書籍『Ajaxセキュリティ』に関する残念なお知らせ - ockeghem's blog
  • 高木浩光@自宅の日記 - 新はてなブックマークの登録ブックマークレットは使ってはいけない

    はてなブックマーク(以下「はてブ」)がリニューアルされ、ブラウザからブックマークレットでブックマーク登録(以下「ブクマ登録」)しようとすると、図1の画面が現れるようになった。「こちらから再設定をお願いします」と指示されているが、この指示に従ってはいけない。ここで提供されている新型ブックマークレットは使ってはいけない。(この指示には従わなくてもブクマ登録はできる。) 新型ブックマークレットを使用すると図2の画面となる。ブクマ登録しようとしているWebサイト(通常、はてな以外のサイト)上に、はてブの画面のウィンドウが現れている。これは、Ajaxと共に近年よく使われるようになった「ページ内JavaScriptウィンドウ」である。(ポップアップウィンドウとは違い、ウィンドウをドラッグしてもブラウザの外に出すことはできず、あくまでも表示中のページ上のコンテンツであることがわかる。)

  • IE6 の JavaScript では href 属性の %20 と %25%32%30 の違いが分からない - IT戦記

    これはひどい /%20 と /%25%32%30 はリンク先が違うのに、 IE6 では判断する術がない。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <a id="id0" href="a%20a">foo</a> <a id="id1" href="a%25%32%30a">foo</a> <script> var elm0 = document.getElementById('id0'); var elm1 = document.getElementById('id1'); alert(elm0.href == elm1.href); // true alert(elm0.getAttribute('href') == elm1.ge

    IE6 の JavaScript では href 属性の %20 と %25%32%30 の違いが分からない - IT戦記
    n2s
    n2s 2008/05/21
    鍵はgetAttribute()らしい(コメント欄より)
  • はてなブログ | 無料ブログを作成しよう

    ネイルで使う材料で、DIY時の木割れやネジ跡を派手にしたらかわいい OSB合板でちょっとしたボックスをつくりました。 ビス止め下手すぎて木を割ったり穴あけすぎたりした場所に、好きな派手色の樹脂を詰めてパテ代わりにしてみました。 ちょっと某HAYっぽみ出て可愛かったので、自分用にメモです。 手順 塗装 派手色グミジェルで失敗部分…

    はてなブログ | 無料ブログを作成しよう
  • XSS対策:JavaScriptのエスケープ(その3) - ockeghem's blog

    5/14の日記XSS対策:JavaScriptのエスケープ(その2) - ockeghem(徳丸浩)の日記に対して、id:hasegawayosukeさんからコメントを頂戴した。その内容は、JavaScriptに対応していないブラウザの場合に対する考慮が抜けているという趣旨だと理解した。 元の日記にも書いたように、私自身はJavaScriptの動的生成は(特殊な場合を除いて)好ましくないと考えているが、始めた以上は最後まで検討しようと思う。 解決すべき課題の整理 まず、解決すべき課題を整理しよう。元の日記では、JavaScriptを動的生成する(ただし、文字列リテラル内のデータに限る)場合のXSS対策として二段階のエスケープが必要であることを説明した。具体的には、(1)JavaScript文字列リテラルのエスケープとして、「"」、「'」、「\」のエスケープの実施、(2)HTMLとしてのエス

    XSS対策:JavaScriptのエスケープ(その3) - ockeghem's blog
  • freeml(フリーエムエル)|新しい生活をはじめる羅針盤

    住まい 住宅ローン 引越し 暮らし 電気・ガス インターネット ウォーターサーバー 将来に備える 不動産投資 学資保険 投資信託 積立NISA ライフスタイル お酒 グルメ ビューティー アウトドア freeml(フリーエムエル)は、「時代と生活の変化」に対し、「free & meaningful life」のコンセプトのもと、 「新しい生活をはじめる羅針盤」となるような情報メディアを目指しております。「住む場所を探し」「生活インフラを整え」「将来の準備をする」… 生活の中には多くの選択肢が存在し、ひとつひとつの選択の積み重ねによって、よりfree(開放的)でmeaningful(有意義)な生活が形成されていきます。専門家の方々のご協力を交えた当サービスの情報が、届いた方の「よりお得な」「より自分にあった」「より納得のいく」選択に繋がればと願っております。

    freeml(フリーエムエル)|新しい生活をはじめる羅針盤
    n2s
    n2s 2007/10/13
    Web上では「\」が削られてるのが痛い。Show original messageな機能はないのか?>freeml
  • JavaScriptエスケープについて論考 - hoshikuzu | star_dust の書斎

    http://d.hatena.ne.jp/hoshikuzu/20060130#P20060130BARSFAKE http://d.hatena.ne.jp/amachang/20071010/1192012056 (IT戦記 - 一行で IE の JavaScript を高速化する方法) はじめに 次のような限定されたケースにおいてなのですが。説明上の都合でこれを課題Aと呼ぶこととします。 <SCRIPT TYPE="text/javascript"> <!-- var strA = "$data"; // ・・・以下サイト運営者による処理記述例 alert(0); //--> </SCRIPT>上記のようなケースに限定してのオハナシですけれど、$dataをエスケープする方向でのXSS対策として金床さんなどによってかつて論議されて、このままでは使えそうにないと棄却されたJavaScr

    JavaScriptエスケープについて論考 - hoshikuzu | star_dust の書斎
  • 入力値を簡単に制限する「yav」とかフォーム入力チェックいろいろ

    メール送信フォームやらアンケートの回答フォームやら、とにかくネット上には様々なフォームが存在しています。入力する値が間違っていると「エラー」表示を出すタイプのモノが多いですが、出される側から見れば「そんな値を入力できるようにするなよ!」「8文字までしか受け付けないんだったら、最初から入力可能な文字数を8文字に制限しておけよ!」「エラーが出たらどこを再入力すればいいのかわかりやすく表示してくれ!」などと思うこともしばしば。 というわけで、この「yav」は入力エラーチェックだけでなく、最初から入力できる値を制限したり、数字であれば範囲指定したり、入力チェック後にフォームの色を変えてわかりやすくしてくれたり、とにかくいろいろ便利な入力チェック機能を簡単に組み込むことができるオープンソースで開発されているJavaScriptファイルです。入力チェック後のエラー表示もポップアップウインドウやページ内

    入力値を簡単に制限する「yav」とかフォーム入力チェックいろいろ
    n2s
    n2s 2007/07/24
    注意:Javascriptベースのチェックに完全に依存せず、サーバサイドでも必ずチェックしましょう。
  • 1