Как сделать файл доступным только через собственный сервер?

Я добавил это в .htaccess файл, расположенный в корне проекта:

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

Я использовал xx.xx, чтобы сохранить мой настоящий ip скрытым в публичном сообществе, на самом деле вместо xs есть числа.

Теперь мне нужно ежедневно вызывать файл (используя задание cron crontab) с одного и того же сервера, что-то вроде этого:

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, когда я могу сделать его с того же сервера? (И не из ниоткуда)

2
задан 13 September 2020 в 17:52

1 ответ

Вы можете обмануть сервер, добавив следующую запись в ваш файл /etc/hosts, этот сервер как локальный DNS, поэтому настройка DNS Cloudflare будет игнорироваться:

95.216.xx.xx lamtakam.com

Вы не можете использовать https:// для localhost/, так как сертификаты SSL/HTTPS выдаются для конкретного доменного имени, т.е. lamtakam.com и т. д.

Вы можете привязать lamtakam.com и, возможно, lamtakam.test к петлевому интерфейсу (127.0.0.1 для IPv4 и ::1 для IPv6), изменив соответствующую строку /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.

Этот второй подход (с использованием интерфейса loopback) является более гибким, потому что даже если вы измените общедоступный IP-адрес сервера, вам не нужно будет менять настройки .htaccess.

1
ответ дан 13 September 2020 в 14:48

Другие вопросы по тегам:

Похожие вопросы: