如何使该文件只能通过其自己的服务器访问?

如何使该文件只能通过其自己的服务器访问?

我已将其添加到位于 .htaccess项目根目录中的文件中:

<Files *.php>
    Require host lamtakam.test lamtakam.com
    Require ip ::1 95.216.xx.xx
</Files>

我曾经xx.xx在公共社区中隐藏过我的真实 IP,实际上,是数字而不是xs。

现在我需要每天crontab从同一台服务器调用一个文件(使用 cron 作业),如下所示:

0 22 * * * wget /path/to/file.php

但是我收到此错误:

--2020-09-13 13:33:55--  https://lamtakam.com/path/to/file.php
Resolving lamtakam.com (lamtakam.com)... 104.31.74.192, 172.67.174.239, 104.31.75.192, ...
Connecting to lamtakam.com (lamtakam.com)|104.31.74.192|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2020-09-13 13:33:55 ERROR 403: Forbidden.

笔记:我使用 Cloudflare这些 IP 属于它:104.31.74.192, 172.67.174.239, 104.31.75.192

知道file.php当我可以从同一台服务器访问时,如何才能使其可访问吗?(而不是从其他任何地方)

答案1

您可以通过在文件中添加以下记录来欺骗服务器/etc/hosts,该服务器作为本地 DNS,因此 Cloudflare 的 DNS 设置将被忽略:

95.216.xx.xx lamtakam.com

您不能使用https://localhost/因为 SSL/HTTPS 证书是为具体域名颁发的,即lamtakam.com, ETC。

您可以通过以下方式修改相关行来lamtakam.com绑定lamtakam.test到环回接口(127.0.0.1用于 IPv4 和IPv6):::1/etc/hosts

127.0.0.1 localhost lamtakam.com www.lamtakam.com lamtakam.test www.lamtakam.test

在这种情况下,您应该.htaccess按照以下方式编辑文件:

<Files *.php>
    Require host lamtakam.test lamtakam.com
    Require ip 127.0.0.1
</Files>
  • 注意::1是 IPv6 环回接口,但我们没有在文件中创建适当的条目/etc/hosts,因此我们不需要该 IP 的不可能要求规则。

第二种方法(通过使用环回接口)更灵活,因为即使您更改服务器的公共 IP,也不需要更改您的.htaccess设置。

相关内容