今日は久々に?時間が空いたのでレンタル掲示板の海外からの投稿制限とそれを回避するための対策を本格的に行いました。
↓に書いたようにまず、掲示板スクリプトのすべての<form>のACTION部分のURIすべてにPATH_INFOを付与しました。
<form action=”bbs.cgi/USERNAME” method=”POST”>
といった感じ。
それとPATH_INFOを付与すると掲示板内で相対パスで指定しているURI部分(IMGタグとか)がPOST後に
http://bbs.ohtanz.com/bbs.cgi/USERNAME/images/image.gif
みたいになってしまうのですべて絶対パスに修正。
ついでに日本語投稿のみに制限する機能のON/OFFを環境設定画面から行えるように修正。
次に.htaccessにmod_rewriteの記述を追加
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST [NC]
RewriteCond %{REQUEST_URI} ^\/bbs.*\.cgi.*
RewriteCond %{PATH_INFO} !^\/hogehoge$
RewriteCond %{REMOTE_HOST} !.*\.ohtanz\.com$ [NC]
RewriteCond %{REMOTE_HOST} !.*\.nifty\.com$ [NC]
RewriteCond %{REMOTE_HOST} !.*\.bbtec\.net$ [NC]
RewriteCond %{REMOTE_HOST} !.*\.hyogo\.h555\.net$ [NC]
RewriteCond %{REMOTE_HOST} !.*\.jp$ [NC]
RewriteRule ^.*$ - [F]
・REQUEST_METHODがPOSTで
・REQUEST_URIが/bbs**.cgiで
・PATH_INFOが/hogehogeではなく(特定ユーザーを除外)
・REMOTE_HOSTがohtanz.com/nifty.com/bbtec.net/hyogo.h555.net/その他JPドメイン
ではない場合は403エラーを返す
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST [NC]
RewriteCond %{REQUEST_URI} ^\/bbs.*\.cgi.*
RewriteCond %{PATH_INFO} ^$
RewriteRule ^.*$ - [F]
・REQUEST_METHODがPOSTで
・REQUEST_URIが/bbs**.cgiで
・PATH_INFOが空
の場合も403エラーを返す
という2つの制限を仕掛けました。
かなりイイカンジです(*’ー’)