我正在检查一个特定的设置,它们的 crontab 如下:
0 * * * * lynx http://www.example.com/cron/scriptA.php
当然,这依赖于“模糊安全”原则,因为互联网上任何知道这些文件位置的人都可以调用它们并可能导致服务器超载。
除此之外,运行该脚本的上述“模型”本身是否存在错误?
当我测试 lynx 时http://www.example.com/cron/scriptA.php从以 root 身份运行的命令提示符下,它提示我下载会话 cookie,因此我想我至少应该将上述内容修改为:
lynx -accept_all_cookies http://www.example.com/cron/scriptA.php
或者我应该使用:
wget -q -O /dev/nul http://www.example.com/cron/scriptA.php
答案1
如果您想要保护这些文件,您可以将 Web 服务器配置为仅允许从本地主机连接到这些特定脚本。您没有提到您使用哪种 Web 服务器,但例如在 Apache 中,可以通过组合以下方式实现此目的:目录 和允许否认参数,类似于
<Directory /cron>
Order deny,allow
Deny from all
Allow from localhost
</Directory>
为了提高安全性,您可以修改 cron 脚本以检查客户端地址。如果不是 localhost,则拒绝执行 cron magic 并返回其他内容。
说到工具,lynx 和 wget 都不错。当我在 cron 中使用 lynx 时,我倾向于将其与-倾倒但是。