Amazon商品の価格変動チェック「あまとも」
コミックダッシュ!は初音ミクGTプロジェクトを応援しています
個人ニュースサイトを巡回する「メガとんトラック」
全ての記事 携プレMP3 デジカメ レコーダ ゲーム メモリ デジモノ コラム 雑談 ブログ あまとも コミックダッシュ!
前の記事次の記事
2014/09/15 18:00 - 2014/09/15

videoタグで埋め込んだ.mp4をAndroid(らしき)端末が無限ループ状態でアクセスしてくる問題 ※追記あり

カテゴリ : ブログ タグ :

ここ数ヶ月、ときどき 妙なアクセス が目に付くようになりました。
いえ、スパムとかはいつもどおりなのですが(それはそれでどうかと・・)。
 

 
時々、アクセスログにこんな感じのログがズラーっと並ぶことがあるのです。
ブログ記事の中に含まれる video タグ での埋め込み動画.mp4ファイルに、
延々とアクセスが続いています。



[02/Sep/2014:11:09:47] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1003914
[02/Sep/2014:11:09:48] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1246794
[02/Sep/2014:11:09:47] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1125354
[02/Sep/2014:11:09:48] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 979626
[02/Sep/2014:11:09:50] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 979626
[02/Sep/2014:11:09:50] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 971530
[02/Sep/2014:11:09:50] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 987722
[02/Sep/2014:11:09:49] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1044394
[02/Sep/2014:11:09:49] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 947242
[02/Sep/2014:11:09:50] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 939146
[02/Sep/2014:11:09:49] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1052490
[02/Sep/2014:11:09:49] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1012010
[02/Sep/2014:11:09:51] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 704362
[02/Sep/2014:11:09:52] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1076778
[02/Sep/2014:11:09:51] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 979626
[02/Sep/2014:11:09:51] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1028202
[02/Sep/2014:11:09:52] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 785322
[02/Sep/2014:11:09:52] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 914858
[02/Sep/2014:11:09:53] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 550538
[02/Sep/2014:11:09:52] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 995818
[02/Sep/2014:11:09:51] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 809610
[02/Sep/2014:11:09:53] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 971530
[02/Sep/2014:11:09:54] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 890570
[02/Sep/2014:11:09:54] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 882474
[02/Sep/2014:11:09:53] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1133450
[02/Sep/2014:11:09:54] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1222506
[02/Sep/2014:11:09:53] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 963434
[02/Sep/2014:11:09:55] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 1101066
[02/Sep/2014:11:09:54] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 931050
[02/Sep/2014:11:09:55] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 947242
[02/Sep/2014:11:09:55] "GET /blog/video/mp4/torne_niconico_3.mp4 HTTP/1.1" 200 931050

実際に埋め込んでいる状態というのは至って普通のもので(と思うのですが)、

こんな感じのものですね。以前はブログへの埋め込みはflashを使った複雑な
仕組みを使っていたのですが、1年ほど前から当ブログでも埋め込み動画はすべて
videoタグによるシンプルな記載に統一しています。実際のコードはこんな感じです。

<video controls poster="/blog/images/psvita_garupan_play_2.jpg" width="512" height="288">
<source src="/blog/video/mp4/psvita_garupan_play_2.mp4" type="video/mp4">
<source src="/blog/video/webm/psvita_garupan_play_2.webm" type="video/webm">
</video>

こうした動画のファイルへのアクセスが 複数回にわたる のは仕組み的には
おかしくはなくて、ブラウザは一度に動画データ全てを持っていくのではなく、
何回かに分けて必要なデータだけ持っていくのが普通です。普通に再生すると
数百KBずつ10回くらいに分けてアクセスされることが多いようです。
 
ただ、上記のものはそういうレベルではありません。
同一IPからのアクセスを追ってみると、元の動画ファイルはせいぜい
3~5MBくらいなのに、1回あたり1MBくらいの量のアクセスが
 
 秒間3~5回のペースでなんと『数時間』も延々と続く
 
というものです。これが1度発生するだけで、サーバの負荷グラフにまで
はっきりとその影響が現れてきます。(普通は静的ファイルへのアクセス
くらいではサーバの負荷グラフはびくともしません)
 

 
一体これは何なのだろう?! とずっと頭を悩ませていたのですが、
最近重い腰を上げて本格的に対策しなければ、と調査を始めました。
しかしまだ原因はちゃんと分かっていません。

  96552  2014-01-18  "stagefright/1.2 (Linux;Android 4.2.2)"
  52402  2014-01-28  "SonyC6833 Build/14.2.A.0.290 stagefright/1.2 (Linux;Android 4.3)"
  31733  2014-03-23  "stagefright/1.2 (Linux;Android 4.2.1)"
  34299  2014-03-31  "stagefright/1.2 (Linux;Android 4.2.2)"
  27499  2014-04-02  "stagefright/1.2 (Linux;Android 4.2.2)"
  22290  2014-04-03  "stagefright/1.2 (Linux;Android 4.2.2)"
  14412  2014-04-11  "Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36"
  10133  2014-04-12  "Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36"
  60545  2014-04-23  "Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36"
  57517  2014-04-29  "Mozilla/5.0 (Linux; Android 4.3; C6802 Build/14.2.A.0.290) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36"
  92499  2014-05-05  "Mozilla/5.0 (Linux; Android 4.2.2; ME173X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36"
  14344  2014-05-07  "Mozilla/5.0 (Linux; Android 4.2.2; ME173X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36"
  15133  2014-05-11  "Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36"
  11287  2014-05-12  "Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36"
  12725  2014-05-16  "Mozilla/5.0 (Linux; Android 4.3; LT25i Build/9.2.A.0.295) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36"
 151658  2014-05-28  "stagefright/1.2 (Linux;Android 4.1.2)"
 115248  2014-06-07  "Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Safari/537.36"
  49791  2014-06-28  "SonySO-01F Build/14.3.B.0.288 stagefright/1.2 (Linux;Android 4.4.2)"
  87256  2014-06-30  "SonySO-01F Build/14.3.B.0.288 stagefright/1.2 (Linux;Android 4.4.2)"
 127512  2014-07-01  "SonySOL25 Build/17.1.C.0.307 stagefright/1.2 (Linux;Android 4.4.2)"
  39542  2014-07-05  "SonySO-01F Build/14.3.B.0.288 stagefright/1.2 (Linux;Android 4.4.2)"
 111047  2014-07-08  "stagefright/1.2 (Linux;Android 4.2.2)"
  29006  2014-07-11  "Mozilla/5.0 (Linux; Android 4.4.2; SO-01F Build/14.3.B.0.288) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36"
  69796  2014-07-13  "Mozilla/5.0 (Linux; Android 4.4.2; SO-01F Build/14.3.B.0.288) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36"
 162536  2014-07-14  "Mozilla/5.0 (Linux; Android 4.4.2; SO-01F Build/14.3.B.0.288) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36"
 384301  2014-07-18  "Mozilla/5.0 (Linux; Android 4.4.2; SO-05F Build/17.1.1.B.1.53) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36"
  16289  2014-07-31  "stagefright/1.2 (Linux;Android 4.4.2) acer_A1-810"
  32273  2014-08-07  "Mozilla/5.0 (Linux; Android 4.4.2; SO-01F Build/14.3.B.0.288) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36"
 125311  2014-08-08  "Mozilla/5.0 (Linux; Android 4.4.2; SO-01F Build/14.3.B.0.288) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36"
  49987  2014-08-09  "Mozilla/5.0 (Linux; Android 4.4.2; SOL23 Build/14.3.C.0.239) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36"
  12094  2014-08-09  "Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36"
  10251  2014-08-16  "Mozilla/5.0 (Linux; Android 4.4.2; SO-03F Build/17.1.1.B.2.73) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36"
  34240  2014-08-20  "Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Safari/537.36"
 128637  2014-08-21  "Mozilla/5.0 (Linux; Android 4.2.1; S5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36"
  88653  2014-08-24  "Mozilla/5.0 (Linux; Android 4.2.2; ME173X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36"
 305188  2014-08-25  "Mozilla/5.0 (Linux; Android 4.4.2; SGP512 Build/17.1.2.A.0.314) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36"
 349205  2014-08-25  "Mozilla/5.0 (Linux; Android 4.2.2; ME173X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36"
 170824  2014-08-26  "Mozilla/5.0 (Linux; Android 4.4.2; SGP512 Build/17.1.2.A.0.314) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36"
 190815  2014-08-26  "Mozilla/5.0 (Linux; Android 4.2.2; ME173X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36"
  23600  2014-08-26  "Mozilla/5.0 (Linux; Android 4.4.2; SOL23 Build/14.3.C.0.239) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36"
  51926  2014-08-27  "Mozilla/5.0 (Linux; Android 4.4.2; SOL23 Build/14.3.C.0.239) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36"
 238166  2014-08-29  "Mozilla/5.0 (Linux; Android 4.4.2; SGP412 Build/14.3.A.1.293) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36"
  17335  2014-09-02  "Mozilla/5.0 (Linux; Android 4.4.2; SOL24 Build/14.3.C.0.239) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36"
  18471  2014-09-02  "SonySOL24 Build/14.3.C.0.239 stagefright/1.2 (Linux;Android 4.4.2)"
  30306  2014-09-02  "SonySOL23 Build/14.3.C.0.239 stagefright/1.2 (Linux;Android 4.4.2)"
  64740  2014-09-08  "SonyC6833 Build/14.4.A.0.108 stagefright/1.2 (Linux;Android 4.4.4)"
  16853  2014-09-09  "SonySO-01F Build/14.3.B.0.310 stagefright/1.2 (Linux;Android 4.4.2)"
 106079  2014-09-10  "SonySO-01F Build/14.3.B.0.310 stagefright/1.2 (Linux;Android 4.4.2)"
  33789  2014-09-12  "Mozilla/5.0 (Linux; Android 4.4.2; SOL23 Build/14.3.C.0.239) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36"
  13383  2014-09-12  "Mozilla/5.0 (Linux; Android 4.4.2; SOL23 Build/14.3.C.0.239) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36"
 164902  2014-09-14  "Mozilla/5.0 (Linux; Android 4.4.2; SGP511 Build/17.1.2.A.0.314) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Safari/537.36"
 184169  2014-09-15  "Mozilla/5.0 (Linux; Android 4.4.2; SGP511 Build/17.1.2.A.0.314) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Safari/537.36"
 262241  2014-09-15  "Mozilla/5.0 (Linux; Android 4.2.2; ME173X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Safari/537.36"

これが今年1月からの同症状の発生状況です。
 
左から「1日当たりのアクセス数」「年月日」「User-Agent」です。
細かいレベルだともっと多いのですが、同一IPから.mp4ファイルだけで
1日あたり1万アクセス を越えたケースをピックアップしてみました。
 
右にあるのが User-Agent(UA) なのですが、確実にいえるのは、
 
 全て Android 関係のアクセスである
 
という点です。一番目に付くのは 「stagefright」 という文字。
stagefrightというのはAndroidのメディアフレームワークですね。
 
stagefrightという文字がないUAの場合は100% 「Chrome」 になっています。
OSは Android 4.2 ~ 4.4 で100%です。
ただ、特定端末や特定IPが怪しい、という傾向は無さそうです。
 
UAに「stagefright」とあっても普通にアクセスしてくるケースのほうが多い
ですし、Chromeはいわずもがな、大多数のアクセスは問題ないことがほとんどです。
しかし数日に1回くらいのペースでこうして 暴走するアクセス が出てきます。
 
発生頻度やその内容から、ぱっと見て 「攻撃的なアクセス」ではない
ことはひと目でわかります。(攻撃だったらもっとやりようがある)
やはり、何らかの条件が揃ったときに暴走して、必要のないアクセスを延々と
ループしてしまうケースがある、ということなのでしょうか・・・。
 
サーバ側としてはこれは見過ごせない問題です。放っておくと1日でも2日でも
延々とアクセスが続いてしまうため、だんだんとパラレルに積み重なっていって
とんでもないことになります。
 
とりあえず暫定策としてブロックするようにしていますが、元々が悪意のある
アクセスではなさそうですので、IP単位でブロックするのも何か気が引けます。
ただ、他に手もないのでそうするしかないのですが・・・。
 
videoタグで.mp4ファイルを置いているだけのシンプルな状況で、
なぜこんな無限ループアクセスみたいな症状が出てくるのでしょうね('A`)
 
 
※追記 2014.09.16
その後さらに調べていたところ、自分自身のスマホ等でも、AndroidのChromeから
このブログのvideoタグの .mp4を再生できていない ことが判明しました。。
(以前は再生できていたような気がするのですが・・・ 失礼いたしました orz)
 
■Chrome for Android で HTML5 の Video タグで再生出来ない mp4 があって困った話 - しばやん雑記
http://blog.shibayan.jp/entry/20140715/1405428747
仕事で最近は Azure Web サイト上で ffmpeg とか使ってますが、今日は Android のみ HTML5 の Video タグで mp4 を再生できない現象に遭遇したので、ちょっと調べてみました。
原因はその mp4 のボックス構造がストリーミング再生に不適格な順序になっていたことが原因のようです。

こちらの情報を参考にして調べてみると、同じく.mp4の構造が適切ではなかった
ようですので、mp4box.exeを使って再構成 をしたものに置き換えたところ、
無事AndroidのChromeでも再生できるようになりましたので、これでひとまず
どうなるか様子をみたいと思います。
 
(といっても、いままでAndroidで再生できなかったということと、
その際にアクセスが無限ループしてしまうということは話が別だと
思いますので、根本の問題が解決しているかどうかは定かではありません。。)

CK@デジモノに埋もれる日々 @ckom
ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。



投稿者 CK : 記事URL | ブログ | | 2014/09/15 18:00


« あまとも通信 - フリーイングの1/4スケール IS箒 狐巫女Ver.が値下がり

トップに戻る

iPhone6を発売日にゲット! ひと言でいうとSHARPの端末みたいなiPhone(おい) »


▼ 関連記事 ▼



▼ コメント ▼

ご自由にコメントください(=゜ω゜)ノ  ▼ コメント入力欄を開く ▼
※管理人は多忙のためお返事はほとんどできません(スミマセン)。
スパムおよび本文と無関係なコメントは削除対象になる可能性があります。


▼ はてなブックマークのコメント ▼


▼ トラックバック ▼

このエントリーのトラックバックURL:

★コミックダッシュ! 10,000人突破ありがとうキャンペーン!(9/18~10/23)