Php
在 cron 中使用 lynx 或 wget 呼叫 php 腳本?
我正在檢查一個特定的設置,他們的 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 中,這可以通過Directory 和Allow/Deny參數的組合來完成,例如
<Directory /cron> Order deny,allow Deny from all Allow from localhost </Directory>
為了增加安全性,您可以修改您的 cron 腳本以檢查客戶端地址。如果它不是 localhost,請拒絕執行 cron 魔法並返回其他內容。
在工具方面,lynx 和 wget 都很好。不過,當我在 cron 中使用 lynx 時,我傾向於將它與**-dump**標誌一起使用。