First CHAppsWebアプリ

First CH Apps / 写真の位置情報チェック

写真の位置情報チェック

ページのURLを入れると、表示中の写真とWordPressの元画像(原寸)を組にして、Exifに撮影場所(GPSの緯度・経度)が残っていないかを調べます。

使い方・詳しい説明

スマートフォンで撮った写真には、撮影した場所(GPSの緯度・経度)が記録されていることがあります。WordPressは縮小画像を作るときにこの情報を消しますが、アップロードした元の画像(原寸)はそのまま残ります。ページに表示されている写真がきれいでも、元画像のURLを開けば撮影場所が分かる状態になっていることがあります。このページは、表示中の写真と元画像の候補を組にして、両方を調べます。

店舗・スタッフ紹介・ブログなど、写真を載せているページのURLを入れてください。1ページにつき写真20組(表示画像と元画像の候補)まで調べます。

見本の結果を見る(架空のサイト)

何を調べるのか

表示中の写真photo-768x512.jpg縮小時に位置情報は消えることが多い
元画像の候補photo.jpgアップロードしたままの原寸。残っていることがある

WordPressの縮小画像の名前(-768x512・-scaled)を外して、同じサーバーの元画像のURLを作ります。

この結果の読み方

調べるのはExifの緯度・経度のタグ(GPSLatitude・GPSLongitude)だけです。 両方が有効な値のときだけ「位置情報あり」にします。値そのものはサーバーからも返さず、画面にも出しません。

「未検出」は安全の保証ではありません。 調べたのは入力した1ページのJPEGの先頭20組です。ほかのページ・同じ写真の別サイズ・XMPなどExif以外の形式は調べていません。

元画像の候補は、WordPressの縮小画像の名前の付け方(-幅x高さ・-scaled)から作ったURLです。WordPress以外のサイトや、名前を変えたサイトでは候補ができません。候補が404なら、その名前の元画像は公開されていません。

画像を配信するサービスが、JPEGをWebPに変換して返すことがあります。その場合は「対象外」になり、元のファイルに位置情報が残っているかは分かりません。

SERVER PROCESSING — サーバーへ送るもの・保存するもの

送るもの: 入力したURLだけです。当社のサーバー(Cloudflare Workers)が、宛先の安全確認のためのDNS照会をしてから、そのページを公開GETで取得します(先頭512KBまで)。続けて、ページの中で見つかった写真と元画像の候補を1枚ずつ取得します。画像は先頭128KBだけを求め、1枚5秒・転送2回までで打ち切り、転送先ごとに宛先を確認します。社内ネットワーク・localhost・プライベートIP宛は取得しません。

保存するもの: ありません。URL・HTML・画像・結果のどれもデータベース(KV/D1)に書き込まず、処理が終わった時点でメモリから消えます。

返すもの: 写真のURL・状態(位置情報あり/未検出/確認できず/対象外)・理由だけです。撮影場所の座標や撮影日時の値、画像のバイト列、ページの原文は返しません。

回数: 1回の検査で最大4回サーバーを呼びます(5組ずつ)。同じ接続元からの呼び出しは10分あたり40回までです。

APIとして使う

POST /gazou-ichijouhou/api/check に JSON({"url": "https://example.com/", "offset": 0})を送ると、組の一覧と、offset から5組ぶんの判定を JSON で返します。offset は 0・5・10・15 です。