如何禁止我的网站上整个公司?

时间:2020-03-06 14:19:45  来源:igfitidea点击:

由于我不愿讨论的原因,我希望禁止整个公司访问我的网站。使用gethostbyaddr()检查php中的远程主机名是可行的,但这会大大降低页面加载速度。大型组织(例如hp.com或者microsoft.com)通常具有IP地址块。无论如何,我有完整的列表吗?还是我受困于缓慢的反向DNS查找?如果可以,我可以加快速度吗?

编辑:好的,现在我知道可以使用.htaccess文件禁止范围了。现在,我如何确定给定组织的范围是多少?

解决方案

如果我们使用的是Apache,请查看.htaccess:.htaccess教程

.htaccess怎么样:

Deny from x.x.x.x

如果我们需要拒绝范围说:192.168.0.x,则可以使用

Deny from 192.168.0

主机名也是如此:

Deny from sub.domain.tld

或者如果我们想要一个PHP解决方案

$ips = array('1.1.1.1', '2.2.2.2', '3.3.3.3');
if(in_array($_SERVER['REMOTE_ADDR'])){die();}

有关htaccess方法的更多信息,请参见此页面。

现在要确定范围将很困难,大多数公司(除非它们有足够的实力)将像我们和我一样拥有动态IP。
这是我之前必须处理的问题,最好的办法是禁止主机名或者整个范围,例如,如果它们位于192.168.0.123上,则禁止192.168.0.123,不幸的是,我们将获得一些无论哪种方法,都是无辜的人。

我们可以访问实际的服务器配置吗?如果是这样,则取决于服务器,我们可以在配置中执行此操作。

有关一些可能有用的信息,请参见此线程。

继续使用gethostbyaddr(),但在高速缓存后面。我们只需要为每个IP地址解决一次,那么它就不会成为严重的性能问题。如果需要,可以从服务器日志中填充缓存,这样回访的用户甚至不会遇到一次性速度下降的情况。

如果我们正在练习安全的虚拟主机,则我们有防火墙。用它。

大型公司具有IP地址块,但即使是较小的公司也很少更改其IP。因此,有一种简单的方法可以在不降低性能的情况下执行此操作:

每月对日志中的所有IP进行反向查询,然后将该公司使用的所有IP放入防火墙中以作为拒绝。

一段时间后,我们将开始查看它们是否具有动态地址。如果是这样,那么我们可能需要为每次连接尝试进行反向查找,但是除非它们是小型公司,否则我们不必担心。

首先在whois.net上搜索公司。如果我们知道它们只是一个域,请执行whois查找。否则,请按关键字搜索它们拥有的域。

我们可以通过whois查询找出分配给公司的主要IP范围,然后相应地建立拒绝规则。

http://en.wikipedia.org/wiki/Rwhois
远程登录rwhois.arin.net 4321

这曾经工作。

我知道WikiScanner可以让我们搜索公司或者其他组织,然后列出属于它们的IP地址范围。举个例子,至少在WikiScanner看来,这是Google所有的IP地址。

根据HowStuffWorks的说法,他们使用的是" IP2Location"。

如果我们这样做的目的是使公司的人员访问网站时有些不便,请遵循上面的建议。但是我们将无法完全确保我们阻止所有访问,因为它们总是可以通过代理进行访问。而且如果其他公众都可以访问它,则必须担心archive.org,搜索引擎缓存等。

可能不是我们要找的答案,但这是准确的。

负载不应该放在网络服务器上,而应该放在防火墙上。

请注意,使用上述技术永远不可能完全禁止特定的公司访问网站。他们仍然可以使用代理服务器或者在家中查看站点。

如果我们绝对想控制谁有权访问,则应该只允许经过身份验证和授权的用户访问网站。