API参照
BotManager .NET AgentはページリクエストとAPIリクエストを検出するメソッドを提供します。
ページリクエスト検出適用
HTTPリクエスト時にマクロ活動を検出するにはBotManager.DetectPage()を呼び出します。
コード例:
using BotManagerDotNetAgent.Domain;
using System.Collections.Generic;
namespace MyApplication
{
public class ExamplePageHandler {
public void HandleRequest(object request, object response) {
// customIdを渡す場合
var params = new Dictionary<string, string> {
{"customId", "exampleCustomId"} // 場合によって選択的に適用可能
};
// 追加するparamsがない場合bool isAllowed = BotManager.DetectPage(request, response);形式で呼び出し可能
bool isAllowed = BotManager.DetectPage(request, response, params);
if (!isAllowed) {
// 検出された場合追加処理不要(自動Redirect)
return;
}
// 一般リクエスト処理
}
}
}
APIリクエスト検出適用
REST APIリクエスト時にマクロ検出を適用するにはBotManager.DetectApi()を呼び出します。
コード例:
using BotManagerDotNetAgent.Domain;
using System.Collections.Generic;
namespace MyApplication
{
public class ExampleApiHandler {
public void HandleApiRequest(object request, object response) {
// customIdを渡す場合
var params = new Dictionary<string, string> {
{"customId", "exampleCustomId"} // 場合によって選択的に適用可能
};
// 追加するparamsがない場合bool isAllowed = BotManager.DetectApi(request, response);形式で呼び出し可能
bool isAllowed = BotManager.DetectApi(request, response, params);
if (!isAllowed) {
// 検出された場合追加処理不要(自動Redirect)
return;
}
// 一般リクエスト処理
}
}
}
メソッド種類
DetectPageメソッド
DetectPageはブラウザでページ単位のリクエストを処理する時に使用されます。
説明:
- 検出されたリクエストに対してサーバーはHTTP応答ヘッダーの
Locationフィールドを通じてリダイレクトを実行し、これはHTTP標準リダイレクト方式で全てのブラウザでサポートされます。 - この方式はページ遷移が発生するため一般的なブラウザリクエスト処理フローに合わせて設計されました。
特徴:
- 主にページロード時に動作し、ブラウザがサーバーから返された
Location値を確認して自動でリダイレクトを実行します。 - 追加的に、クライアント側の設定なしで検出が動作するため簡単に適用できます。
メソッドシグネチャ:
// RequestとResponseのみ使用
bool isAllowed = BotManager.DetectPage(request, response);
// 追加パラメータ渡し可能
bool isAllowed = BotManager.DetectPage(request, response, params);
パラメータ:
request:クライアントリクエストオブジェクト(HttpRequest | HttpListenerRequest)response:サーバー応答オブジェクト(HttpResponse | HttpListenerResponse)params:検出に必要な追加情報(Dictionary<string, string>形式)- 例:
{ "tenantId": "exampleTenant", "domainName": "example.com", "customId": "user123" }
- 例:
戻り値:
true:検出通過、リクエストを継続処理できるfalse:検出ブロック、自動でリダイレクトが実行される
DetectApiメソッド
DetectApiはブラウザで非同期API呼び出し(例:XMLHttpRequest、fetch)を処理する時に使用されます。
説明:
- 検出されたリクエストに対してサーバーは応答ヘッダーに約束されたキー
X-BotManager-Locationを追加してリダイレクト情報を伝達します。 DetectApiはブラウザが非同期でAPIを呼び出した状況でも適切に動作するように設計されました。
重要事項:
- 非同期API呼び出しの場合ブラウザは
Locationヘッダーを通じたリダイレクトを自動で処理しないため、クライアント側でこれを手動で処理する必要があります。 - このために必ず**
botmanager-browser-agent**がブラウザに適用されている必要があります。botmanager-browser-agentはブラウザで非同期呼び出し(xhr、fetch)をフッキング(hooking)してX-BotManager-Locationヘッダーを検出しクライアント側で適切なリダイレクトを実行します。
botmanager-browser-agentが適用されていない環境ではDetectApiが正常に動作しない場合があります。
メソッドシグネチャ:
// RequestとResponseのみ使用
bool isAllowed = BotManager.DetectApi(request, response);
// 追加パラメータ渡し可能
bool isAllowed = BotManager.DetectApi(request, response, params);
パラメータ:
request:クライアントリクエストオブジェクト(HttpRequest | HttpListenerRequest)response:サーバー応答オブジェクト(HttpResponse | HttpListenerResponse)params:検出に必要な追加情報(Dictionary<string, string>形式)- 例:
{ "tenantId": "exampleTenant", "domainName": "example.com", "customId": "user123" }
- 例:
戻り値:
true:検出通過、リクエストを継続処理できるfalse:検出ブロック、X-BotManager-Locationヘッダーが応答に追加される(Browser Agentが処理)