神奈川の田舎でIT(システム備忘録)

2008-08-27 携帯画像の転送禁止

携帯向けWEBページで画像の転送禁止オプションを設定した。

画像をアクセス端末の待受サイズや、キャッシュ容量に最適化しているため動的に変換、出力している。

そのためDoCoMoau の転送禁止パラメータ

ImageMagick等で埋め込んで一度ファイルに出力するのではなく

出力時に動的に追加。

結局は画像のメタデータ等のヘッダ部にバイナリで直接埋め込んだ..

SoftBank ではC型端末ではファイルの拡張子を変更する必要があるらしいが

C型端末では既にうちのサーバーにはアクセスがない。

なので

httpヘッダだけで対応できた。

DoCoMo,auの転送禁止コメント

kddi_copyright=on,copy="NO"

これをどこに埋め込んだかというと

画像の先頭から20byte目に割り込ませた

これはImageMagickでコメントを追加したものを

バイナリで確認

(リトルエンディアンのためバイナリデータを見るのがややこしかった)

先頭20byte は JFIFのヘッダだった。

下記が追加したコメント部

"\xFF\xFE\x00\x1A"."kddi_copyright=on,copy=\"NO\""

FFFE はコメント表す識別子らしい

001A はコメント長

SoftBankのヘッダは

x-jphone-copyright: no-store, no-transfer, no-peripheral

無事3キャリの転送禁止が確認できた。

20byte固定で割り込ませてるが

画像の種類によっては、イリーガルなケースがあるのでは?

この変換処理ではGDで変換してjpeg固定なので問題ないかもしれないが...

先頭20byteに想定外のデータが来た場合はアラートを出すようにしたので

気づくはず