阻止IP地址访问网站的Apache设置

14

有人尝试访问像

//mysqladmin//scripts/setup.php

这样的页面,这是黑客攻击尝试吗?

如果是,我该如何阻止他们的IP访问我的网站?

通过htaccess或其他方式?

2个回答

27
作为对那些仍然来到这里的人的更新,Order Allow Deny 在 Apache 2.4 中已经被弃用,应该使用 Require
一个例子是使用 Allow from all 来拒绝只有 IP 地址为 1.2.3.4 的访问。
<RequireAll>
    Require all granted
    Require not ip 1.2.3.4
</RequireAll>

一个例子是使用Deny from all来只允许IP地址为1.2.3.4的访问。
<RequireAll>
    Require all denied
    Require ip 1.2.3.4
</RequireAll>

IP范围、子网掩码、CIDR表示法等也可以指定。 https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html(已弃用) https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

1
我必须将这段代码放在我的虚拟主机文件(000-default.conf)中的<VirtualHost *:80><Directory /var/www/html>的同级位置吗? - Diego Somar
我把这个指令放在我的注释上面,但它不起作用。我应该把这段代码放在哪里? - Diego Somar
1
@James - 你需要在想要应用指令的目录(及其子目录)中创建 .htaccess 文件,参见这个 .htaccess 教程。如果想要在配置文件级别应用指令,请运行 apachectl -S 命令查看应该编辑哪个配置文件。 - JBES
1
@Obewan - 你的Require示例将允许除了你指定的子网之外的所有内容。通常更倾向于使用CIDR表示法(192.168.205.0/24)。 - JBES
1
@Obewan - 你的Require示例将允许除了你指定的子网之外的所有内容。通常更推荐使用CIDR表示法(192.168.205.0/24)。 - undefined
显示剩余5条评论

10

您可以将以下内容放入位于要限制的目录中的 .htaccess 文件中,以阻止特定的 IP 地址:

order allow,deny
deny from 1.2.3.4
allow from all

在这里,1.2.3.4 是您想要阻止的IP。

但请注意,IP地址会改变用户,攻击者也会更改IP地址。

因此,这不会保护您的应用程序,并有可能封锁合法的访问者。

更好的解决方案将是确保您的脚本不接受恶意路径。

  1. 将基本路径附加到从用户获取的路径后面
  2. 确保从用户获取的路径不包含“../”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接