Front End görsel yüklemesi hakkında
18
●375
- 10-09-2020, 18:11:46Konuda yanlış anlaşılma var. Bu servisleri yüklenen gif vs güvenliğini kontrol için kullanıp, onay durumunda onlara yükleneni url ile curl, fopen ile kendi sunucumuza kayıt etmekten bahsediliyor. Resim dosyalarını orda barındırmaktan değil arkadaşlar. Sadece o servislerden geçmiş olacak. Resim yine bizde sadece doğrulama yapılmış olacak bedavadan.
- 10-09-2020, 18:14:22Aynen öyle hocam, uzun soluklu olması içinde 2-3 kaliteli görsel sağlayıcısından geçirilir atıyorum imgbb çöker de yanıt vermezse diğerine geçilir. Sizin düşünceniz nedir?Peksoft adlı üyeden alıntı: mesajı görüntüle
- 10-09-2020, 18:17:30Üyeliği durdurulduFikir güzel hocam fakat imgbb gibi servisler tamamen ücretsiz olarak mı sağlıyor mu? Herhangi bir api limiti yok ise dediğiniz gibi kullanılabilir. Tabi bunu tek başına sunmamak gerekli, mesela yönetici panelinden api seçimi olabilir. İleride sorun yaşanmaması adına.
- 10-09-2020, 18:21:02imgbb herhangi bir limit sunmuyor, ve kesinlikle öyle başka servislerle otomize edilebilir ya da panelden seçim sunulabilir. Birazdan pratik olarak kodlayıp, deneyeceğim.awoken adlı üyeden alıntı: mesajı görüntüle
- 10-09-2020, 18:22:51Hocam ben eski kafa asp bilirim siz daha iyi bilirsiniz, eğer bu şekilde yapılması son kullanıcıyı çok bekletmeyecekse bence on numara fikir. Bir kaç servisten doğrulama yapmak son kullanıcı aşısından belki olumsuz bir deneyim sunabilir ama hızlı bir şekilde olursa veya yolu varsa çok daha iyi olur.flyingatm adlı üyeden alıntı: mesajı görüntüle
Bahsettiğiniz 2-3 servisten birisinin patlama ihtimaline karşı 2-3 servis olsun hangisinden doğrularsa o yeterli diğerlerine yeltenmeyecek diyorsanız stabil olması açısından çok iyi bence. Eğer biri patlarsa es geçip diğerinden doğrular ama hepsinden sırasıyla doğrulasın biz öyle alalım diyosanız o belki kullanıcı açısından olumsuz bir deneyim olabilir.
Mobildeyim tam ifade edememiş olabilirim ama bence çok güzel bi fikir.👏🏻 - 10-09-2020, 20:26:57Bu durumda imgur vb sitelere bağlı kalmış olacaksınız, yani imgur sitesini kandirabilen sizide kandırmış olur.
Mantık olarak güzel bir yöntem.
Bunun yerine farklı check yöntemleri deneyebilirsiniz, tabi bunu o siteler gibi sadece sizin sitenizde kullanmalısınız. Nette bilinmeyen algoritmalar ile deneme yaparak en hızlı yöntemi kullanmanızı tavsiye ederim. - 10-09-2020, 20:50:43Selamlar, en güzel yöntemlerden birisi aslında bir sunucunuz vardır ve buna image viewer bir program kurarsınız. Her PHP işleminde de linux sunucuya kod atarsınız. Koddan bu yüklenen görseli açmasını istersiniz. Bu image viewer bunu başarıyla açar ve hata basmaz ise görselin gerçek bir görsel olduğuna kanaat getirirsiniz.dnaz adlı üyeden alıntı: mesajı görüntüle
Ek olarak yüklenen görseli virüs programı ile taramadan geçirirsiniz. Bu program görseli görsel olarak değil kod bazında tarar.
Üstüne giriş seviye koruma diye tabir ettiğimiz; mimetype, size, width, height kontrolleriyle desteklersiniz.
Sonuç: cillop gibi güvenli bir görsel.
AMA!
Bunu hosting'de yapamazsınız. Bunu basit bir VPS/VDS sunucuda yapamazsınız. Bunun için kaynak gerekir.
Bu yöntem ile bu kaynakları zaten on sene kadar önce kodlamış, güveninden şüphe olmayan imgur, imgbb, hizliresim gibi sistemlerden kullanabiliriz bu yolla.
Ne sunucumuz yorulur, ne görselin içine injeksiyon gömülebilir.
Bir değer değinmek istediğim nokta: Bu durumda imgur vb sitelere bağlı kalmış olacaksınız, yani imgur sitesini kandirabilen sizide kandırmış olur. cümleniz. Bu sistemler kandıralabilir sistemler olsaydı, hack haberlerini çoktan alırdık. Çoktan kapanırlardı. - 10-09-2020, 21:02:20Hayı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.flyingatm adlı üyeden alıntı: mesajı görüntüle
İ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. - 10-09-2020, 21:46:58dnaz adlı üyeden alıntı: mesajı görüntüle
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.