videoタグで埋め込んだ.mp4をAndroid(らしき)端末が無限ループ状態でアクセスしてくる問題 ※追記あり
2014/09/15ここ数ヶ月、ときどき 妙なアクセス が目に付くようになりました。
いえ、スパムとかはいつもどおりなのですが(それはそれでどうかと・・)。
時々、アクセスログにこんな感じのログがズラーっと並ぶことがあるのです。
ブログ記事の中に含まれる 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で再生できなかったということと、
その際にアクセスが無限ループしてしまうということは話が別だと
思いますので、根本の問題が解決しているかどうかは定かではありません。。)
2014/09/15 [updated : 2014/09/15 18:00]

ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。
@ckom をフォローする
![]() « あまとも通信 - フリーイングの1/4スケール IS箒 狐巫女Ver.が値下がり | ![]() トップに戻る | ![]() iPhone6を発売日にゲット! ひと言でいうとSHARPの端末みたいなiPhone(おい) » |
▼ はてなブックマークのコメント ▼
関連記事
ピックアップタグ
- アニメ(391)
- GSR(287)
- ウマ娘(34)
- ライブ(51)
- イベント(159)
- コラボカフェ(28)
- 舞台挨拶(41)
- 先行上映会(19)
- トークショー(15)
- アニメ吐き出しメモ(10)
- バンドリ!(42)
- ガールズ&パンツァー(58)
- 少女☆歌劇レヴュースタァライト(47)
- ゾンビランドサガ(8)
- プリンセス・プリンシパル(15)
- スタリラ(24)
- コラム(168)
- ゲームプレイ日記(55)
- ワンフェス(11)
- コメンタリー上映(4)
- 岩浪美和(25)
- 大洗(9)
- 響け!ユーフォニアム(11)
- リズと青い鳥(8)
- RAISE A SUILEN(8)
- 艦これ(23)
- ストライクウィッチーズ(23)
- メイドインアビス(8)
- BLAME!(8)
- ヤマノススメ(6)
- ラブライブ!サンシャイン!!(10)
- HELLO WORLD(6)
- 宇宙よりも遠い場所(5)
- ヴァイオレット・エヴァーガーデン(8)
ブログ内検索
▼ コメント ▼
ご自由にコメントください(=゜ω゜)ノ※管理人は多忙のためお返事はほとんどできません(スミマセン)。
スパムおよび本文と無関係なコメントは削除対象になる可能性があります。
Android4.2~4.4のstagefright(メディアフレームワーク関連)、Chromeが該当するもよう。
コメントしましょう