【当ソフトウェアについての概要と安全対策】
当ソフトウェアは、不在時のCGI(例えば掲示板など)への書き込みや、
(例えば宣伝可能サイトなど)複数サイトへの投稿、
サーバーのテストなどでの用途を想定としたソフトウェアであり、
HTTPプロトコルとInternetExplorer技術を用いて、
主にインターネットの利便性向上を目的としたツールです。
しかし、一方で不正な使い方をすると、
サーバー運営側にとっては、一転煩わしいツールとなってしまいます。
これは、勿論一般的に販売されている商品にも同様の事が言えます。
一方で有益なものでも、利用者のモラルによっては他者にとっては有益に
ならないものが大多数でしょう。
(落書きに悪用されてしまうスプレー缶などはもちろん、
ゴミのポイ捨てなどを考えればすべての商品は少なからず有害なものです)
しかし、
一サイト運営者である、自身としてこれ以上、
運営する掲示板などに不正な書き込みを増やしたくないという思いです。
もちろん、ソフトウェア作者としてもツールが不正に利用される可能性はすべて排除
していくつもりです。
そのようなことから、当ソフトウェアでは、
極端な短時間(分単位以下)やマルチポストでの書き込みについて制限を
設けています。
これにより、最近よく見かけます宣伝の連続投稿などのように、
処理が完全に自動で行われることを防いでいます。
このように、出来る限りの安全対策を行っており、
一方でユーザーの利便性の向上につながればと思っています。
しかし、それでも何らかの事情で、
サーバー運営者側で当ツールに対して
アクセス制限や、利用制限を設けたい場合もあるかと思います。
以下に方法を記述しておりますので、この内容でご実装ください。
【アクセス制限の方法】
当ソフトウェアからは、サーバー側へ2通りのアクセスが発生します。
1つは、当ソフトウェアがHTTPクライアントとなり、
HTTPプロトコルを用いてPort80にてサーバーにアクセスする
方法です。(以下、Sockベース)
もう1つは、ソフトウェアに搭載しているIEコンポーネントブラウザを
用いてアクセスする方法です。(以下、IEベース)
・Sockベースに対するアクセス制限
当ソフトウェアがHTTPクライアントなり、
サーバーに対するアクセス時(HTTPリクエスト時)に
以下のブラウザエージェント情報(HTTP_USER_AGENT)を
付加しています。
HTTP_USER_AGENT = AutoSender/1.0
以下にPerlおよびPHPでの簡単なアクセス制限サンプルを表記します。
//Perlの場合
$is_auto_ok=1; /* POST TIMEからの記録許可 (0・・制限 ,1・・許可) */
if("AutoSender/1.0" eq $ENV{'HTTP_USER_AGENT'})
{
/* Webリクエスト自動再生機 -POST TIME- 用の記述 */
if($is_auto_ok==0)
{
/* 制限する場合の処理など */
}
/* 通常の処理 */
}
$is_auto_ok=1; // POST TIMEからの記録許可 (0・・制限 ,1・・許可)
//PHPの場合
if("AutoSender/1.0" == $_SERVER['HTTP_USER_AGENT'])
{
// Webリクエスト自動再生機 -POST TIME- 用の記述
if($is_auto_ok==0)
{
// 制限する場合の処理など
}
// 通常の処理
}
以上
・IEベースに対するアクセス制限
当ソフトウェアに搭載のIEブラウザコンポーネントが
HTTPクライアントなります。
通常の人為的なアクセス
(つまりブラウザ閲覧時やSETメソッドでデータが付加されない場合)
は特にブラウザ情報が付加されません。
当ソフトウェアで自動的に値SETし、アクセスする場合に
その値SETしたページの特定のinputタグに対して情報を付加します。
INPUTタグ
TYPE "hidden"or"text"
NAME "autosender"
当ソフトウェアからの自動書き込みの場合、
この"autosender"という名前のINPUTタグのvalue値が"yes"になります。
つまり、アクセス制限はスクリプト上などでは
if(autosender.value=="yes")
{
// 制限する場合の処理など
}
CGI上では
GET、POSTしたデータ中に、
&autosender=yes&
といったデータで入ってきますので、
これを分岐条件にしてアクセス制限を行うことができます。
以上