25 lines
794 B
JavaScript
25 lines
794 B
JavaScript
/** 从实例页打开前端远控页;允许模块显式列举,网关会话仍由远控页和后端建立。 */
|
|
var e = new Set([
|
|
`kky_ecs`,
|
|
`mf_cloud`,
|
|
`remf_cloud`,
|
|
`mf_dcim`,
|
|
`remf_dcim`,
|
|
`remf_finance`,
|
|
`remf_finance_dcim`,
|
|
`remf_finance_common`,
|
|
`idcsmart_common`,
|
|
]);
|
|
// 实例编号限制为最多十位的正整数字符串,拒绝任意路径/查询片段注入。
|
|
function t(t, n) {
|
|
let r = String(t);
|
|
if (!/^[1-9]\d{0,9}$/.test(r) || !e.has(n))
|
|
throw Error(`实例信息无效,请刷新后重试`);
|
|
return `/remote-console?hostId=${r}&module=${n}`;
|
|
}
|
|
// 新窗口不保留 opener,且不附带 Referer;这里不传递 JWT 或远控密码到 URL。
|
|
function n(e, n) {
|
|
window.open(t(e, n), `_blank`, `noopener,noreferrer`);
|
|
}
|
|
export { n as t };
|