Php

在 cron 中使用 lynx 或 wget 呼叫 php 腳本?

  • October 29, 2010

我正在檢查一個特定的設置,他們的 crontab 如下:

0 * * * * lynx http://www.example.com/cron/scriptA.php

當然,這依賴於“隱匿安全”的原則,因為網際網路上的任何人只要知道這些文件的位置,就可以呼叫它們並可能使伺服器超載。

除此之外,執行該腳本的上述“模型”是否存在任何固有問題。

當我從命令提示符以 root 身份測試 lynx http://www.example.com/cron/scriptA.php時,它提示我下載會話 cookie,所以我想我至少應該將上面的內容修改為:

lynx -accept_all_cookies http://www.example.com/cron/scriptA.php

或者我應該使用:

wget -q -O /dev/nul http://www.example.com/cron/scriptA.php

如果要保護這些文件,可以將 Web 伺服器配置為僅允許從 localhost 連接到這些特定腳本。您沒有提及您使用的網路伺服器,但例如在 Apache 中,這可以通過DirectoryAllow/Deny參數的組合來完成,例如

<Directory /cron>
   Order deny,allow
   Deny from all
   Allow from localhost
</Directory>

為了增加安全性,您可以修改您的 cron 腳本以檢查客戶端地址。如果它不是 localhost,請拒絕執行 cron 魔法並返回其他內容。

在工具方面,lynx 和 wget 都很好。不過,當我在 cron 中使用 lynx 時,我傾向於將它與**-dump**標誌一起使用。

引用自:https://serverfault.com/questions/196069