管理界面的IP白名单

时间:2014-02-25 12:56:33

标签: javascript security

对于一个庞大的项目,我们将制作一个" superadmin"登录(所有其他管理工作直接在前端),你可以改变很多事情。

由于安全性非常重要,我一直在考虑只允许具有特定IP的人进行连接。有没有人知道做同样的网站,它是否过于保护,或者你能推荐另一种真正安全的管理工作方式吗? 只有在Chrome或Firefox中有一些有用的功能时,我们才能为特定的浏览器制作它。

仅供参考,前端是javascript,html和css

3 个答案:

答案 0 :(得分:1)

在客户端执行它是没有意义的,因为没有任何东西阻止攻击者修改/禁用你的JS。

因此,只有安全选项是服务器端。我自己用PHP系统做了这个。

更新:示例实施

在该项目中,我使用了GeoIP服务(如MaxMind的this one

function geoIPRequest($ip){
    $params = getopt('l:i:');

    if (!isset($params['l'])) $params['l'] = '<userIDtoMaxMind>';
    if (!isset($params['i'])) $params['i'] = $ip;

    $query = 'https://geoip.maxmind.com/a?' . http_build_query($params);

    $curl = curl_init();
    curl_setopt_array(
        $curl,
        array(
            CURLOPT_URL => $query,
            CURLOPT_USERAGENT => 'MaxMind PHP',
            CURLOPT_RETURNTRANSFER => true
        )
    );

    $countryCode = curl_exec($curl);

    if (curl_errno($curl)) {
        throw new Exception(
            'GeoIP request failed with a curl_errno of '
            . curl_errno($curl)
        );
    }
    return $countryCode;
}

$countryCode = geoIPRequest($_SERVER['REMOTE_ADDR']);

if(!in_array($countryCode, array('DE', 'DK', 'EU', 'GB', 'SE'))){
    header('HTTP/1.0 403 Forbidden');
    echo "You don't have access";
    exit();
}

以上代码改编自MaxMind网站上的示例代码

您当然需要根据您的用例进行调整。对我来说,具体国家已经足够好了。如果您需要将特定的 IP列入白名单,我建议您创建一个带有白名单IP的数据库表,然后在有人请求您的管理页面时进行查询。

答案 1 :(得分:1)

如果您可以放心,所有“超级拉丁语”将具有静态IP地址,并且不会因为他们的IP在半夜发生变化而无法使用应用程序,那么它可以提供良好的保护。

其他方法(类似于您提到的方法)是VPN,连接到VPN后的用户将拥有私有池中的IP地址,并且您的应用程序只接受来自该池的连接(更好的是,您可以创建apache / nginx vhost for superadmin应用程序仅在VPN ip上侦听。

VPN接近的另一个积极方面是,除了过滤访问权限之外,您还要保护流量。

答案 2 :(得分:1)

我不得不说,这听起来不是一个很棒的主意

任何真正的安全性传统上都需要服务器组件,建议如下:

a)通过https

提供所有登录页面

b)包括服务器技术,如ruby / php,以执行以下操作:

摘要式身份验证 - &gt; http://en.wikipedia.org/wiki/Digest_access_authentication

基本上是

存储在db中的登录详细信息(确保只在db中存储密码哈希+ salt !!!)

php / ruby​​将登录详细信息与db log in details进行比较

经过身份验证后,将此身份验证状态存储为摘要cookie

请参阅此处了解php实现:http://www.php.net/manual/en/features.http-auth.php

但请认真请不要使用客户端实施的安全性,这是一个坏主意

了解更多安全问题和想法,请注意此处 - &gt;

http://w3af.org/

http://w3af.org/understanding-html5-security

也是非常好的资源,用于了解邪恶和好黑客是多么令人惊讶,以及如何阻挠他们的计划

http://www.lulu.com/spotlight/owasp关于常见安全漏洞的好书(可能是免费的在线pdfs)