404で延々とクローリングされる、これはなに? → /data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7

投稿者: Anonymous
xxx.xxx.xxx.xxx - - [16/Mar/2015:11:05:16 +0900] "GET /data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 HTTP/1.1" 404 162 "-" "Wing/2 (GM 1.3.5)" "-"
xxx.xxx.xxx.xxx - - [16/Mar/2015:11:05:41 +0900] "GET /data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 HTTP/1.1" 404 162 "-" "Wing/2 (GM 1.3.5)" "-"
xxx.xxx.xxx.xxx - - [16/Mar/2015:11:06:09 +0900] "GET /data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 HTTP/1.1" 404 162 "-" "Wing/2 (GM 1.3.5)" "-"
xxx.xxx.xxx.xxx - - [16/Mar/2015:11:08:39 +0900] "GET /archives/data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 HTTP/1.1" 404 53839 "-" "Mozilla/4.0 (jig browser web; 1.0.4; F09A3)" "-"
xxx.xxx.xxx.xxx - - [16/Mar/2015:11:09:14 +0900] "GET /data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 HTTP/1.1" 404 162 "-" "Mozilla/4.0 (jig browser web; 1.0.4; N03D)" "-"

nginxのaccess logです。あるクローラーが404にも関わらず延々と走ってきます。

「R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7」で検索してみると、透明な最小git画像?のdata URIのようでした。
Smallest data URI image possible for a transparent image

これらを404で受け付けたくないので、403を返しておけば問題ないでしょうか?それとも何か意味がありますか?

解決

data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7はdataスキームによる埋め込み画像です。<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">で、対応しているUA(ブラウザ)であれば画像が表示されます。

対応しているUA(ブラウザ)であればというのがポイントで、対応していないUAだとそれを普通にパスと見なしてサーバにリクエストを投げる場合があります。その場合は(偶然の一致が無い限り)サーバ上では404になるでしょう。

運用上404と403に重要な区別があるなどの事情があれば403になるようにしても問題ありません。一般論であれば、そうしたところでリクエストが減るようなものでもないので意味はありません。このようなリクエストを減らしたいのであればコンテンツ側でブラウザを判別し埋め込み画像を使うかどうかを変える必要があります。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *