バージョン0.9.16をリリースしました
定例の不具合修正に加えて、このスクリプトは、その性格上いわゆる「踏み台」として利用される可能性があるわけですが、その可能性を軽減する対策を考えてみました。
新規インストールの場合は、以下は無視して設置手順へ。
バージョン0.9.9及びそれ以前から更新される場合は、まずはこちらをご覧ください。また、バージョン0.9.12及びそれ以前から更新される場合は、こちらの注意事項もあわせてご確認ください。
主な不具合修正
- META要素の「refresh」の処理について、遷移先のURLが取得できていない場合がある不具合を修正。
- タグの属性名がホワイトスペースで区切られていない場合に、属性の処理が正しく行われていなかった不具合を修正。
- スクリプトの設定パラメータを格納したINPUT要素について、不必要なパラメータまで格納していた不具合を修正。
アクセス制限について
このスクリプトは、その性格上いわゆる「踏み台」として利用される可能性があるわけですが、その可能性を軽減する対策を考えてみました。いずれも設定ファイル(Config.inc.php)での設定で、詳細は設定ファイルのコメント欄を参照ください。
なお、各設定項目はデフォルトのままでは無効ですので、適宜設定いただくようお願いします。
ひとつはモバイルキャリアのネットワーク以外からのアクセスを禁止する設定です。ただし、これを設定すると、スクリプトの管理者がPCなどからの確認作業を行うこともできなくなる筈なので、この対象外とするIPアドレス範囲を指定することができるようにしてあります。
なお、以前までのバージョンにはUser-Agentによるアクセス制限の設定がありましたが、User-Agentは偽装可能なためこれは廃止します。携帯端末以外からのアクセスを禁じる場合はこちらを代わりに利用してください。
なんらかの理由で上の設定を利用したくない(一般のPCからのアクセスも許可したい)場合には、DNSBLに登録されているIPアドレスからのアクセスを禁止する設定を利用してください。踏み台にされる可能性は高まりますが、いわゆる「多段串」としての利用は抑止することができると思います。ただし、DNSBLの中にはモバイルキャリアのプロキシが登録されてしまっている場合もあるため、モバイルキャリアのネットワークからのものとみなされるアクセスについては、この確認は行いません。従って、上の設定と併用することは無意味ですのでご注意ください。
これを利用する場合は、PEARのNet_DNSBL、及びその依存パッケージであるNet_CheckIPが必要になります。各パッケージをインストールするか、pearpack.zipに収録されているものを利用ください。
なお、DNSBLへの問い合わせはそれなりの時間を要するため、セッションを初期化する際、つまり初めてのアクセスの際にのみ行い、以降の継続的なアクセスの際には行いません。また、セッション機能を無効にしている場合、これは利用できません。もし、セッション機能を無効にしていて、これを利用される場合はpc2m.phpを改造してください(不明な場合ご相談ください)。
この他、ロボットによるSPAM送信を回避する目的で、セッションを初期化する際に、リモートサイトへのフォーム内容の送信を行うためのパラメータがリクエストに含まれている場合はリクエストを無効にする措置を講じています(初めてのアクセスでいきなりPOSTはあり得ないだろうということ)。なお、これもセッション機能が有効な場合のみの動作です。
取り急ぎ以上を考えてみましたが、アレでこうされてたりすればスリ抜けられたりするわけで。
他になにか有用な対策をご存知のかたは是非お知らせください。
2006/06/02
トラックバック
このエントリーのトラックバックURL:
http://www.rcdtokyo.com/mt/mt-rcdtokyo5428-tb.cgi/765