Você pode simplesmente colocar o (s) arquivo (s) em questão fora do DocRoot (por exemplo, em /home/yourusername/cronscripts
em vez de /home/yourusername/public_html/cronscripts
). Não há como o seu servidor Web acessar os arquivos * .
.htaccess
também é uma abordagem comum e tem a vantagem sobre a primeira opção de trabalhar, mesmo se você não estiver usando PHP de linha de comando para acionar o trabalho. Normalmente, você usaria as instruções Allow
e Deny
para restringir quais endereços IP de origem podem alcançar um determinado código.
Como opção de último recurso, ou se você precisar acessar o script de vários locais ou locais com endereços IP variáveis, considere usar um segredo compartilhado, por meio de código como:
if ( !isset($_GET['secretpass'])
|| $_GET['secretpass'] != 'hmAPcrkqjDhMkJw' )
{
//Try to be fancy ("HTTP" response is for mod_php, "Status:" is for FastCGI)
header("HTTP/1.1 404 Not Found");
header( "Status: 404 File Not Found" );
exit(0);
//Or, if you'd rather, you can just:
die( "Unauthorized access." );
}
Então, quando você chama o script, só você sabe o parâmetro correto para colocar no fim ( link ) .
* : A menos que você configure explicitamente um script separado ou um symlink para fazer isso, é claro, mas agora estamos apenas sendo pedantes.