CougaR adlı üyeden alıntı: mesajı görüntüle
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>
777 olan klasörün içine .htaccess oluşturup şu satırları ekle.

Alıntı
php_flag engine off
<Files ~ "\.(php*|s?p?html|cgi|pl)$">
deny from all
</Files>
klasöre yüklenmeyecek uzantıları artırabilirsin.