İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

777 izin verilen klasörün güvenliği

Gizlen

0
İyinet Üyesi
Katılım
24 Ocak 2008
Mesajlar
204
Reaction score
0
Konum
localhost
merhaba arkadaşlar

resim upload için 777 izni verdiğim klasörüme farkı tipte, dosyalar upload edilerek siteye saldırılar yapılmakta. Yüklenmesi yasak dosya tiplerine
"exe","com","bat","vbs","js","jar","scr","pif","ra r","zip","gz","tar","tgz" yazdım ancak bugunde php formatında dosyalar atılmış. Onuda ekledim sonuç olarak.

Şimdi bu klasörün güvenliği nasıl sağlarım.
aklıma gelen bir yol ise bu klasöre jpg ve gif dışında hiç dosya türünün kabul edilmemesini için ne tür bir düzenleme yapmam gerekiyor?
 

Gizlen

0
İyinet Üyesi
Katılım
24 Ocak 2008
Mesajlar
204
Reaction score
0
Konum
localhost
ewt dostum yolladıgın seye ihtiyacım var ancak kendi koduma bunu nasıl ekleyebilirim.

<?php
}


// Upload pictures
if (count($_FILES['pic']['tmp_name']))
{

$ipval = ipval();
$uploaderror = 0;
$uploadcount = 0;

foreach ($_FILES['pic']['tmp_name'] as $k=>$tmpfile)
{
if ($tmpfile)
{
// Check size
if ($_FILES['pic']['size'][$k] > $pic_maxsize*1000)
{
$uploaderror++;
}
elseif (!in_array($_FILES['pic']['type'][$k], $pic_filetypes))
{
$uploaderror++;
}
else
{
$thisfile = array("name"=>$_FILES['pic']['name'][$k],
"tmp_name"=>$_FILES['pic']['tmp_name'][$k],
"size"=>$_FILES['pic']['size'][$k],
"type"=>$_FILES['pic']['type'][$k],
"error"=>$_FILES['pic']['error'][$k]);

$newfile = SaveUploadFile($thisfile, "{$path_escape}{$datadir[adpics]}", TRUE, $images_max_width, $images_max_height);

/*$newfile = uniqid($ipval) . $_FILES['pic']['name'][$k];
if (copy ($tmpfile, "adpics/$newfile"))*/

if($newfile)
{
$sql = "INSERT INTO $t_adpics
SET adid = $adid,
isevent = '$data[isevent]',
picfile = '$newfile'";
mysql_query($sql);

if (mysql_error())
{
echo "<span class=\"error\">Error uploading $_FILES[pic][name]</span><br>";
$uploaderror++;
}
else
{
$uploadcount++;
}

}
else
{
$uploaderror++;
}
}

}
elseif ($_FILES['pic']['name'][$k])
{
$uploaderror++;
}
}

if (!$in_admin && $uploadcount)
{
echo "<p>$lang[PICTURES_UPLOADED]: $uploadcount</p>";
}
if($uploaderror)
{
if($in_admin) $err .= "$uploaderror pictures could not be uploaded";
else echo "<p class=\"err\">$lang[PICTURES_NOT_UPLOADED]: $uploaderror</p>";
}
}
if(($rtipi!=".pjpeg") or ($rtipi!=".gif") or ($rtipi!=".png") ){
echo "Yüklemeye çalıştığınız dosya resim dosyası değil";
exit();
}
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Dizine erişimi webden kapatın htaccess ile, sadece dosya sisteminden erişilsin. Böylece istedikleri dosyaları upload etsinler birşey elde edemezler. Sorunun cevabı için de ikinci yaptığın alıntıda sadece resim dosyaları kabul ediliyor zaten
 

Gizlen

0
İyinet Üyesi
Katılım
24 Ocak 2008
Mesajlar
204
Reaction score
0
Konum
localhost
Dizine erişimi webden kapatın htaccess ile, sadece dosya sisteminden erişilsin. Böylece istedikleri dosyaları upload etsinler birşey elde edemezler. Sorunun cevabı için de ikinci yaptığın alıntıda sadece resim dosyaları kabul ediliyor zaten

1 dediğin seyı yaptım htacces ile
#deny all access
deny from all


pekı yınede ogrenmek için mümkünse sormak isterim.

2. yaptıgım altınıyı 1.esas upload kodlarıma nasıl eklerim?

ek olarak yardım ıcın tesekkür ederım herkese
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Şu an bu kodun nasıl çalıştığını anlamadım zaten

elseif (!in_array($_FILES['pic']['type'][$k], $pic_filetypes)) <- pic_filetypes icinde degilse uzanti yukleme diyor.

scriptte bir yerlerde pic_filetypes diye bir değişken olması lazım config'dedir büyük ihtimalle, o diziye izin verilen dosyalar girilecek. illa bulamadım diyorsan o verdiğin dosyada hemen "Upload pictures" ın üstüne kendin tanımla

$pic_filetypes = array('image/jpg','image/gif');

vb.
 

Gizlen

0
İyinet Üyesi
Katılım
24 Ocak 2008
Mesajlar
204
Reaction score
0
Konum
localhost
htacccess kodunu kullanıyorum
ancak bu seferde resimleri kendi sitemdende göremiyorum
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Dizini web erişime kapattığın zaten, siteden de linklerken direk adrese linkleyemezsin. JPG ise mesela

$kaynak = imagecreatefromjpeg('dizin/X.jpg');
imagejpeg($kaynak);

şeklinde ekrana bastırman gerekir.
 

sonsuzhost

0
İyinet Üyesi
Katılım
28 Şubat 2006
Mesajlar
1,287
Reaction score
1
Konum
burdan yak
htacccess kodunu kullanıyorum
ancak bu seferde resimleri kendi sitemdende göremiyorum

#deny all access
deny from all

kabaca şöyle diyim bu kod dizine browser ile direkt erişimi engeller (dolayısı ile bu dizine yüklenen dosyaların dışardan bir browser ile çalıştırılmasını engeller) ancak sen bu dizin içerisindeki herhangi bir dosyayı web sitendeki bir sayfaya çağırabilirsin.

örneğin bu dizindeki bir resmi sitendeki bir html php vb.. dosya ile çağırarak ekrana bastırabilirsin. fakat örenğin dizin adı images diyelim bu dizindeki bir resme browserdan www.domain.com/images/resim1.jpg olarak erişemezsin.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst