folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Jquery Formda Güvenlik Sorunu



Jquery Formda Güvenlik Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    selam arkadaşlar kaç gundur bu sorunla uğraşıyorum bir türlü çözemedim.  Yardımcı olurmusnuz ?

    amacım flood engellemek.

    Aldığım hata: Notice: Undefined index: guvenlik in C:\wamp\www\ajax.php on line 30

    post işlemini jquery ile yapıyorum mysqla veri eklemek için 

    index.php kodlarım

     <div id="mesaj_gonder">
    <div class="ybas">Mesaj Gönder</div>
    <form action="" method="post" onsubmit="return false">
    <span>Adınız</span>
    <span><input type="text" name="ad" class="yinput" /></span>
    <span>Mesajınız</span>
    <span><textarea rows="0" cols="0" name="mesaj"></textarea>
    </span>
    <span>G.Kodu:&nbsp;
    <img id="captcha" src="securimage/securimage_show.php" alt="Güvenlik Kodu" /><a href="#" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false">Resmi Tazele</a>
    z</span>
    <span><input type="text" name="guvenlik" id="guvenlik" class="yinput" /></span>
    <span><input type="submit" value="Mesaj Gönder"  class="ygonder" onclick="gonder()" /></span>
    </form>
    </div>


    ajax.php kodlarım 

    <?php 
    session_start();
    include "ayarlar.php";
    include_once("securimage/securimage.php");
    $securimage = new Securimage();
    header("Content-Type: text/html; charset=iso-8859-9");
    //değerleri alalım
    function GetIP(){
        if(getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } elseif(getenv("HTTP_X_FORWARDED_FOR")) {
            $ip = getenv("HTTP_X_FORWARDED_FOR");
            if (strstr($ip, ',')) {
                $tmp = explode (',', $ip);
                $ip = trim($tmp[0]);
            }
        } else {
            $ip = getenv("REMOTE_ADDR");
        }
        return $ip;
    }
    //g.kodu
    
    $ad = strip_tags(trim(iconv('UTF-8','ISO-8859-9', $_POST["ad"])));
    $mesaj = mysql_real_escape_string(strip_tags(trim(iconv('UTF-8','ISO-8859-9', $_POST["mesaj"]))));
    $tarih = date("d.m.Y");
    $onay = 0;
    $ip_adresi = GetIP();
    // Gönderilen güvenlik kodu yanlışsa yapılacak olan işlem
    if ($securimage->check($_POST['guvenlik']) == true) {
     
    if (empty($ad) || empty($mesaj)){
     echo "hata1";
    }else {
    $ekle = mysql_query("insert into mesajlar (yazan,mesaj,onay,ip,tarih) values ('$ad','$mesaj','$onay','$ip_adresi','$tarih')");
    if ($ekle){
    $id = mysql_insert_id();
    $bul = mysql_query("select * from mesajlar where id='$id'");
    $goster = mysql_fetch_array($bul);
    extract($goster);
     echo "<div class='yorum'>
     <div class='demiski'><strong>{$yazan}</strong> demişki;</div>
     <div class='yorum_ic'>{$mesaj}</div>
     </div>";
    }else {
    echo "hata2";
    }
    }
    }else{
    
    echo "G.kdu yanlıs";
    }
    
    ?>



    Abure cubure subure dubure re re re tey tey tey
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Güvenlik kodunu index.php'de oluşturup post etsen olmaz mı?

     

    Ayrıca

    securimage/securimage_show.php?' + Math.random()  (Burada bir şeyler eksik gibi?)

    securimage/securimage_show.php?kod=' + Math.random() (Gibi olmasın?)


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    hocam onu nasıl yapacagım?

    phpde acemiyimde simdi ben veirleri ajax.phpye yolladıgımdan tum girdileri orada  post ediyorum..

    secure image kullanımında sorun gözükmuyor kaynak sitede aynı şekilde kullanılmış


    Abure cubure subure dubure re re re tey tey tey
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    hocalar yokmu bunun bir çözümü ??


    Abure cubure subure dubure re re re tey tey tey
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    saftiriksincap
    saftiriksincap's avatar
    Kayıt Tarihi: 31/Ağustos/2010
    Erkek

    bu işlerden hiç anlamam ama, şöyle bi kurcalayım dedim bakındım.

     

     


    $a 
    = (int)date("i");
          
    $ip $_SERVER['REMOTE_ADDR']; 
          
    $exec mysql_query("insert into tbllog(ip,tarih) values('$ip','$a')");
          
    $z $a-1;
          
    $q mysql_query("select * from tbllog where ip='$ip' and tarih >='$z'");
          if(
    mysql_num_rows($q)>=40)
          {
             
    $ban mysql_query("insert into tblbanlist(ip) values('$ip')");
             if(
    $ban)
             {
                
    header('Location: ban.html');
             }
          }
          
    $q2 mysql_query("select * from tblbanlist where ip='$ip'");
          if(
    mysql_num_rows($q2)>=2)
          {
                
    header('Location: ban.html');
          }
             
          
    $settime "00:00";
          
    $gettime date("h:i");
          if(
    $gettime==$settime)
          {
             
    $trunlog mysql_query("truncate table tbllog");
             if(
    $trun)
             {
                
    header('Location: bakim.html');
             }
          }
          
    $setday "15";
          
    $a date("d");
             if(
    $setday==$a)
             {
                
    $trunban mysql_query("truncate table tblbanlist");
                if(
    $trunban)
                {
                   
    header('Location: bakim.html');
                }
             }
    ?>


    Daha sonra PHPmyAdminden Sorgulatıp tabloları olusturacağimiz kodları verelim. denmiş başka bi forumda işini görür mü bilemem :/

    PHP- Kodu:
    CREATE TABLE `tblbanlist` (
      `
    idint(11NOT NULL auto_increment,
      `
    ipvarchar(50collate utf8_turkish_ci NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=;
    CREATE TABLE `tbllog` (
      `
    idint(11NOT NULL auto_increment,
      `
    ipvarchar(50collate utf8_turkish_ci NOT NULL,
      `
    tarihvarchar(50collate utf8_turkish_ci NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=80 

     

    ----------------

     

     

     

     Edit:

    Başka bi forumda da şunlardan bi alıntı daha.




    Bu Sınıf Neyi Korur?
    Sunucunuzdaki herhangi bir php dosyasına (index.php vs) saldırıp saniyede 30-40 kere açıp mysqli kasıyorlar ve sunucu iptal oluyor bir süre sonra (şahsen yaşadım ve saydım saniye kaç kere giriş yapılıyor diye 37 çıkmıştı, zaten atak yapan kişiye sordum amacı ne programın diye 80 portundan girip mysqli kasıyormuş).
    Kullanacaksanız yazıyı tamamen okuyun.

    Nasıl Korur?
    İstenilirse .htaccess dosyasından IP ban verir.
    Sınır aşılınca bilişim suçlarına yönlendirir.
    Sunucunuzda XML desteği olması lazım.

    Sınıfı Tanıyalım

    PHP Code:
    final class Koruma{
    /*Özellikler*/
    public string $xml/*sayaç olarak tutulacak xml dosyasını gösterir (o dosyanın chmod ayarları 777 olmalı*/
    public int $htacess/*.htaccess ile ip ban olup olmayacağı 0 dan farklı ise o değer kadar saniye ip ban verir (değeri 50 ise 50 saniye ip ban verir 0 ise ban vermez)*/
    public int $reset/*bir ip'nin bağlantı sayısı bu değer saniye sonra 0 olur*/
    public int $izin/*bir ip'nin reset saniyede sayfayı kaç defa açılabileceğini belirler*/
    /*Fonksiyonlar*/
    public void Izin(void); /*ip'ye izin olup olmadığını döndürür ve diğer işlemleri yapar (.htaccess ban, ip ekleme süre 0'lama vs.).*/
    public void Izinsiz(void); /*Izin fonksiyonun false değeri döndürdüğü zaman yapılacak işlemler if ile kontrolden sonra kullanılır*/

    .htaccess Dosyası Kullanacaksam Neler Bulunmalı?

    HTML Code:
    <Limit GET POST>
    order deny,allow
    #koruma
    </Limit>

    kodları .htaccess dosyanızın her hangi bir yerinde en fazla 1 tane bulunmalıdır (#koruma dahil yorum satırıdır ama yeni eklenecek ip'nin o satıra eklenmesi gerektiğini ifade eder.).
    Ayrıca chmod ayarları 777 olmalıdır.

    Nasıl Kullanabilirim Bu Sınıfı?

    PHP Code:
    <?php
    final class Koruma{
    public 
    $xml,$htaccess,$izin,$reset;
    public function 
    Izin(){
    if(
    file_exists($this->xml.'.xml')){
    $sx=simplexml_load_file($this->xml.'.xml');
    $ip=$sx->xpath('ping[@ip="'.$_SERVER['REMOTE_ADDR'].'"]');
    if(
    count($ip)){
    /*htaccess açma işlemleri*/
    if($this->htaccess){
    if(
    file_exists('.htaccess')){
    $h=fopen('.htaccess','rt');$ha=fread($h,filesize('.htaccess'));fclose($h);
    preg_match('/#([0-9]+)
    deny from '
    .$_SERVER['REMOTE_ADDR'].'/',$ha,$ban);
    if(
    $ban[1]<time()&&$ban[1]>0){
    $ha=preg_replace('/#[0-9]+
    deny from '
    .$_SERVER['REMOTE_ADDR'].'/',NULL,$ha);
    $h=fopen('.htaccess','wt');fwrite($h,$ha);fclose($h);
    print 
    $ha.'.ht';
    }
    }else throw new 
    Exception('.htaccess Yok');
    }
    /*ip işlemleri*/
    if($ip[0]->attributes()->zaman+$this->reset<time()){
    $ip[0]->attributes()->sayi=0;
    $ip[0]->attributes()->zaman=time();
    }else 
    $ip[0]->attributes()->sayi=$ip[0]->attributes()->sayi+1;
    $f=fopen($this->xml.'.xml','w');fwrite($f,$sx->asXML());fclose($f);
    if(
    $ip[0]->attributes()->sayi>$this->izin){
    if(
    $this->htaccess){
    if(
    file_exists('.htaccess')){
    $h=fopen('.htaccess','rt');$ha=fread($h,filesize('.htaccess'));fclose($h);
    if(!
    strpos(' '.$ha,$_SERVER['REMOTE_ADDR'])){
    $ha=str_replace('#koruma','#'.(time()+$this->htaccess).'
    deny from '
    .$_SERVER['REMOTE_ADDR'].'
    #koruma'
    ,$ha);
    $h=fopen('.htaccess','wt');fwrite($h,$ha);fclose($h);
    }
    }else throw new 
    Exception('.htaccess Yok');
    }
    return 
    false;
    }else return 
    true;
    }else{
    /*ip yoksa ekleme*/
    $sx->addChild('ping',NULL);
    $son=count($sx->ping)-1;
    $sx->ping[$son]->addAttribute('ip',$_SERVER['REMOTE_ADDR']);
    $sx->ping[$son]->addAttribute('zaman',time());
    $sx->ping[$son]->addAttribute('sayi',1);
    /*gereksiz ipler silme işlemi*/
    $g=$sx->xpath('ping[@zaman<'.(time()-(60*60)).']');
    for(
    $i=0,$j=count($g);$i<$j;$i++)
    unset(
    $g[$i][0]);
    $f=fopen($this->xml.'.xml','w');fwrite($f,$sx->asXML());fclose($f);
    return 
    true;
    }
    }else throw new 
    Exception('XML Dosyası Yok');
    }
    public function 
    Izinsiz($mysql){
    eval(
    'global '.$mysql.';');
    @
    mysql_close($mysql);
    @
    mysql_close();
    header('location:http://bilisimsuclari.iem.gov.tr/');
    exit(
    0);
    usleep(24*60*60*1000);
    }
    }
    ?>

    bu kodları koruma.php dosyası adında kaydedip,

    Kod:
    <?xml version="1.0"?>
    <koruma>
    <ping ip="127.0.0.1" zaman="1265899883" sayi="0"/>
    </koruma>

    bu kodlarıda koruma.xml dosyası adında chmod ayarları 777 olarak kaydedip kullanabilirsiniz.

    Buların Hepsini Yaptım Örnek Bir Kullanım Lazım

    PHP Code:

    <?php
    include('koruma.php');
    $koruma=new Koruma;
    $koruma->xml='koruma'/* koruma.xml dosyasına kaydedileceğini belirtir 777 olmalı */
    $koruma->htaccess=7*24*60*60/* özellik 0 dan farklıyken .htaccess varsa verilen değerdeki
    saniye kadar ip ban verir (bu 1 haftalık) */
    $koruma->reset=2/* ip bağlantı sayısı 2 saniyede bir 0 olur */
    $koruma->izin=1/* 1 ip 2 saniyede 5 kere açabilir bu sayfayı */
    /*
    $mysqlbaglantim=mysql_connect(...);
    mysql baglantisi sart degil $koruma->Izinsiz('$mysqlbaglantim'); kısmında 
    $mysqlbaglantim null döner sadece
    */
    if($koruma->Izin()){
    print 
    'bişeyler yap';
    }else{
    /* bağlantı ' tırnak içinde yazılmalıdır */
    $koruma->Izinsiz('$mysqlbaglantim');
    }
    ?>


    Hayat Murat Boz un memesi gibi, Rasim Ozan Kütahyalı çenesi gibi, Vahdettin in son senesi gibi, Bakir kızın Coşkun a veresi gibi, İran la İsrail arası gibi,Durum değişir kerhane numarası gibi, Çömelene birisinin vurası gibi,Yazı diyince bozukluğun turası gibi,Koç ya da Sabancı parası gibi, Oy verdiklerin niye yarasa gibi?
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Maresca
    Maresca's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    securimage_show.php

    dosyanıda koyarsan yardımcı olabilirim.

     


    Gel bili bili gates
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    abi gözünüzü sevim şunları utf-8 ve utf8_general_ci yapın. Sorna bol bol sorun yaşayacaksınız.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    VideoJockey bunu yazdı:
    -----------------------------

    securimage_show.php

    dosyanıda koyarsan yardımcı olabilirim.

     


    -----------------------------

    @saftiriksincap

    hocam eline saglık ama onları bende buldum en guvenli yolu bu :)

     

    buyur hocam

    secureimage_show.php

    http://pastebin.com/t0Aq0T49


    Abure cubure subure dubure re re re tey tey tey
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Maresca
    Maresca's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    Ohoo hoho :)

    Hocam;

    securimage_show.php

    <?php
    function olustur ()
    {
    	$sifre = substr(md5(rand(0,999999999999)),-5);
    	if ($sifre)
    	{
    		session_start();
    		$_SESSION["koruma"] = $sifre;
    
    		$width 	= 99;
    		$height	= 34;
    		$resim	= @imagecreate ($width,$height);
    		$siyah  	= ImageColorAllocate($resim, 0, 0, 0);
    		$kirmizi  	= ImageColorAllocate($resim, 182, 36, 99);
    		$beyaz   	= ImageColorAllocate($resim, 255, 255, 255);
    		ImageFill($resim, 0, 0, $beyaz);
    
    		$font = 'font/arial.ttf';
    
    		imagettftext($resim, 20, 10, 10, 28, $siyah, $font, $sifre[0]);
    		imagettftext($resim, 20, 0, 25, 28, $kirmizi, $font, $sifre[1]);
    		imagettftext($resim, 20, -10, 40, 28, $siyah, $font, $sifre[2]);
    		imagettftext($resim, 20, 0, 55, 28, $kirmizi, $font, $sifre[3]);
    		imagettftext($resim, 20, 0, 70, 28, $siyah, $font, $sifre[4]);
    
    		header("Content-type: image/png");
    		ImagePng($resim);
    		ImageDestroy($resim);
    	}
    }
    olustur(); 
    ?>



    index.php

    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script language="javascript">
    	function ChangeCode(){
    		var NewSecurity= "<img src='securimage_show.php?rnd="+Math.random()+"' alt='guvenlik' style='border: 1px solid #999999;' />";
    		$("#security").html(NewSecurity);
    		return false;
    	}
    </script>
    
    
    <div id="mesaj_gonder">
    <div class="ybas">Mesaj Gönder</div>
    <form action="" method="post" onsubmit="return false">
    <span>Adınız</span>
    <span><input type="text" name="ad" class="yinput" /></span>
    <span>Mesajınız</span>
    <span><textarea rows="0" cols="0" name="mesaj"></textarea>
    </span>
    <span>G.Kodu:&nbsp;
    <img id="captcha" src="securimage_show.php" alt="Güvenlik Kodu" /><a href="#" onclick="ChangeCode();">Resmi Tazele</a>
    z</span>
    <span><input type="text" name="guvenlik" id="guvenlik" class="yinput" /></span>
    <span><input type="submit" value="Mesaj Gönder"  class="ygonder" onclick="gonder()" /></span>
    </form>
    </div>


    ajax.php

    <?php 
    session_start();
    include "ayarlar.php";
    
    $girilen_kod	= trim(strip_tags($_POST['guvenlik']));
    $guvenlik_kodu	= trim(strip_tags($_SESSION['koruma']));
    
    header("Content-Type: text/html; charset=iso-8859-9");
    //Degerler Tanımlamalar Burada Yapılıyor..
    function GetIP(){
        if(getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } elseif(getenv("HTTP_X_FORWARDED_FOR")) {
            $ip = getenv("HTTP_X_FORWARDED_FOR");
            if (strstr($ip, ',')) {
                $tmp = explode (',', $ip);
                $ip = trim($tmp[0]);
            }
        } else {
            $ip = getenv("REMOTE_ADDR");
        }
        return $ip;
    }
    
    $ad = strip_tags(trim(iconv('UTF-8','ISO-8859-9', $_POST["ad"])));
    $mesaj = mysql_real_escape_string(strip_tags(trim(iconv('UTF-8','ISO-8859-9', $_POST["mesaj"]))));
    $tarih = date("d.m.Y");
    $onay = 0;
    $ip_adresi = GetIP();
    
    // Gönderilen güvenlik kodu yanlışsa hata veriyor dogruysa devam.
    
    if($girilen_kod != $guvenlik_kodu)
    	{
    		echo "G.kdu yanlıs";
    	}
    	else
    	{
    		if (empty($ad) || empty($mesaj)){
     		echo "hata1";
    		}else {
    		$ekle = mysql_query("insert into mesajlar (yazan,mesaj,onay,ip,tarih) values ('$ad','$mesaj','$onay','$ip_adresi','$tarih')");
    		if ($ekle){
    		$id = mysql_insert_id();
    		$bul = mysql_query("select * from mesajlar where id='$id'");
    		$goster = mysql_fetch_array($bul);
    		extract($goster);
     		echo "<div class='yorum'>
     		<div class='demiski'><strong>{$yazan}</strong> demişki;</div>
     		<div class='yorum_ic'>{$mesaj}</div>
     		</div>";
    		}else {
    		echo "hata2";
    		}
    	}
    	}
    
    ?>


    Dosya içeriklerini üstte yazdıklarımla değiştirip bir denermisin.


    Gel bili bili gates
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    aynı hocam değişmedi ve resim bu defa gozukmüyor ?


    Abure cubure subure dubure re re re tey tey tey
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Maresca
    Maresca's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    Download : http://blog.byyasinc.com/dosyalar/capchta.rar

    Test        : http://blog.byyasinc.com/dosyalar/capchta

     

    İndir hocam editleyerek üstünden geç.


    Gel bili bili gates
Toplam Hit: 1829 Toplam Mesaj: 13