Suç sende gibi. Kullanıcının yükleyeceği dosyaları kontrol ettirmelisin. Eğer resim yüklüyorsa yeniden boyutlandırma işlemi yapabilirsin. Eğer resim değilse hata döndürecektir.
Edit: Klasörleri silmesinin sebebi büyük ihtimalle sheli temizlemektir. Kötü niyetli bir hacker olduğunu düşünmüyorum.
kodlamanı yaparken jpg, jpg, gibi uzantılar harici uzantıları yükletmemelisin. Ayrıca .htaccess ile de klasörün güvenliğini alman gerek.
ben de bunu anlamam! gir gez dolaş yık yağmala sil sonra mail gönder açık var diye. iyi niyetli olan adam baştan burda bu var şöyle girilir böyle kapatılır diye tarif eder, silmez bozmaz. geçmiş olsun dostum. önlemini al ne hosting firması ne başka biri sorumlu değildir tamamen senin sorumluluğun.
Arkadaşlar aşağıda verdiğim scripte kullanıcılara açık olan kısımda dosya format kontrolü mevcut görüldüğü üzere.
Yalnız bu .htacsess ile güvenliği alma olayı nasıldır o konuda yadımcı olabilirmisiniz ?
<?php
include("config.php");
include("includes/fonksiyonlar.php");
?>
<style type="text/css">
input.dsaciklama {width: 440px; padding:4px; font-size: 12px; background: #dcdcdc; color: #4d4d4d}
input.dsaciklama2 {border: 1px solid #ccc; padding: 3px; width: 622px; border-radius: 3px}
input.gonder {width: 432px; background: #dcdcdc; padding: 3px 7px; color: #000; cursor:pointer; font-size: 13px}
input.gonder:hover {background: #ccc;}
input.bt {background: #ccc; border: 1px solid #ccc; padding: 3px 7px; border-radius: 3px; color: #000; cursor: pointer}
input.bt:hover {background: #999;}
</style>
<div class="teklifver">
<div class="teklifverbaslikform">
<form name="upload" action="upload3.php" enctype="multipart/form-data" method="post">
<p class="teklifverbaslik">Desteklenen Dosya Biçimi .jpg, .png</p>
<input class="gonder" type="file" name="dosya" /></br></br>
<input class="bt" type="submit" value="Gönder" /></br>
</form>
<?php
if($_GET[req] == "delete")
{
$sorgu = mysql_query("SELECT * FROM upload3 WHERE id='$_GET[id]'");
$goster = mysql_fetch_array($sorgu);
unlink($goster[url]);
mysql_query("DELETE FROM upload3 WHERE id='$_GET[id]'");
}
$buay = date("Y-m");
$konum = "yonetim/uploads/";
if(!is_dir($konum.$buay)){
mkdir($konum.$buay);
chmod($konum.$buay, 0777);
}
$gecerli = array("jpg","png");
$uzanti = end(explode(".", $_FILES["dosya"]["name"]));
if($_FILES["dosya"]["name"]){
if($_FILES["dosya"]["size"] < 3000000){
if(in_array($uzanti, $gecerli)){
if($_FILES["dosya"]["error"] > 0){
$mesaj = $_FILES["dosya"]["error"];
}else{
$yeni = substr(md5(microtime()),0,16);
move_uploaded_file($_FILES["dosya"]["tmp_name"], $konum.$buay."/".$yeni.".".$uzanti);
$isim = $_FILES["dosya"]["name"];
$url = $konum.$buay."/".$yeni.".".$uzanti;
mysql_query("INSERT INTO upload3 (isim, url, aciklama, link) VALUES ('$isim', '$url', '$_POST[aciklama]', '$_POST[link]')") or die("Hata : ".mysql_error());
echo "<span style='color: #4d4d4d; font-weight: bold'>Dosya başarıyla yüklendi</span></br></br>";
echo "<center><b>Link (Altta verilen linki kopyalayın ve ilgili alana yapıştırın.)</b><br> <label>http://".$_SERVER['HTTP_HOST']."/$konum$buay/$yeni.$uzanti</label></center>";
}
}else{
echo "<span style='color: #4d4d4d; font-weight: bold'>Geçersiz dosya! Lütfen belirtilen dosya türü yükleyin.</span>";
}
}else{
echo "<span style='color: #4d4d4d; font-weight: bold'>Dosya boyutu fazla büyük!</span>";
}
}
?>
</div>
</div>