【问题标题】:How to Allow From IP Address, Serve 404 Otherwise?如何允许来自 IP 地址,否则服务 404?
【发布时间】:2015-12-24 07:39:00
【问题描述】:

我希望拒绝除特定 IP 地址之外的所有人访问我的 /wp-admin/ 文件夹。对于其他所有人,该页面应提供 404 错误。以下是我目前正在使用的内容:

    # ALLOW USER BY IP
    <Limit GET POST>
    order deny,allow
    deny from all
    allow from 168.162.1.3
    RedirectMatch 404 ".*"    
    </Limit>

我相信我已经接近了,但问题是没有提供 404 错误,而是创建了一个重定向循环。这显然会无缘无故地对我的服务器征税。那么,如何才能简单地向除这些特定 IP 地址之外的所有人提供 404 错误并拒绝他们访问存储库?

【问题讨论】:

    标签: apache .htaccess ip http-status-code-404


    【解决方案1】:

    有趣的想法。我很好奇为什么您如此热衷于 404 错误而不是 403!我猜你可能试图屏蔽 WordPress,但你也必须屏蔽前端对 wp-content 的所有引用。

    不管怎样,让我们​​继续吧。为此,请执行以下操作:

    RewriteEngine on
    RewriteCond %{REMOTE_ADDR} !=8.8.8.8 [OR]
    RewriteCond %{REMOTE_ADDR} !=127.0.0.1
    RewriteRule ^wp-admin($|/) - [L,R=404]
    

    将 8.8.8.8 设置为您的真实 IP 地址。您可以像使用 localhost (127.0.0.1) 一样添加额外的 OR 条件以将其他 IP 列入白名单。

    您需要使用 Apache 2.1.1 或更高版本,因为我们使用的是 R=404 标志。

    【讨论】:

    • 感谢您的帮助!改用 403 有什么好处?
    • 这是一个更合适的错误消息,它是一个禁止消息而不是一个未找到的错误。我想未找到的错误可以更好地帮助掩盖 WordPress 安装,因为它可能会使攻击者感到困惑(可能会让他们认为您已经完全重命名了 wp-login.php 和 wp-admin 路径)。如果您发现答案有用,请接受它(单击空勾)。谢谢!
    • Travis,如果您对答案感到满意,您能否单击投票按钮下方的空勾以接受它并将问题标记为已解决?谢谢
    • 它对我来说不能正常工作。我想我们已经很接近了,但还不够。
    • 我明白了,您是否将 IP 地址从 8.8.8.8 调整为您要列入白名单的 IP?我会在本地尝试一下,然后返回我的发现。
    猜你喜欢
    • 2015-06-12
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2020-05-09
    相关资源
    最近更新 更多