クッションをはさむ
直接Webサイトのページを表示しないようにと指示されることがあります。アダルトなWebサイトを管理している人は特に……ね。でもいきなり全ページで対応するのは難しいことではないかと。一応、ある日突然といった感じで某Ama****からページ表示前に年齢確認を行なうように求められた際に取った対策をサンプル掲載しておきます。
JavaScriptを埋め込んで対応
JavaScriptを無効にしている人にはどのような対策をしても回避する方法を探してくるから不毛なことを最初からしないと割り切って、JavaScriptでの対策を行ないました。幸いにも自分の管理しているWebサイトには、全ページにSSIでincludeしているファイルがあったのでそれを利用して<head>~</head>内に以下のJavaScriptを埋め込んでおきました。外部ファイルとしてファイルを用意して読み込むか、<script type="text/javascript"> ~~下記スクリプト~~ </script>というように記述して使ってください。
var CookieMC={ get:function(name) { var match=('; '+document.cookie+';').match('; '+name+'=(.*?);'); return match?decodeURIComponent(match[1]):''; }, set:function(name,value,expires,domain,path,secure) { var cookieTemp=name+'='+encodeURIComponent(value); if (typeof expires!='undefined') cookieTemp+='; expires='+new Date(expires).toUTCString(); if (typeof domain!='undefined') cookieTemp+='; domain='+domain; if (typeof path!='undefined') cookieTemp+='; path='+path; if (secure) cookieTemp+='; secure'; document.cookie=cookieTemp; } }; chkAgeKey='MediaClip'; inAgeKey='OK18'; mcexpires=new Date(); mcexpires.setFullYear(mcexpires.getFullYear()+1); /* 保存期間:1年 */ if (CookieMC.get(chkAgeKey) != inAgeKey) { chkAge=confirm('年齢を確認します。\n\n18歳以上の方はOKを、18歳未満の方はキャンセルを押してください。'); if (chkAge == false) { inAgeKey=''; window.location = "http://www.google.co.jp/"; } } CookieMC.set(chkAgeKey,inAgeKey,mcexpires,document.domain,'/');
CookieMC関数はcookieの保存と取得を行なう汎用的な関数です。このサンプルでは、利用者の利便性を考えて、1年以内の再アクセスならば認証を不要にするためだけに利用しています。もっと効率的なコードにできるかもしれませんが執筆時の現状はこれがベストなコードかなという認識です。
このJavaScriptを組み込みことで、ページの表示前に「確認を行なう」というワンクッションを用意できるわけです。メッセージを変えれば年齢確認以外にも使うことは可能でしょう。chkAgeKeyはサイト名にでも変更してくださいませ。キャンセルした時の飛び先は、本サンプルではGoogleにしていますが、別にどこにしても問題はありません。今さらながら思ったけれど、飛び先を http://www.losttechnology.jp/ にしておけばよかったかも?(苦笑)