2008-08-27 携帯画像の転送禁止
携帯向けWEBページで画像の転送禁止オプションを設定した。
画像をアクセス端末の待受サイズや、キャッシュ容量に最適化しているため動的に変換、出力している。
ImageMagick等で埋め込んで一度ファイルに出力するのではなく
出力時に動的に追加。
結局は画像のメタデータ等のヘッダ部にバイナリで直接埋め込んだ..
SoftBank ではC型端末ではファイルの拡張子を変更する必要があるらしいが
なので
httpヘッダだけで対応できた。
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に想定外のデータが来た場合はアラートを出すようにしたので
気づくはず
コメントを書く