【IT】[続報]メルカリが個人情報流出で新情報、実際は「有効期限0秒のキャッシュ」 [6/27記事]26日までの説明とは一部異なっている [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
http://itpro.nikkeibp.co.jp/atcl/news/17/062701776/?itp_side_ranking
大森 敏行=日経NETWORK 2017/06/27
メルカリは2017年6月27日、メルカリWeb版での個人情報流出に関して新たな情報を同社の技術ブログで公開した。CDNのキャッシュの動作について、CDNプロバイダーと仕様について確認し検証した結果だという。同月26日までの説明とは一部異なっている点があり、ブログエントリを加筆修正した。
メルカリは当初、「Expiresヘッダーが過去の日付であっても、Cache-Controlヘッダーが存在している場合、Expiresヘッダーの情報は考慮されない仕様になっていた」と説明していた。しかし、この内容が正確ではなかった。
正確には、Expiresヘッダーは、Cache-Controlヘッダーにmax-age(キャッシュの有効期限を設定するキー)またはs-maxage(共有キャッシュの有効期限を設定するキー)がないときに機能していた。ただし、Expiresヘッダーに過去の日付が指定されていた場合は、このCDNプロバイダーではキャッシュの有効期限が0秒として扱われていたという。つまり、メルカリのケースでは「有効期限が0秒のキャッシュ」が存在していたことになる。
キャッシュの有効期限が0秒になっていると、CDNからWebサーバーへのリクエスト処理を実施している間に同じURLに対してリクエストが発生すると、Webサーバーからの最初のレスポンスを待ち、二つ目以降のリクエストに対しても同じレスポンスを返す仕様になっていた。
このため、あるユーザーがWeb版メルカリにアクセスし、メルカリのWebサーバーがレスポンスを構築している途中で、別のユーザーが同じURLにアクセスした場合、あるユーザーの情報を含むコンテンツが別のユーザーに見えてしまったという。
(くわしくはソースで) 要するに設定エラーだから俺は悪くないって言いたいのか? 技術の検証はもちろん必要だろうけど、客には何の関係もない話 同時アクセス検証やってれば防げたってことじゃねーか
ただのバカ キャッシュのテストをしてないとかバカかよ
アホプログラマーが多いのかね
ここ新卒多いよね、つまりそういうことです 馬鹿みたいw
cdnみたいなもんに個人情報通すかねw
ブラウザの仕様とかそんな問題じゃねーよ 騒動を知っても辞めないようなのは、もう放置で良いだろ >>1
URLの ?itp_side_ranking は除いた方がいいかも あーこれね
CDNをExpiresするとCache-Controlが落ちてmax-ageが過ぎてURLになるんだよな
初心者がよくやる奴だよwww >>1
いやだから何で他人がWEB経由で見られるん?
ヘッダがどうのキャッシュがどうのじゃなくてさ。 本来no-storeにすべきコンテンツを0-TTLに設定しちゃったのね。複数サーバで負荷試験しないと発覚しないバグ。本番環境でABテスト出来る運用を取るべき。 >>17
ああ、実環境を用意しないと発言しないバグってやっかいだよな
似たようなのにポインターがヌルでエクセプションしちゃうバグとかもあるよな >>18
とりあえず、ガッ
オリジンからのレスポンスが過去のExpireヘッダ返すのはそもおかしいので、すぐ直しとけって感じ 超最先端の新発明の技術なのにテストもしなかったのか
もっと慎重に
枯れた技術も大事に >>19
自分で書いて気付いたけどメルカリのリバースプロキシが悪さしてるのか >>2
俺は悪くないってどこに書いてあるんだ。
この間抜け。 >>8
馬鹿はお前だ。
1を見て、理解できないオツムなら書き込まないことだ。 と思ったが、個人情報を扱ってるページにキャッシュなんか使ってなかった。
いったいどんな個人情報をCDNに流してんの? >>16
負荷分散のために、写真とかページとかのアクセスがあると、CDNがサーバからデータを取って来て、それを渡していた。
アクセスはCDNで済む範囲なら、サーバに負荷はかからない。
CDNに無い場合はサーバに行くが、一つの写真やページについてのアクセスは一回で済むから、サーバの負荷は低くて済む。
で、この時、このページなり写真が出品の情報のようなものならば何にも問題はない。
でも、例えば応札したとかなら、先に応札した人のページと2番目に応札した人のページは内容が別にならないといけない。
だから、そういう、一人一人内容が違う可能性があるページをサーバがCDNに渡すときには、渡したら終わりで、次の人に渡さないように有効期限を設定する。
しかし、その有効期限が最初の人へページを渡そうとしていた時にすでに期限切れだったらどうなるかという話。
一般的な認識だと、そもそも最初の人に有効なページが存在しないので、誰も応札したページを見れないことになる。
これなら、個人情報は出ていかない。
実際は、保持時間0秒のページがCDNの中に生じた。
保持時間0秒だから、ほぼ同時にアクセスがないと問題ないが、ほぼ同時に最初の人の応札と2番目の人の応札があった場合、2番目の人には最初の人の個人情報が入ったページが送られることになる。
わかるかな。 なんで動的なコンテンツをキャッシュすんだよ?
おじさんにはわからん。 >>9
この場合のCDNはロードバランサ役だから、普通の使い方ではない。 最近、やけにCM打ってるよなぁ、なんだかんだで利用者増えて儲かりまくってるのかな? >>1
仕様もクソも関係無く、マニュアルをちゃんと読まないからの設定ミスじゃん 0秒て確認して漏れてるよって通報したユーザー大統領になれるな >>30
だからキャッシュするつもりはなかったっつーの。単にCDN通したかっただけ。 >>33
意図してキャッシュしたわけではない。
有効期限がCDN到着時に、期限切れとなっているコンテンツは保持時間0秒のキャッシュとするという仕様なんだろ。 >>35
間違っているわけでは無いさ。
メルカリのサーバが渡してるページの大半は同一コンテンツで、動的コンテンツは一部だ。
動的コンテンツで、個別のコンテンツだけデリバリーしないようにしてれば、後はCDNで配って問題無い。 >>40
アホはお前。CDN=キャッシュするためのものと思い込んでるんだろ?レベル低っ。 >>44
まぁ技術の進歩についてけないおじさんは、おとなしく汎用機の面倒でも見ていてくださいw >>43
一緒くたになんかしてないだろ?
CDNの動作がわからないなら、お前さんには話が付いていけない話題なんだから、寝てな。 >>47
メルカリみたいに、月間アクティブユーザが100万とか1000万のオーダーになると、物理的な戦いに近くなる。 >>46
一緒くたじゃん。それでこんなことになっちゃったんだろ。 >>14
用語が与えられてそれを使って解答しろっていうテスト問題で、全然解らなかったときに書いた解答みたい。 >>49
お前はサバのレベルとCDNのレベルを区別できてないのな。
サバのレベルでは大概のページは動的なページで、個別のコンテンツに区別はないよ。
まあ、お前さんにはわからない話だ。 CDNは一昔前は静的コンテンツを効率的に配信するために使われていたけど、
最近はミドルマイルのレイテンシを最適化するためのソリューションとして使うケースが増えてる。
ゆえに動的コンテンツもCDN経由で配信するという当たり前の判断。
この知識がないやつが、え?なんで一緒にするの?て無知を晒しているのが現状。 >>52
馬鹿は、わからない。で良いのに、なんで食ってかかるのかね。 ブラウザ変えて同時になんかやると昔はおもしろいことになった。 >>52
で、こういうことになるわけですよ。ざまあ。 最近始めたけどメルカリって10%の手数料は取るけど馬鹿みたいにポイントばら撒くね
リサイクル店じゃほとんど値が付かないような物もサクサク売れるのは気持ちいいよ >>56
まぁお前みたいなレベルの人間がうちのエンジニアに居ないことを祈るわw 意味不明の技術話で煙に巻こうって魂胆がミエミエ
仕掛けた方もバカで無知でメルカリキチガイ巣窟
運営もゴロツキかヒッピー集まり トラブルのスレで唐突に始まる謎のメル〇リ上げ。工作員さん、深夜までご苦労様ですw >>63
同時アクセステストでこの問題が見つかるとなんで思うの? よく分からんがCDNに個人情報があるってことか?
んな事ある訳ないな。
キャッシュ0秒ならキャッシュの意味ねーだろーし 大規模サイトでサクサク実現するには、ベースページごとCDNに乗せて可能な限りCDNにキャッシュさせるのが基本。
今回の問題はオリジンから過去のコンテンツが返ってくるという矛盾した状況で、CDNがTTL切れのキャッシュを返す仕様になっていたんじゃまいか(テキトー)
ガチでウェブ最速目指してないとカスリもしない障害じゃないのか。メルカリいいぞもっとやれ 安倍晋三「同一労働同一賃金が実現すれば、非正規の時にはなかった責任感ややる気が正規になって生まれていく!!」 >>64
俺の事かな?
プログラミング関連の話は分からないからメルカリの話しただけだよ
別に上げたつもりはないし今回みたいな不祥事でどうなろうと知ったこっちゃないw 普通こういうのの管理ってデータベース使うんじゃね? >>48
フロントサーバー4台+CDNで事足りるだろ。
バックエンドは別として >>71
自称高レベルなエンジニアが
簡単な設定さえできずにミスったのがこのざま。 >>71
む、また数年前で知識が止まってるやつが増えたのか。やれやれ。 >>67
0-TTLだとしてもCDN上でキャッシュはすぐ消えるわけじゃなくて、もしキャッシュが残っていた場合はオリジンとのやり取りはIf-Modified-Sinceヘッダのやり取りのみでコンテンツはCDNのデータが再利用される。
つまりオリジンはデータを送る必要がなくそのキャッシュまだ最新wwwてヘッダで通知するだけで良いので負荷が減る。 メルカリってバカがバカに安物売るには良いサイトだが手数料も微妙だから生き残れないだろな
ヤフオクから客取ってこなきゃじき終わる
ヤフオクでハイブランドや骨董を取り扱ってるガチ勢連れてこなきゃダメ >>59
うわ、横レスだけど、こんなこと書いてる人が居るような会社とは契約しないわw >>78
ユーザーサポートはメルカリのが圧倒的に手厚い
というかヤフオクはユーザーを舐めてるにもほどがある
問い合わせすらわざとさせないように相当わかりにくくしてる
所詮チョン企業
それだけに今回の件は痛いね
まあメルカリも目くそ鼻くそなんだけど >>78
ヤフオクもワンプライス出品でプレミアム会員じゃなくても出品できるもんね
良い値で売りたい物はやっぱりヤフオクだろうなぁ
個人的には匿名配送をヤフオクでも簡単にできるようにしてほしい お前ら、所属企業名記載の上コメントかけよ。
アホいう企業は、RFP選定から外すから >>78
ヤフオクは低価格帯のものが売れにくい
あとそもそも圧倒的に人口少ない
両方使い方が違う >>1
非合法グレーゾーン非道徳なシノギしてる時点でお察し
YahooBBであくどい手口してたソフトバンクが今でも犯罪幇助してるやん? >>76
お前みたいなんがこういう事故を起こすのさ キャッシュしちゃいかんものをCDNを通したらいかんだろ。
アホが設計するからこうなる。 >>86
自称高レベルエンジニア君がいまはあたりまえー!とかいって発狂しだすぞ お漏らししたメルキャリさんは今の技術をものに出来てないってことでいいんです? CDNを「静的コンテンツをキャッシュすることで読み込みを高速化するためのもの」としか考えてない奴は、
個人情報入りのコンテンツをCDN通さないという判断した挙句、DDoS攻撃食らって、
は?なんでCDN通してないの?馬鹿なの?て言われるパターン。 >>25
ちゃんとテストで確認しないプログラマーさんお疲れ様
普段からテスト書かないんだね君 長々と書かれているけど、要するに「事前評価ロクにやってませんでした」って話やね 難しいこと言ってるように見えるだろうけど
初歩的だから ここ読んでも全く解らないんけど、個人情報のマイページの所が
アクセスした人に見えちゃってて、その時アクセスされてなければ
今はもう大丈夫で、合ってる? 結局Expiresに1秒前を指定するのはよく使われてたかもしれないけど
実装のUndocumentedの動作に依存していたもので
Cache-Controlにprivateを指定しておかないといけなかったってことかな? >>94
でもキャッシュの問題じゃねーし。
二つ目以降のリクエストに対して同じレスポンスを返す
のが駄目なんであって、0秒キャッシュになってても良いんやで?
この件ではそうなった、だけでそもそも対応してたら問題ないんだし。
まぁというか、他にもペネトレーションすれば色々出てきそうなとこだな。
理解できてないのに他人を卑下するのやめよーな? Expiresヘッダが過去の場合、暗黙的に0秒キャッシュにするって仕様が直感的じゃないな。CDN選定が悪かったね。 >>99
そう言うことらしい。
結局のところcache-controlもexpiresもクライアント用のヘッダであって、それに対して各サーバーサイドのキャッシュ機構がどのように振る舞うかはしっかり確認しないといけないということ。
正直、no-cacheと一秒前expiresを指定しても限られた条件でキャッシュが生じるというのはかなり罠だとも思うけどね… でも他のサイトでもたまーに他人がログインしたアカウントに繋がることあるよな
昔Amazonでもあったわ パラメータによる挙動の違いを適切に理解していなかったってことだろ キャッシュの問題なら、
大量に個人情報が流出する可能性なんて無いわな。
閲覧できる可能性の件数と、
実際に閲覧できる件数は違うからね。
複数の条件をクリアしても閲覧できるのは数件だけ。 >>98
メルカリのマイページがどうなってるか知らないけどマイページに限らず
同じURLで複数の人がアクセスするページにパーソナライズされた情報が
表示されるページ全部ではないかな
Web版だけってことだからたとえばオークションのページにWeb版だと
なまじスペースが確保できるもんだからパーソナル情報が表示されてるとか
今はとりあえず元の問題が無かったCDNに戻したので当時アクセスされて
なかったら大丈夫みたいね この手のやつってネット直販とかで必ず実装されてるやつでしょ
メルカリだからって事情はほとんどないんでしょ >>1
ソースを詳しく見てもわからなそうだ。
いちいちソース解析を要求させる>>1に脱帽 移行前のCDNは設定でキャッシュ制御
移行先のCDNはページヘッダーでキャッシュ制御
移行前の方が設定楽な気がするがどうなんだろ >>28
馬鹿?
新しかろうが古かろうが目的に沿ったソリューション使えばいいんだよ。
今回なんか見事にミスマッチじゃねーか >>92
そもそも個人情報入りのコンテンツをキャッシュしようのが頭おかしいだろ。 そもそもCDNですらcache-control:no-cacheとno-storeを混同してるものが存在してる。 バグではなくて設定の問題みたいだけど
そういうキャッシュがクライアントに戻される設定ってどういう使い道があるんだろう ■ このスレッドは過去ログ倉庫に格納されています