先日、運用している携帯サイトで「Vodafone端末だと動画をメールで転送されてしまう」問題が発生しました。
ファイルを有料会員コーナーに置いてあっても、メールで転送されてしまったら元も子も有りません。
原因を探っていくと、Vodafoneでは動画コンテンツに転送不可設定を埋め込めないことが判明。
ずっと転送を許可していたよ orz
それで、転送を不可にする為には…。
レスポンスヘッダの「x-jphone-copyright」で「no-transfer」を吐き出せば良いらしい。
なので、Apacheのhttpd.confで下記のように記述しました。
<Files ~ “\.3gp$”>
Header set x-jphone-copyright “no-transfer”
</Files>
これで解決…かと思いきや、「Header」が使えません orz
Apacheに「mod_headersモジュール」の追加が必要らしい。
追加インストールが可能らしいので、追加してみました。
cd /usr/local/src/apache_1.3.33/src/modules/standard/
/usr/local/apache/bin/apxs -c mod_headers.c
sudo /usr/local/apache/bin/apxs -i mod_headers.so
これでOKでしょう。
httpd.confを下記に書き換えました。
LoadModule headers_module libexec/mod_headers.so
AddModule mod_headers.c
<IfModule mod_headers.c>
<Files ~ “\.3gp$”>
Header set x-jphone-copyright “no-transfer”
</Files>
</IfModule>
さあ、文法チェック。
「Syntax error」orz
「LoadModule」でエラーになっています。
もう既にロードされてるらしい。
下記コマンドを叩いたら、やっぱりロードされています。
/usr/local/apache/bin/httpd -l
試しにrebootしてみてもロードされていました。
なので、LoadModuleの行をコメントアウトしたら、無事に再起動できました。
動画も無事に転送不可になりましたよ。
めでたし、めでたし。
Vodafone端末の判定ってやっぱりHTTP_USER_AGENTにj-phoneがあったらっていう方法が一般的なんですか?
新しい機種でもj-phoneって入ってるんですか?
機種判別は「USER AGENT」が基本でしょうね。
それで、新しい機種にはJ-PHONEは入っていません。
今は3パターンあります。
1.J-PHONE~
2.Vodafone~
3.MOT~
http://developers.vodafone.jp/dp/tech_svc/info/useragent.php
今でも他キャリアより多いのに、そのうち「SoftBank~」も加わるんでしょうね。
で、「USER AGENT」は偽装可能なので、なりすましを防ぐならIPアドレスも指定します。
http://developers.vodafone.jp/dp/tech_svc/web/ip.php
あぁやっぱりJーPHONEだけじゃないのね。
なんでこんな質問したかと言うと「USER AGENT」は偽装可能だからなのよ。
ちなみに対象のIP範囲が増えてるかどうか定期的にチェックして追加しとるんですか?だとしたら、めんどいねそれ。
IPアドレスも指定しているなら追加しないといけないですね。
ただ、携帯で一番めんどいのは端末情報の追加かな?
端末の種類毎に情報を追加しているので…。