Swe*_*ter 2 php database cron automation
我知道那里有类似的帖子,但请放心,这不是一个重复的帖子!
我在godaddy服务器上有一个站点.我无法访问服务器根目录的外部(一切都是公开的).
我有一个文件delete.php,需要在CRON上运行,并且只能由CRON运行.任何人都不应该出于任何原因手动执行该文件.
鉴于上述情况,我试图尽可能保护我的文件,所以我们将这个实验作为安全性的实验.
到目前为止,我有以下目标,目的是使文件尽可能安全:
<?php
$isCLI = ( php_sapi_name() == 'cli' );
if (!$isCLI) {
die("cannot run!");
} else {
if(!isset($_SERVER['REQUEST_METHOD'])){
// Do the task here
}else{
die("cannot run!");
}
}
?>
Run Code Online (Sandbox Code Playgroud)
那么,这在逻辑上是安全的吗?怎样才能更安全?godaddy只允许我设置运行文件的日期/时间,仅此而已.
检查cli
SAPI就足够了; 通过apache执行它的用户(无论是mod_php还是fastcgi或cgi)永远不会导致通过CLI sapi调用PHP.你可以摆脱else {}
你的真实代码丑陋; 如果你exit;
在then块的末尾,则不需要else块.
但是,根本不将这种脚本放在文档根目录中会更加清晰.如果那是不可能的,也可以考虑使用.htaccess
:
Order deny,allow
Deny from all
Run Code Online (Sandbox Code Playgroud)
如果文件位于不应完全锁定的文件夹中,请将这些行包装在中 <Files whatever.php>...</Files>