JSONとJSONP〜その2〜

 

JSONPマダマダツヅキマスヨ。

 

前回、XSS攻撃を避けるためにも、クライアント側でパースしよう書きましたが、まだまだ謎が多いので書きます。

 

参考:ここここ

 

Content-type

jsonの場合、

application/jsonです。text/javascriptではない!

 

jsonpの場合、

実体はcallback関数でJSONを包んだJavaScriptなので、MIMEタイプはJavaScriptと同じでapplication/javascript

text/javascript → application/javascript (2006年4月RFC4329)

text/htmlとかtext/javascriptとかにしてるとhtmlと解釈してしまい、悪意あるスクリプトが仕込まれている場合、実行されていまします。→XSSの攻撃を受ける

content-typeを正しく記述することは重要!!

しかし、IE6だと、application/jsonとしていてもhtmlとして解釈してしまうようです。

 

callback関数

jsonpの仕組みって、コールバック関数を使ってサーバから受け取るデータにscriptとしての役割を持たす。

callback関数と同じ名前の関数の引数にJSONが入ったスクリプトを返すようクロスドメインのサーバーにリクエストし、
動的にそのスクリプトを読み込んだ瞬間にcallback関数が引数にJSONをつっこんだ状態で呼び出される。

 

 

投稿者:

kin29man

農学部卒の7年目エンジニアです👩‍💻 PHPとGASが好きです!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です