cronjob - direct admin - beveiligen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Tom aan t Goor

Tom aan t Goor

31/03/2012 13:32:50
Quote Anchor link
Ik heb een pagina die dmv een cronjob van direct admin om het kwartier wordt herladen.

Helaas kan ik door een update van de server (ik gebruik een shared hoting), niks meer doen met de bestandsrechten.

Hoe kan ik zorgen, dat alsnog de pagina om het kwartier wordt herladen, en dat je niet zelf de pagina kan bezoeken, ik heb dit geprobeerd, maar dit werkt helaas niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if((date("I") == "15") || (date("I") == "30") || (date("I") == "45") || (date("I") == "00") and (date("s") == "00")){
// acties
}else{
echo 'Mislukt!';
}

?>
 
PHP hulp

PHP hulp

23/12/2024 04:52:52
 
- Ariën  -
Beheerder

- Ariën -

31/03/2012 13:38:55
Quote Anchor link
Wat gebeurt er dan als je de cronjob uitvoert?
 
Tom aan t Goor

Tom aan t Goor

31/03/2012 13:41:44
Quote Anchor link
Als ik de pagina zelf open, staat er Mislukt!
Als hij opent via cronjob heb ik geen idee, omdat ik dat zelf niet kan zien, maar als ik de if.. weg haal doet hij het wel.

extra info:
*/15 * * * * /usr/local/bin/php -q -f /home/****/domains/****.nl/public_html/mapje/game/cron_quarter.php
 
- Ariën  -
Beheerder

- Ariën -

31/03/2012 13:46:11
Quote Anchor link
Dan denk ik eerder dat de cronjob vertraagd door een ander script?

Waarom controleer je zelf ook nog eens op de tijden, terwijl de cronjob deze al expliciet al op het gewenste tijdstip uitvoert?
 
Tom aan t Goor

Tom aan t Goor

31/03/2012 13:49:46
Quote Anchor link
Omdat je nu als bezoeker van de site ook naar de cronjob pagina kan gaan, en dan wordt deze alsnog uitgevoerd, en dat probeer ik tegen te gaan.
 
- Ariën  -
Beheerder

- Ariën -

31/03/2012 14:01:37
Quote Anchor link
Ik zou die beveiliging snel weghalen. Waarom zou een bezoeker ook naar die pagina mogen gaan? Cronjobs draaien altijd op het juiste tijdstip.
 
Tom aan t Goor

Tom aan t Goor

31/03/2012 14:05:37
Quote Anchor link
- Aar - op 31/03/2012 14:01:37:
... Waarom zou een bezoeker ook naar die pagina mogen gaan? ...


Hij kan toch gewoon die link in de url balk intypen?
Of kan ik de pagina ook buiten de root zetten, maar dat hij dan wel via cronjob wordt herladen?

Toevoeging op 31/03/2012 16:18:14:

Want het is juist de bedoeling dat iemand zelf niet naar die pagina kan gaan.
 
D Herre

D Herre

06/04/2012 21:35:01
Quote Anchor link
Ik snap wat je bedoelt, je bent bang dat iemand vanuit de browser naar die pagina gaat en dat dat script dan onnodig wordt gedraaid doordat die getriggerd wordt door een gebruiker ipv een cron.

Je kunt dit simpelweg tegengaan door een IP beveiliging in te bouwen. Ik weet niet vanaf welke server je crons worden gedraaid (ik neem aan vanaf de zelfde server als waar het script op staat), maar dat moet je even uitzoeken.

Zodra je daarvan het IP adres weet kun je in je script verwerken dat het IP adres gecheckt moet worden en als het niet overeen komt dat er dan een exit(); staat zodat er verder niets gebeurt. Hiermee ben je van het probleem af.
 

06/04/2012 21:50:50
Quote Anchor link
@ D Herre,Waarom zo moeilijk doen?? Gewoon het bestand buiten de root plaatsen.
 
- Ariën  -
Beheerder

- Ariën -

06/04/2012 21:55:15
Quote Anchor link
Phoenix Bird op 06/04/2012 21:50:50:
@ D Herre,Waarom zo moeilijk doen?? Gewoon het bestand buiten de root plaatsen.

Kan wel, maar ik twijfel of DA deze wel meeneemt bij een restore van een backup? Een beveiligde directory in je webroot zou ook kunnen.
Gewijzigd op 06/04/2012 21:55:38 door - Ariën -
 

06/04/2012 21:58:23
Quote Anchor link
Ja, bij een restore neemt directadmin dit ook mee, ik bedoel buiten de map public_html
Gewijzigd op 06/04/2012 21:59:51 door
 
D Herre

D Herre

06/04/2012 22:17:24
Quote Anchor link
Phoenix Bird op 06/04/2012 21:50:50:
@ D Herre,Waarom zo moeilijk doen?? Gewoon het bestand buiten de root plaatsen.


Je hebt gelijk. Ik zit nu even bij een host zonder directadmin dus ik gebruik nu externe crons, het was me even ontschoten ;)
 
- SanThe -

- SanThe -

07/04/2012 02:29:13
Quote Anchor link
Tom Tom op 31/03/2012 13:32:50:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if((date("I") == "15") || (date("I") == "30") || (date("I") == "45") || (date("I") == "00") and (date("s") == "00")){
// acties
}else{
echo 'Mislukt!';
}

?>


Weet je wel wat date('Í') teruggeeft?

Quote:
I (capital i) Whether or not the date is in daylight saving time 1 if Daylight Saving Time, 0 otherwise.
 
- Ariën  -
Beheerder

- Ariën -

07/04/2012 11:10:01
Quote Anchor link
En bovendien worden crons niet altijd op hetzelfde tijdstip uitgevoerd. Ze kunnen wel eens vertraagd raken... Dus sloop die check er gewoon uit.
 
- Raoul -

- Raoul -

07/04/2012 16:36:16
Quote Anchor link
Doe het gewoon via een IP-checker, als je het IP-adres van je server niet weet kan je altijd een bestand schrijven met het IP erin.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$ip
= $_SERVER['REMOTE_ADDR'];
file_put_contents('ip.txt', $ip);
?>

Zodra de cron runt zal het IP geschreven worden en met het IP van ip.txt kan je dan simpelweg checken of het een geldig IP is.
Gewijzigd op 07/04/2012 16:37:02 door - Raoul -
 
- SanThe -

- SanThe -

07/04/2012 17:06:20
Quote Anchor link
Tom Tom op 31/03/2012 13:49:46:
Omdat je nu als bezoeker van de site ook naar de cronjob pagina kan gaan


Dan zet je die buiten de webroot.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.