Come posso garantire che un utente non possa eseguire uno script PHP e che venga eseguito sempre come parte di un cron job?Assicurarsi che uno script PHP venga sempre eseguito come cron job?
risposta
È possibile impostare una variabile di ambiente nel crontab. Una riga come IS_CRON=1
può essere posizionata all'inizio di crontab, quindi controllare il programma php per get_env("IS_CRON") == 1
.
Ovviamente, dovresti anche utilizzare i permessi dei file perché non sono così facili da aggirare. Se viene eseguito come parte di cron di root, chown root:root yourscript.php
e chown 700 yourscript.php
.
Come ircmaxell dice, sarebbe meglio per l'esecuzione come un utente diverso da root a patto che non ha bisogno dei permessi di root per quello che stai facendo. Stavo solo facendo una supposizione sul tuo setup.
vorrei suggerire impostare una variabile d'ambiente all'interno del vostro crontab e poi controllando per questo all'interno del tuo script PHP
per che cosa è stato utilizzato il voto negativo? – robjmills
Non era mio, ma direi "per sicurezza dall'oscurità". Mentre il tuo suggerimento impedirebbe * l'esecuzione accidentale *, uno sbirciare nello script dirà a tutti quale variabile d'ambiente deve essere impostata (simile a un segno "per favore non eseguire manualmente").Le risposte con "imposta un utente separato per cronjobs e consentono solo all'utente l'accesso e l'esecuzione dello script" indirizzano la radice del problema (simile a un blocco che può essere sbloccato solo dall'utente specifico). – Piskvor
Probabilmente ci sono un certo numero di modi per farlo. In cima alla mia testa, direi che collocarlo in una directory di proprietà di root e leggibile solo da root potrebbe avvicinarsi al raggiungimento dell'effetto che si sta cercando.
Ci sono dei processi che stai cercando specificamente per limitare? In tal caso, utilizzando le autorizzazioni, renderlo non leggibile a nessuno di questi processi.
Creare un utente per i lavori cron e impostare le autorizzazioni dello script in modo che possa essere eseguito solo come questo utente. Naturalmente è necessario inserire lo script in crontab dell'utente, che è possibile eseguire accedendo come tale utente e eseguendo crontab
. Semplicemente non dare la password di quell'utente a nessun altro utente ...
All'inizio pensavo anche di impostare una variabile di ambiente che impedisse l'esecuzione di questo script dal web ... Ma non inserisco lo script lo spazio in cui il server Web cerca le pagine per i siti Web, farebbe lo stesso.
E nulla impedisce a un utente casuale di impostare prima la variabile di ambiente e quindi di eseguire lo script.
Che ne dici di controllare lo script PHP se $_SERVER['REMOTE_ADDR']
è vuoto e, in caso contrario, lasciare uscire lo script senza eseguire ulteriori operazioni.
- 1. cron job che non verrà mai eseguito
- 2. Esecuzione di script php come cron job - problemi di timeout?
- 3. php cron job ogni 10 minuti
- 4. può fare uno script php da eseguire per sempre con Cron Job?
- 5. Cron Job in symfony2
- 6. Come assicurarsi che jQuery .ready venga eseguito alla fine
- 7. Come assicurarsi che l'evento AppDomain.CurrentDomain.AssemblyResolve venga sempre attivato?
- 8. Cron job per script php che richiede un tempo di esecuzione MOLTO lungo
- 9. Cron job che crea file vuoti ogni volta che viene eseguito
- 10. Come viene eseguito esattamente uno script PHP?
- 11. Può uno script bash indicare se viene eseguito tramite cron?
- 12. Come eseguire un job Cron per Node.js
- 13. Come posso creare un cron job che verrà eseguito tutti i giorni alle 12:20?
- 14. Cron Job Log - Come accedere?
- 15. Avere uno script PHP eseguito per sempre, accedere a una coda
- 16. Cron Job $ _SERVER issue
- 17. Cron job non può caricare gemma
- 18. logrotate cron job che non ruota determinati registri
- 19. come eseguire il file php usando i job cron
- 20. Reindirizzare l'output di un job cron
- 21. Cron Job utilizza il vecchio file php inesistente
- 22. PHP - Cron Job Run At specifico Data e ora
- 23. PHP: il percorso obbligatorio non funziona per il cron job?
- 24. Esecuzione di uno script PHP con un lavoro CRON
- 25. Come impostare un cron job con codeigniter
- 26. come demonizzare uno script php da eseguire con upstart
- 27. Cron Jobs chiamando uno script PHP con le variabili
- 28. Come impostare il cron job su CentOS
- 29. Come impostare un job cron tramite PHP (non CPanel)?
- 30. come impostare cron job per reindex
Questa sembra una soluzione perfetta ... Sono un po 'nuovo ai lavori cron ... come impostare la parte IS_CRON = 1? – Starlin
@Starlin, inserisci questa riga all'inizio del tuo file crontab –
Un utente può anche impostare le variabili di ambiente. – geoffspear