Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Php ve htmlspecial chars


Pluton

Öne çıkan mesajlar

Diğer sorunumu hallettimde.

  • Işık Sigorta


    Şu kodu girdiğim zaman şu hatayı veriyor.

    Not Acceptable

    An appropriate representation of the requested resource /admin/sayfa_yonetim.php could not be found on this server.

    Ne olduğunu anlayamadım. Ama link girmessem düzgün çalışıyor.

    [ Mesaj 21 Mayıs 2007, Pazartesi - 17:34 tarihinde, Pluton tarafından güncellenmiştir ]
  • Link to comment
    Sosyal ağlarda paylaş

    yok ya ne gizli olcak dandikdan bir kod alla alla :d

    [spo]#ANLAŞMALI KURUMLAR SAYFASI GÜNCELLEME
    if ( $_GET[sayfa] == "anlasmalikurumlar") {

    $query ="SELECT * FROM sayfa WHERE id=4 LIMIT 1";
    $result = mysql_query($query);
    while ($row = mysql_fetch_assoc($result)) { ?>


    Başlık:


    İçerik:





    if ( $_GET[degistirildi] == "anlasmalikurumlar" ) {

    $baslik = $_POST[baslik];
    $icerik = $_POST[icerik];
    $sql = "UPDATE sayfa SET baslik='$baslik', icerik='$icerik' WHERE id='4'";
    $duzenlex = mysql_query($sql) or die ('

    Basarisiz Sorgu

    '.mysql_error());
    echo "";}[/spo]

    Kod bu. Diğer bütün sayfalara etki edenlerin hepsi böle
    Link to comment
    Sosyal ağlarda paylaş

    sql injectiondan korunmak için mysql_real_escape_string($_POST['baslik']); şeklinde kullanın formdan aldığınız bilgileri...

    PS : Ayrıca php sorunları için ceviz.net forumlarını kullanabilirsiniz iyi anlayan arkadaşlar mevcut...

    [ Mesaj 23 Mayıs 2007, Çarşamba - 06:22 tarihinde, ad3m tarafından güncellenmiştir ]
    Link to comment
    Sosyal ağlarda paylaş

    Abi zor geliyo nabıyım =P
    Zaten addslashes'tan bıktım artık kullanmıcam, magic_quotes_gpc'ye geçiş yapıyorum ben. cookie get post variablelarını direk tırnakları ' yapıyor. Eskiden beri bilirdim magic_quotes_gpc'yi ama hani her sunucuya uymaz diye kullanmazdım, artık uymasa da uydurcaz, gına geldi addslashestan =).
    En nefret ettiğim şey değişkenlere teker teker addslashes koymak =)

    Yazdırırken de tema sistemi smarty kullandığımdan genelde {$string|ss} diyom stripslashes edio direk, tabi stripslashesı modifier olarak ss kullanımı ile smartye register etmek gerekiyo. =)

    hatta magic_quotes_gpc kapalı olan bir sunucuda ini_set de kullanılmıyosa (safe modeda kullanılmıyo mesela) şu güzel durur

    if ($_POST)
    { foreach ($_POST as $k => $v) { $_POST[$k] = addslashes($v); } }

    gibi magic olmayan bir quotes_gpc de yazılabilir =P

    [ Mesaj 23 Mayıs 2007, Çarşamba - 12:02 tarihinde, Brigand tarafından güncellenmiştir ]
    Link to comment
    Sosyal ağlarda paylaş

    said:
    magic quote php.ini ayarı değil mi ? direk ini set etsenize niye kasıyonuz kendinizi.

    @Zopik, ini_set kullanılamıyabiliyor bazen. disabled functions'a eklenirse kullanılamaz, ayrıca php safe modda ise otomatikmen disabled functionsa eklenmiş gibi oluor.

    Sanırım senin sunucun/sunucuların var, tabi rahatsın =P, biz shared hosting kullanıyoz =P belki ilerde sunucu işlerine de girerik =)

    said:
    mysql_real_escape_string($_POST['baslik']);

    Bu ne yapar kullanıcamda şimdi ne işe yaradığınıda öğreniyim bari. php.net'e baktımda anlamadım bişiy

    @Pluton, o function string içindeki ' işaretlerini ' yapar, böylece sql sorgularında sorun yaşatmaz. Sql Injection yemezsin. Sql Injection diye arat google'da, o zaman komutun ne kadar faydalı birşey olduğunu görürsün. Yine aynı şekilde bir veritabanına veri giriyorsan input ya da textarea içine bir tane ' koy ve sonucunda alacağın hataya bak ;)
    ed: eğer magic_quotes_gpc açık ise hata almazsın. Ama o zaman veriyi sqlden yazdırmayı dene ve otomatikmen ' şeklinde tırnak işaretlerinin değiştiriğini görürüsn.

    [ Mesaj 23 Mayıs 2007, Çarşamba - 13:38 tarihinde, Brigand tarafından güncellenmiştir ]
    Link to comment
    Sosyal ağlarda paylaş

    öncelikle safe mode üzerine plan yapmayın. safe mode'da çalışıyor olmak için bir neden yok, ki safe mode'a bakarsanız php.net'te "Safe Mode was removed in PHP 6.0.0" ibaresini görürsünüz.

    ayrıca teker teker her stringi değiştireceğinize bir fonksiyon yazıp onu kullansanız daha profesyönel, daha adam akıllı olmaz mı? ;)
    Link to comment
    Sosyal ağlarda paylaş

    Fonksiyon zaten mevcut mum, addslashes ile ama teker teker stringlere eklemek zor geliyor :), gelen bir stringler için sırf addslahes için teker teker satır koyuyorum. Yıllardır aynısını yapmaktan usandım artık :)

    Mesela bir ayar sayfası yapıyorsun, 20 tane ayar var, hepsini sql sorgusunda direk yazabilirsin ama önce teker teker 20 tane addslashes ekliyon, mutlu olamıyorum sonra :). Sql sorgusunda addslashes ile yazsan yine karışıklık oluyor, düzensiz kodlardan hoşlanmıyorum =).

    Ayrıca biliyorum php 6.0.0'da safe mode kalkıyor, lakin şu anda kullandığım reseller hesabımın olduğu hostingde mysql bile 5 serisi olmasına rağmen php 4.4 serisi :). Üstelik başka insanların da kullanacağı bir script yazılacak ise her sunucuya uyumlu olması lazım. E buna göre ilk önce magic_quotes 1 mi bakılır, değilse 1 yapmaya çalışılır, olmuyorsa da yukardaki döngü iş görür, böylece kod karmaşasından kurtulur insan.

    Ed: Şu andaki hostingim safe moddu. Lakin DirectAdmin ne güzel şeydir ki hosting şirketine ticket attığımda istediğim sitelerin safe modunu kapatıyorlar. İlk önce bende şaşırdım ama DirectAdmin site bazlı safe mod ayarı yapıyormuş =)

    [ Mesaj 23 Mayıs 2007, Çarşamba - 14:14 tarihinde, Brigand tarafından güncellenmiştir ]
    Link to comment
    Sosyal ağlarda paylaş

    magic quote'un varsayılan olarak açık gelmesi gerekiyor (yanlış hatırlıyor da olabilirim). Bir çok sistem yöneticisi -ki dünyanın en büyükleri de dahil buna- bir kaç ayardan daha fazlasına dokunmuyor.

    Şunu söylemeliyim ki php gerçekten oldukça güçlü bir dil. Bir sunucu üstünde php dosyası çalıştırabiliyorsanız ve sistem yöneticisi düzgün bir yapılandırma yapmamışsa o sunucu üzerinde hemen her şeye ulaşabilirsiniz. Erişimim olan onlarca sunucuda denedim hemen hepsinde yetkim dışındaki verilere ulaştım. E-Ticaret sitelerinin veri tabanları da dahil.

    Neyse, kısacası ya şu yoksa ya bu yoksa diye kasmayın pek. Zilyon tane hizmet sağlayıcı var. Hiç olmadı gelip benden alırsınız hosting'i : P
    Link to comment
    Sosyal ağlarda paylaş

    @Zopik, yaza çeşitli projelerim var, zip olarak indirilip kullanılabilecek. O nedenle yazdıklarımın her sunucuda kullanılabileceğinden emin olmam gerekiyor. Ondan her ayara karşı özenle kontrol koymakta fayda görüyorum :).

    Bakınız phpBB'nin gzip olayına (page_tail.php miydi neydi tam hatırlayamıyorum), adamlar bilmem kaç satır gzip şeysi koyuyorlar, yok php 4.3'den küçük mü, yok 5.0'dan büyükmü, yok gzip sunucuda var mı vs. vs... =) Halbuki gzip dediğimiz şey ob_start ("ob_gzhandler"); olan bir satırlık birşey =)
    Link to comment
    Sosyal ağlarda paylaş

    Bu arada yine @Zopik =), evet sunucuda userlarının dizin kısıtlaması yoksa herkesin config dosyasını okuyup db şifrelerini alıp sql'e bağlanabilirsin. Hatta biryerlerden root şifresini alabilirsen daha rahat olur bu işlem =P
    Bir de exec() fonksiyonunu kullanaibiliyorsan (tabi linuxta) sunucu zaten senin demek =P, bu ikisi dışında aklıma gelen başka güvensizlik şeysi yok.

    [ Mesaj 23 Mayıs 2007, Çarşamba - 14:28 tarihinde, Brigand tarafından güncellenmiştir ]
    Link to comment
    Sosyal ağlarda paylaş

    ×
    ×
    • Yeni Oluştur...