使用代理服务器时阻止服务访问

时间:2020-08-10 08:54:54

标签: javascript express security proxy

我偶然发现了棘手的问题。可以说我拥有一项服务,该服务仅在用户被其域列入白名单时才能访问。

因此用户可以获取要放在其网站上的链接

<script src="example.org/widget/en">

打开网站链接后,该链接就会执行,并且我的服务器会验证域是否被列入白名单。

const starter = async (req, res, next) => {
    let domain = tools.getDomain(req);
    if (domain === false) {
        res.status(404).end();
        return false;
    }

    const found = await client.get(domain).catch(err => { console.log("error", err) });
    if (found !== undefined && found !== false && found.whitelisted !== false) {
        res.setHeader("Content-type", "text/javascript");
        res.charset = "UTF-8";
        // send starter content
        res.end();
    } else {
        res.status(403).end();
    }
};

到目前为止,它运行良好,但是其中一个用户找到了一种绕过该方法的方法。 他所做的就是获得对他的域的访问权限,然后创建了代理服务器并与n个其他人共享访问权限。因此他们通过他的代理服务器连接到我的服务,我无法检测到该服务器端。

检测这种实践和关机服务的方法是什么?

我一直在想像在理论窗口中那样进行局部检查。位置不能被覆盖。因此,例如,一旦授予访问权限,就发送脚本检查父对象的window.location(iframe情况),然后将其发送回服务器进行第二次验证。

还是有更适当的方法来解决该问题?

0 个答案:

没有答案