Toplam 340 konuya 2143 yorum yazıldı.
CronJob İçin Bir Kaç Güvenlik Önlemi

Selamlar arkadaşlar bu dersimizde cronjoba eklediğimiz dosyamız için güvenlik önlemi nasıl alınmalı bunlardan bahsedeceğim.  



 



1.Gizli Değişken



 



Gizli değişkenden kastımız aslında GET ile bir değer gönderilmesi. Yani cron dosyamızı sunucumuzda ya da direk ssh üzerinden cronjoba eklerken dosyaismi.php şeklinde değilde



dosyaismi.php?keycode=gizlianahtar gibi göndermeliyiz. Bu gizli anahtarı kontrol ederken ise şu şekilde kontrol etmeliyiz.




<?php

* * * * * cron.php?keycode=gizlianahtar


if( $_GET['keycode'] !== 'gizlianahtar') die ("İzin verilmedi");


?>


Yukarıda bulunan kontrolün arasına cron kodlarımızı alırsak bir nebze olsun daha güvenli sayılacaktır.. Şimdi gelelim 2.güvenlik yöntemine.



 



2.Environment variable ( Çevre Değişkeni )




<?php

SCRIPT_RUN_ENV=cronjob

* * * * * cron.php


if (get_env('SCRIPT_RUN_ENV') != 'cron') {
die('izin verilmedi');
}

?>


 



Gizli değişken gibi benzer bir çözüm çevre değişkenidir. Bu değişken doğrudan crontab'da ayarlanır.Bu çözüm biraz daha iyidir, ancak yine de birisinin değeri bulması mümkündür.  Bundan dolayı diğer bir güvenlik önlemimize geçelim.



 



 3.IP adreslerini kontrol etmek



Aslında aralarında favorim bu :)  Cronjoba gelen istek gerçekten sunucunun kendi ip adresinden mi gelmiş yoksa gelmemiş mi kontrol edip crona dışarıdan ulaşılmasını engelleyebiliriz.



 




if( $_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR'] ){
die('İzin verilmedi');
}


 



Yukarıda bulunan kodların arasına cron kodlarımızı yazarak güvenlik sorunlarının önüne geçmiş oluyoruz. Şimdi gelelim diğer bir güvenlik kontrolümüze.



 



4..htaccess Kullanımı



Htaccess kullanımı ile cron dosyamıza direkt olarak ulaşılmasını engelleyebiliriz elbetteki. Fakat buda tek başına bir çare değildir :)  Gelelim son bir yöntemimize. 



 



5.Dizin dışına alın



Evet aralarında en sağlıklısı olabilcek olan budur aslında. Cron dosyamızı direkt web sitemizin olduğu dizin yani public_html olur httpdocs olur buralarda bulundurmamamız lazım.

 



 



Evet şimdi gelelim güzel bir kombinasyon yapmaya :)



 



1 - Cron dosyamızın adını şifreliyoruz yani calistir.php değilde md5 ile şifreleyerek ismini yazıyoruz.



    yani ismi atıyorum 123123asdasdasd123131.php gibi bir şey olmalı dışarıdan bulunamaması adına.



 



2 -  Dosyamızın adını şifreledikten sonra 1.ve 3.maddeyi uygulayabilirsiniz aynı anda. Böylelikle çok daha güvenli hale gelmiş olur.



 



Sağlıcakla kalın görüşmek üzere :)




Yorumlar

YAVUZ SELİM ŞAHİN

15.05.2019 11:38

@KAAN güzel bir konu olur gerçekten paylaşmaya çalışacağım. Teşekkürler :)

Kaan

14.05.2019 22:54

hocam sizden ricam cron job ile üye banlama süreli gibi bir işlem yaptırmanız türkçe kaynak pdo da yok denebilir.

Yorum Yaz