Pet*_*art 3 php permissions cron file-permissions user-permissions
我目前正在开发一个涉及使用CRON工作的新项目.
CRON脚本基本上运行SQL查询,将数据生成到文件中,并通过FTP将该文件发送到另一个服务器.
该剧本在实时网站上(www.website.com/sendOrders.php)
我没有看到任何安全问题或威胁,我认为任何人都不太可能在服务器上找到PHP脚本.但是我不希望脚本被任何外人执行.
有没有办法可以保护这个脚本?
谢谢彼得
这是我的解决方案:
检查cron.php是否发送了某些特定标头
cron.php
if (secure_cron_script() === false) {
echo 'Unauthorized';
return;
}
echo 'OK';
Run Code Online (Sandbox Code Playgroud)
函数.php
function secure_cron_script () {
if (DEBUG)
return true;
$http_headers = getallheaders();
if (empty($http_headers['X-My-Cron-token'])
|| $http_headers['X-My-Cron-token'] !== SECURE_CRON_TOKEN) {
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
如何使用curl调用cron:
curl --header "X-My-Cron-token: 321123321sd" https://example.com/cron.php
Run Code Online (Sandbox Code Playgroud)
无IP限制。没有 GET/POST。如果是开发模式,则跳过限制。您可以将脚本放在任何您想要的地方。
您可以将"秘密文件"移动到子文件夹中,然后在其中创建一个.htaccess文件,阻止从每个人访问该文件,但运行Cronjob的服务器除外.
例:
DENY FROM ALL
ALLOW FROM 123.123.123.123
Run Code Online (Sandbox Code Playgroud)
如果你有shell访问权限,你也可以将脚本放在可访问文件夹之外,并通过命令行或cronjob直接运行,如下所示:php script.php.
| 归档时间: |
|
| 查看次数: |
3189 次 |
| 最近记录: |