Tinder スタイルの出会い系アプリを使用しているときに、相互に「いいね!」をした後に関係者と連絡が取れるアプリの 1 つであるが、プレミアム プランを宣伝するために、ぼかした写真を使ってあなたを紹介していることに気づきました。あなたのプロフィールの「いいね!」ボタンを押した人たち。
いくつかの照合を行った後、ぼやけた写真は実際のアカウントのものであることに気付きました。つまり、一般的な画像やプレースホルダーのセットではありませんでした。
写真にぼかし効果を適用した例
あまりにも明白に思えたので、ブラウザの開発者コンソールを開き、CSS コードにアクセスして疑いを確認しました。彼らがそんな単純な間違いをするはずはなく、私はそう思いました。彼らは単純な CSS フィルター: ぼかし を使って写真のアイデンティティを保護しているのです。
.hidden-image { filter: blur(4px); }
実際の画像はこのアプリの CDN によって提供され、フィルターが適用されて非表示になっているため、誰があなたを気に入ったかを知るには、フィルターを削除するだけで済みます。
残念ながら、画像や URL 構造、API 呼び出しなどから他のデータを取得することは不可能でした。名前もプロフィールも、プロフィール写真以外の他の情報もアクセスできませんでした。
確かに、これはアーキテクチャ上の間違いでした。CSS を使用すると、フロントエンドで画像を非表示にするのが非常に簡単であることは事実です。ディスク領域を節約し、バックエンドでの処理時間を回避できますが、より良いオプションは次のとおりです。すべてのアカウントの汎用画像のセット。
もう 1 つの代替案は、ユーザーがメインのプロフィール画像を更新するたびにサムネイル (および形式の変更、例: webp などの変更) を自動的に生成することでした。もう少し多くのスペースを消費しますが、実際の画像を安全に保ち、各ユーザーのエクスペリエンスをパーソナライズします。
このバグを悪用するために、小さな Javascript スクリプトを作成し、それを拡張機能に統合して、ページに入るたびにブロックを解除するプロセスを自動化しました。
開発者側のこの小さな見落としは約 2 年間続きました。現在は修正されているため、主要な出会い系ページでバグを検索しようとしても見つからなくなります。これが私がこのバグについて投稿することにした主な理由でもあります
アプリケーションは、UI の残りの部分をほぼそのままにして、Web バージョンのコードを変更し、アカウントごとに難読化されたサムネイルを作成することを選択しましたが、それをバックエンドから処理するため、実際の画像を取得することは完全に不可能です.
あなたもこれを利用していましたか?ウェブサイトの名前を知っている場合はボーナスポイント。
以上が出会い系アプリのコードのエラーを利用してしまいましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。