Hayır ben pek doğru bulmuyorum sonuçta Apple da hacklenmisti zamanında, Facebook açıklarını bulduğumuz günlerde ki bu şekilde sağlam para kazanan dostlarım vardı, hiçbir şeyin devamlı olmayacağını tecrübe ettim.
İkinci bir nokta ise, imgur vb siteler gözönünde olduğu için daha fazla saldırıya uğrarlar ama bizim sitelerimiz bir kaç lamer ile anca hazır app ile saldırı alır.
Yukarıda da belirttim arkadaşımızın yöntemi güzel ve mantıklı ama aklinda olmasını istediğim bir noktayı belirttim.
Hack edilmeyecek hiçbir sistem yoktur bunu herkes söylüyor zaten, mesela ben arkadaşın sitesine injected dosya yuklersem o dosya imgur a gidecek ve imgur bloke edecektir , diğer bir durumda ise sunucu yorulması fazla olacaktır, bunu bilenler aynı anda infected dosya yükleme ve ddos baslatirsa malum durum ortaya çıkar.
Linux ile çözüm olabilir mi, belki olabilir ama hiçbir zaman tam çözüm olmaz. Tek çözüm benim şuan aklıma gelen file to Stream ile sağlam yöntemler bulunabilir. Bunun için biraz kafa yormak hatta 2 3 gün algoritma hazırlamak gerekir. Yada fazla detayına girmeden dosya uzantısı ve htaccess ile çok güzel koruma sağlanabilir.
Değerli yorumunuz için çok teşekkür ederim hocam. Sistemi kodladım, avantajları gözümde handikaplara ağır bastı. Bir süre hype sözlük projesinde bu yöntemi kullanacağım.
İhtiyaç duyabilecek arkadaşlar için:
function basit_imgbb_upload($image,$name = null){
$API_KEY = 'KEY';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.imgbb.com/1/upload?key='.$API_KEY);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
$extension = pathinfo($image['name'],PATHINFO_EXTENSION);
$file_name = ($name)? $name.'.'.$extension : $image['name'] ;
$data = array('image' => base64_encode(file_get_contents($image['tmp_name'])), 'name' => $file_name);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
if (curl_errno($ch)) {
return 'Error:' . curl_error($ch);
}else{
return json_decode($result, true);
}
curl_close($ch);
}Çağırırken ise:
$return = basit_imgbb_upload($_FILES['profil_resmi'], 'hangi-adla-yuklenecek');
$data = $return['data']['url'];
if($data != null){
copy($data, "/yuklenecek-dosya-yolu/ad.format");
}Şampiyon gibi çalışıyor. Tabii gelişime açık.