django页面被黑了 - 如何反应?

时间:2015-04-23 06:16:51

标签: django security nginx uwsgi

我的原始网页是http://www.stahlbaron.de/

从2天开始,http://www.joma-topflex.ru/指向我的页面。我意识到这一点并添加了ALLOWED_HOSTS = ['.stahlbaron.de'],但没有帮助。坏URL仍然指向我的页面。

我该怎么办?我使用nginx,uwsgi来部署页面。遗憾的是,Ngix没有deny www.joma-topflex.ru;选项。

1 个答案:

答案 0 :(得分:3)

有两种可能性:

  1. 副本的所有者实际上窃取了您的代码和数据库,这是不太可能的。这可以很容易地检查 - 只需在您网站上的某个页面添加更改,看看它是否出现在doppelgaenger上。如果副本是独立的,那么什么都不会改变。不要忘记使用Ctrl + F5来避免看到缓存的内容。

    如果是这种情况,您可以向副本hosting provider报告滥用行为。事实上,无论如何都应该这样做。

  2. 如果该副本只是您网站的代理镜像,则阻止其IP将解决问题。您可以通过修改配置来在Nginx中执行此操作:

    geo $bad_client {
        default                    0;
    
        78.47.49.3/32              1;
    }
    
    server {
        ...
    
        if ($bad_client) {
            return 403;
        }
    
        add_header X-Frame-Options SAMEORIGIN;
    
        ...
    }
    
  3. 这也是将标题X-Frame-Options设置为SAMEORIGIN(参见上面的示例)的一个好主意,这可以保证没有人会使用iframe在另一个域上制作您网站的副本。

    修改

    现在这很有趣。这里发生的是:一些(可能很久)以前有人从Hetzner购买了托管包,注册了域名www.joma-topflex.ru并指向了Hetzner给他或她的IP。正如您现在可能已经猜到的那样,知识产权是78.47.49.3。

    过了一段时间,这个人可能对项目失去了兴趣并停止向Hetzner付款。反过来,Hetzner将IP重新分配给新客户 - 您。但域名www.joma-topflex.ru从未被域名所有者指向另一个IP,这通常发生在被遗弃的项目中。

    所以,这里实际上没有坏人。 www.joma-topflex.ru的所有者可能甚至不知道他的域名再次运作。

    这里真正的问题是你的Nginx配置,它将你的服务器的任何请求代理到你的Django应用程序。您需要做的是明确将您的域设置为唯一可接受的服务器名称,如下所示:

    server {
        # Delete any other server_name you find around and add this:
        server_name www.stahlbaron.de;
    
        ...
    }
    

    有趣的是,您可以使用域名www.joma-topflex.ru,只要它指向您的服务器。例如,您可以向Nginx配置添加另一个服务器块,使用" www.joma-topflex.ru"设置指令server_name。并将其用于另一个Django应用程序,或者其他任何你喜欢的应用程序。

    编辑2:

    顺便提一下,域名joma-topflex.ru支付到2015.04.26,很可能不会延长。换句话说,你甚至可以什么都不做,问题将在两天内解决。