folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Php - Database -000Webhost Sorunu



Php - Database -000Webhost Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    merhaba arkadaşlar bir websitesi hazırladım kendime 

    PHP/Mysql kullanarak

    para ile sunucu/domain almadan önce denemek için 000webhosta attım

    phpmyadminden localdeki veritabaninida yükledim 

    şeyle birşey var 

    site temasınıda db tutuyorum nasıl yani bazi div lerin rengi db tutuyorum isteğe bağlı değişe biliyor yada kapakteki reim rastgele degisiyor

    örnek olarak

    <?php
    @include("ayarlar/dbbilgisi.php");
    header("Content-type: text/css");
    $db=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
    $query=$db->prepare("SELECT * FROM `arkaplan` ORDER BY rand() LIMIT 1;");
    $query->execute();
    $sorgu=$query->fetch(PDO::FETCH_ASSOC);
    
    ?>
    #header {
    	background: url(uploads/bg/<?php echo($sorgu['dosya']); ?>) no-repeat center center fixed;
    	background-size: cover;
    	height: 800px;
    	width: 100%;
    	margin: 0px;
    	padding: 0px;
    	height: 60%;
    }

    bu çalışıyor bunda sorun yok ama ana sayfamda db den verileri ekrana basmiyor

    <?php
    @include("ayarlar/dbbilgisi.php");
    @include("ayarlar/fonksiyon.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?php
    $db=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
    $db->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");
    $query=$db->prepare("SELECT * FROM `sayfayazilari` WHERE `id`=1");
    $query->execute();
    $sorgu=$query->fetch(PDO::FETCH_ASSOC);
    $str=$sorgu['sayfa_baslik'];
    ?>
    <title><?php echo($str);?></title>
    <link rel="stylesheet" type="text/css" href="css.php" />
    <link rel="shortcut icon" href="upload/favicon.png">
    </head>

     

    bunun ne ile ilgisi var 

    birde sql injection dan abidik gubidik saldırılardan korunmak için aşağıdaki yeterlimidir

    $name=$_POST['name'];
    $email=$_POST['email'];
    $message=$_POST['message'];
    
    $db=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
    $query=$db->prepare("bişeyler bişeyler bişeyler VALUES (NULL, :temizgonder, :temizgondermail, :temizmesaj, CURRENT_TIMESTAMP);");
    
    $query->bindValue(':temizgonder',strip_tags($name),PDO::PARAM_STR);
    $query->bindValue(':temizgondermail',strip_tags($email),PDO::PARAM_STR);
    $query->bindValue(':temizmesaj',strip_tags($message),PDO::PARAM_STR);

     

     

     


    |sadece aptalların başarısı ders notu ile ölçülür|
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek
    wert bunu yazdı

    merhaba arkadaşlar bir websitesi hazırladım kendime 

    PHP/Mysql kullanarak

    para ile sunucu/domain almadan önce denemek için 000webhosta attım

    phpmyadminden localdeki veritabaninida yükledim 

    şeyle birşey var 

    site temasınıda db tutuyorum nasıl yani bazi div lerin rengi db tutuyorum isteğe bağlı değişe biliyor yada kapakteki reim rastgele degisiyor

    örnek olarak

    prepare("SELECT * FROM `arkaplan` ORDER BY rand() LIMIT 1;");
    $query->execute();
    $sorgu=$query->fetch(PDO::FETCH_ASSOC);
    
    ?>
    #header {
    	background: url(uploads/bg/) no-repeat center center fixed;
    	background-size: cover;
    	height: 800px;
    	width: 100%;
    	margin: 0px;
    	padding: 0px;
    	height: 60%;
    }

    bu çalışıyor bunda sorun yok ama ana sayfamda db den verileri ekrana basmiyor

     

     

    bunun ne ile ilgisi var 

    birde sql injection dan abidik gubidik saldırılardan korunmak için aşağıdaki yeterlimidir

    $name=$_POST['name'];
    $email=$_POST['email'];
    $message=$_POST['message'];
    
    $db=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
    $query=$db->prepare("bişeyler bişeyler bişeyler VALUES (NULL, :temizgonder, :temizgondermail, :temizmesaj, CURRENT_TIMESTAMP);");
    
    $query->bindValue(':temizgonder',strip_tags($name),PDO::PARAM_STR);
    $query->bindValue(':temizgondermail',strip_tags($email),PDO::PARAM_STR);
    $query->bindValue(':temizmesaj',strip_tags($message),PDO::PARAM_STR);

     

     

     

    Son sorun için söyleyeyim. Sql injection için yeterli ama xss için yeterli değil. XSS için htmlspecialchars ı kullanmanı öneririm. Ya da filter_var fonksiyonunu kullanarak kullanıcıdan verileri filtreleyerek al. strip_tags sadece html etiketlerini siler ama html etiketlerini slerek xss tamamiyle kurtulamazsın.

     

    Ayrıca;

    htmlpurifier external kütüphanesine de göz at.

     

    Ayrıca güvenlik önlemlerini önemsiyorsan eğer ve sitende kullanıcılar form girdileriyle input output işlemleri yapacaksa ayrıca CSRF açığınıda araştırmanı öneririm. Kontrolü kolaydır. Bazen önlem almaya deymez bazen önlem almazsan ciddi problemlere yol açabilir.

    Diğer sorularına cevap veremeyeceğim denemek lazım.

    DrKill tarafından 22/Eki/14 23:03 tarihinde düzenlenmiştir

    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek
    DrKill bunu yazdı
    wert bunu yazdı

    merhaba arkadaşlar bir websitesi hazırladım kendime 

    PHP/Mysql kullanarak

    para ile sunucu/domain almadan önce denemek için 000webhosta attım

    phpmyadminden localdeki veritabaninida yükledim 

    şeyle birşey var 

    site temasınıda db tutuyorum nasıl yani bazi div lerin rengi db tutuyorum isteğe bağlı değişe biliyor yada kapakteki reim rastgele degisiyor

    örnek olarak

    prepare("SELECT * FROM `arkaplan` ORDER BY rand() LIMIT 1;");
    $query->execute();
    $sorgu=$query->fetch(PDO::FETCH_ASSOC);
    
    ?>
    #header {
    	background: url(uploads/bg/) no-repeat center center fixed;
    	background-size: cover;
    	height: 800px;
    	width: 100%;
    	margin: 0px;
    	padding: 0px;
    	height: 60%;
    }

    bu çalışıyor bunda sorun yok ama ana sayfamda db den verileri ekrana basmiyor

     

     

    bunun ne ile ilgisi var 

    birde sql injection dan abidik gubidik saldırılardan korunmak için aşağıdaki yeterlimidir

    $name=$_POST['name'];
    $email=$_POST['email'];
    $message=$_POST['message'];
    
    $db=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
    $query=$db->prepare("bişeyler bişeyler bişeyler VALUES (NULL, :temizgonder, :temizgondermail, :temizmesaj, CURRENT_TIMESTAMP);");
    
    $query->bindValue(':temizgonder',strip_tags($name),PDO::PARAM_STR);
    $query->bindValue(':temizgondermail',strip_tags($email),PDO::PARAM_STR);
    $query->bindValue(':temizmesaj',strip_tags($message),PDO::PARAM_STR);

     

     

     

    Son sorun için söyleyeyim. Sql injection için yeterli ama xss için yeterli değil. XSS için htmlspecialchars ı kullanmanı öneririm. Ya da filter_var fonksiyonunu kullanarak kullanıcıdan verileri filtreleyerek al. strip_tags sadece html etiketlerini siler ama html etiketlerini slerek xss tamamiyle kurtulamazsın.

     

    Ayrıca;

    htmlpurifier external kütüphanesine de göz at.

     

    Ayrıca güvenlik önlemlerini önemsiyorsan eğer ve sitende kullanıcılar form girdileriyle input output işlemleri yapacaksa ayrıca CSRF açığınıda araştırmanı öneririm. Kontrolü kolaydır. Bazen önlem almaya deymez bazen önlem almazsan ciddi problemlere yol açabilir.

    Diğer sorularına cevap veremeyeceğim denemek lazım.

    hacı dışarıdan veri sadece iletişim kısmında mesaj kutusundan olacak bunu yaparsam ben sade text olarak görmek istiyorum 

    htmlspecialchars yerine htmlentities kullanabilirmişiz diye okudum bir yerde htmlspecialchars bazı karakterleri degistiriyor 

    htmlentities ise hepsi değiştiriyor diye anladım doğrumu anladım şimdi örnek olarak veriyorum temizle()  gibi bir fonksiyona alırım onu

     

    $query->bindValue(':temizmesaj',htmlentities(strip_tags($message)),PDO::PARAM_STR);

     

    wert tarafından 23/Eki/14 02:03 tarihinde düzenlenmiştir

    |sadece aptalların başarısı ders notu ile ölçülür|
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek
    wert bunu yazdı
    DrKill bunu yazdı
    wert bunu yazdı

    merhaba arkadaşlar bir websitesi hazırladım kendime 

    PHP/Mysql kullanarak

    para ile sunucu/domain almadan önce denemek için 000webhosta attım

    phpmyadminden localdeki veritabaninida yükledim 

    şeyle birşey var 

    site temasınıda db tutuyorum nasıl yani bazi div lerin rengi db tutuyorum isteğe bağlı değişe biliyor yada kapakteki reim rastgele degisiyor

    örnek olarak

    prepare("SELECT * FROM `arkaplan` ORDER BY rand() LIMIT 1;");
    $query->execute();
    $sorgu=$query->fetch(PDO::FETCH_ASSOC);
    
    ?>
    #header {
    	background: url(uploads/bg/) no-repeat center center fixed;
    	background-size: cover;
    	height: 800px;
    	width: 100%;
    	margin: 0px;
    	padding: 0px;
    	height: 60%;
    }

    bu çalışıyor bunda sorun yok ama ana sayfamda db den verileri ekrana basmiyor

     

     

    bunun ne ile ilgisi var 

    birde sql injection dan abidik gubidik saldırılardan korunmak için aşağıdaki yeterlimidir

    $name=$_POST['name'];
    $email=$_POST['email'];
    $message=$_POST['message'];
    
    $db=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
    $query=$db->prepare("bişeyler bişeyler bişeyler VALUES (NULL, :temizgonder, :temizgondermail, :temizmesaj, CURRENT_TIMESTAMP);");
    
    $query->bindValue(':temizgonder',strip_tags($name),PDO::PARAM_STR);
    $query->bindValue(':temizgondermail',strip_tags($email),PDO::PARAM_STR);
    $query->bindValue(':temizmesaj',strip_tags($message),PDO::PARAM_STR);

     

     

     

    Son sorun için söyleyeyim. Sql injection için yeterli ama xss için yeterli değil. XSS için htmlspecialchars ı kullanmanı öneririm. Ya da filter_var fonksiyonunu kullanarak kullanıcıdan verileri filtreleyerek al. strip_tags sadece html etiketlerini siler ama html etiketlerini slerek xss tamamiyle kurtulamazsın.

     

    Ayrıca;

    htmlpurifier external kütüphanesine de göz at.

     

    Ayrıca güvenlik önlemlerini önemsiyorsan eğer ve sitende kullanıcılar form girdileriyle input output işlemleri yapacaksa ayrıca CSRF açığınıda araştırmanı öneririm. Kontrolü kolaydır. Bazen önlem almaya deymez bazen önlem almazsan ciddi problemlere yol açabilir.

    Diğer sorularına cevap veremeyeceğim denemek lazım.

    hacı dışarıdan veri sadece iletişim kısmında mesaj kutusundan olacak bunu yaparsam ben sade text olarak görmek istiyorum 

    htmlspecialchars yerine htmlentities kullanabilirmişiz diye okudum bir yerde htmlspecialchars bazı karakterleri degistiriyor 

    htmlentities ise hepsi değiştiriyor diye anladım doğrumu anladım şimdi örnek olarak veriyorum temizle()  gibi bir fonksiyona alırım onu

     

    $query->bindValue(':temizmesaj',htmlentities(strip_tags($message)),PDO::PARAM_STR);

     

    Doğru ama eksik bir bilgi var. htmlentities ile kodlamada UTF 8 ile bazen sıkıntılar oluşuyor. Ayrıca htmlspecialchar fonksiyonu HTML taglarının çalışmasını engelleyecek karakterleri encode ediyor zaten o yüzden htmlentities'e gerek yok. htmlspecialchar da ayrıca bir parametre var. Encoding diye. Orayı UTF-8 yaparsan karakterler UTF kodlamadada sıkıntı çıkarmıyor.

     HTML entities in ve htmlspecialcharsın değiştirdikleri aşağıda;

     

    ************************

    This is being encoded with htmlentities.

    implode( array_values( get_html_translation_table( HTML_ENTITES ) ), "\t" ):

    " & < >
    ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Œ œ Š š Ÿ ƒ ˆ ˜ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϑ ϒ ϖ       ‌ ‍ ‎ ‏ – — ‘ ’ ‚ “ ” „ † ‡ • … ‰ ′ ″ ‹ › ‾ ⁄ € ℑ ℘ ℜ ™ ℵ ← ↑ → ↓ ↔ ↵ ⇐ ⇑ ⇒ ⇓ ⇔ ∀ ∂ ∃ ∅ ∇ ∈ ∉ ∋ ∏ ∑ − ∗ √ ∝ ∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ ⋅ ⌈ ⌉ ⌊ ⌋ ⟨ ⟩ ◊ ♠ ♣ ♥ ♦

    This is being encoded with htmlspecialchars.

    implode( array_values( get_html_translation_table( HTML_SPECIALCHARS ) ), "\t" ):

    " & < >

    ************************

    Bana kalırsa specialchars kullan UTF-8 ile

    http://stackoverflow.com/a/12079371

    HTML'i ve veritabanını UTF-8 kullandığını varsayıyorum.

     

    You should use htmlspecialchars($strText, ENT_QUOTES) when you just want your string to be XML and HTML safe:

    For example, encode

    • & to &
    • " to "
    • < to <
    • > to >
    • ' to '

    However, if you also have additional characters that are Unicode or uncommon symbols in your text then you should use htmlentities() to ensure they show up properly in your HTML page.

    Notes:

    • ' will only be encoded by htmlspecialchars() to ' if the ENT_QUOTES option is passed in. ' is safer to use then ' since older versions of Internet Explorer do not support the ' entity.
    • Technically, > does not need to be encoded as per the XML specification, but it is usually encoded too for consistency with the requirement of < being encoded.
    DrKill tarafından 23/Eki/14 02:19 tarihinde düzenlenmiştir

    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    $query->bindValue(':temizmesaj',htmlspecialchar(strip_tags($message)),PDO::PARAM_STR);

    buyeterlidir yani ENT_QUOTES gibi herhangibir parametre eklemezsem listekilerin hepsini değiştiyor sanırım

     

    diğer sorunlar 

    php sürümünden kaynaklanıyor olabilirmi acaba

     hostinger i denedim şimdi sorunsuz çalışıyor

    şimdi birşey soracağım localde  bazı sql sorgularım böyle

    $query=$db->prepare("INSERT INTO `blog`.`arkaplan` (bişeyler) VALUES (bişeyler);");

    baştaki blog benim db min localdeki adı 

    ama bana db ismi host tarafından verliyor haliyle bunu genel bişeye çevirmem gerekiyor

    var sayiyorum db bilgilerini db.php içinde tutuyorum

    dp.php içinde

    $host=bişeyler

    $user=bişeyler

    $pass=bişeyler

    $dbadi='blog';

    var bunu bunu host tan veriler bilgiler ile değiştiriyorum

     

    bunu:

    $query=$db->prepare("INSERT INTO `blog`.`arkaplan` (bişeyler) VALUES (bişeyler);"); 

    $query=$db->prepare("INSERT INTO $dbadi.`arkaplan` (bişeyler) VALUES (bişeyler);");

    yapsam daha genel birşey elde edebilirmiyim iyimi olur kötümü olur nasıl yapmam gerekir bunu

    wert tarafından 23/Eki/14 04:21 tarihinde düzenlenmiştir

    |sadece aptalların başarısı ders notu ile ölçülür|
Toplam Hit: 1497 Toplam Mesaj: 5