タグ

jsonに関するtenten0213のブックマーク (5)

  • JSONのエスケープをどこまでやるか問題 - 葉っぱ日記

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

    JSONのエスケープをどこまでやるか問題 - 葉っぱ日記
  • [さらに気になる]JSONの守り方

    XSSにCSRFにSQLインジェクションにディレクトリトラバーサル……Webアプリケーションのプログラマが知っておくべき脆弱性はいっぱいあります。そこで連載では、そのようなメジャーなもの“以外”も掘り下げていきます (編集部) 次は、JSONにおけるセキュリティ対策 皆さんこんにちは、はせがわようすけです。第4回「[気になる]JSONPの守り方」はJSONPについて説明しましたので、今回は「JSON」についてもセキュリティ上注意すべき点について説明します。 JSONは、XMLHttpRequestで受け取り、JavaScript上でevalするという使い方が一般的です。 まずはサーバ側から送られる情報と、クライアント側での処理、それぞれの内容を見ておきましょう。 [サーバ側] HTTP/1.1 200 OK Content-Type: application/json; charset=

    [さらに気になる]JSONの守り方
  • [気になる]JSONPの守り方

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

    [気になる]JSONPの守り方
  • jq

    jq is a lightweight and flexible command-line JSON processor. jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text. jq is written in portable C, and it has zero runtime dependencies. You can download a single binary, scp it to a far away machine of the same type, and expect

  • jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも - (゚∀゚)o彡 sasata299's blog

    2014年04月09日11:24 Ruby JavaScript jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも JSON を返すときに、良い感じにごにょごにょしたいみたいなときってあるじゃないですか。そういうときに jbuilder ではどうやるのかなーと思ってちょっと調べたのでメモしておきます。 基的な使い方はこんな感じです。 # こう書くと json.user do |json| json.nickname @user.name end # こうなる { "user": { "nickname": "sasata299" } } ただ、これだとキーの部分("nickname" の部分)が定数となってしまい、変数が使えません。変数を使ってキーを動的に変えたい場合には set! というメソッドを使います。 例えば、"nickname"

    jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも - (゚∀゚)o彡 sasata299's blog
  • 1