MBUSTERの適用方法
マクロ検出およびブロック機能用ライブラリの実装
WASサーバーでの運用に必要なjava、js、png、jspファイルの適用が必要です。
MBUSTER連携用ファイルリストは以下の通りです。
- Mbuster.QF.jsp
- Mbuster.QC.jsp
- Mbuster_T.jsp
- MBusterAPI.java
- captcha.js
- fingerPrint.js
Explorer | カテゴリ | ファイルタイプ | 説明 |
---|---|---|---|
WASサーバー | 呼出し | java | MBusterAPI.java |
WASサーバー | 制御 | jsp | Mbuster_QC.jsp |
Mbuster_QF.jsp | |||
Mbuster_T.jsp | |||
WASサーバー | 制御 | javascript | mbuster_meta.js |
mbuster_api.js | |||
captcha.js | |||
fingerPrint.js | |||
その他 | その他 | その他ファイル | MBUSTER関連の静的ファイル |
連携方法
- ソースコードにMBUSTER連携ファイルを追加します。
- 連携を希望する位置で
MBusterAPI.callMBusterApiReject
関数を呼び出します。 - API通信結果(マクロ検出結果)に基づいた制御を実装します。
MBUSTER APIスクリプトの挿入と呼出し例
- MBUSTER関連
<script type="text/javascript" src="${pageContext.request.contextPath}/mbuster/resource/js/mbuster_meta.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/mbuster/resource/js/mbuster_api.js"></script>
- MBUSTER WEB連携
MBUSTER_API({
clientIP : ClientIP,
user_login_id : user_login_id
});
MBUSTER_API() 呼出し時のパラメーター
必須 | パラメーター | 説明 |
---|---|---|
必須 | clientIp | クライアントIP |
user_login_id | ユーザーログインID(利用不可の場合は空) |
⚠️
必須パラメーターを渡さないとAPIの呼出しができません。クライアントのIPを必ず引数に渡してください。
mbuster_meta.jsファイルの修正
const service_type = "http";
const macro_domain = "127.0.0.1"; // MBUSTERの呼出しドメイン
const macro_cookie_domain = '127.0.0.1'; // クッキー保存対象ドメイン(連携対象サイト)
const macro_port = "8180";
const g_groupName = "www.stclab.com";
const mbuster_info_url = {
T : "./mbuster/Mbuster_T.jsp", // ブロック
QC : "./mbuster/Mbuster_QC.jsp", // Captcha
QF : "./mbuster/Mbuster_QF.jsp" // FingerPrint(ブラウザチャレンジ)
};
const mbmhIo = true;
パラメーター | 説明 | 例 |
---|---|---|
request | クライアントリクエストHttpServerletRequest | HttpServerletRequest request |
response | クライアントHttpServerletResponse | HttpServerletResponse response |
groupName | MBUSTER登録ドメイングループ名 | mbuster.io |
loginId | ユーザーログインID(利用不可の場合はクライアントIP) | user_id |
MBUSTER APIリクエスト
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
String groupName = "www.stclab.com";
String userId = (String) session.getAttribute("login_id");
// 1. APIを呼び出し
String result = MBusterAPI.callMBusterApiReject(request, response, groupName, userId);
// 2. API結果に基づく制御
String tmp[] = result.split(":");
if(tmp[0].equals("E")) {
return true;
}
else if (tmp[0].equals("F")) {
return true;
} else if (tmp[0].equals("T")) {
RequestDispatcher dispatcher = request.getRequestDispatcher("/mbuster/Mbuster_T.jsp");
dispatcher.forward(request, response);
return false;
} else if (tmp[0].equals("QC")) {
request.setAttribute("clientIp", tmp[1]);
request.setAttribute("loginId", tmp[2]);
request.setAttribute("groupName", tmp[3]);
RequestDispatcher dispatcher = request.getRequestDispatcher("/mbuster/Mbuster_QC.jsp");
dispatcher.forward(request, response);
return false;
} else if (tmp[0].equals("QF")) {
request.setAttribute("clientIp", tmp[1]);
request.setAttribute("loginId", tmp[2]);
request.setAttribute("groupName", tmp[3]);
RequestDispatcher dispatcher = request.getRequestDispatcher("/mbuster/Mbuster_QF.jsp");
dispatcher.forward(request, response);
return false;
}
return true;
}
パラメーター | 説明 | 例 |
---|---|---|
service_type | APIサービスプロトコル(http / https) | http |
macro_domain | MBUSTER機器URL(IPまたはドメイン) | mbuster.co.kr |
macro_cookie_domain | クッキー保存対象ドメイン(連携対象サイトのアドレス) | www.stclab.com (opens in a new tab) |
macro_port | MBUSTER APIサービスポート(8180デフォルト) | 8180 |
g_groupName | MBUSTER登録ドメイングループ名 | www.stclab.com (opens in a new tab) |
MBUSTER APIリクエスト時の返却結果 パラメーター: result
項目 | 結果値 |
---|---|
ユーザー | "0" |
通信エラー | "E", "F" |
ブロック | "T" |
CAPTCHA | "QC" |
ブラウザチャレンジ | "QF" |
通信エラーまたはユーザーの場合、元のページを呼び出し、マクロの場合はフラグに基づいて制御します。 |