script yazımında bunlara dikkat edin !
Giriş Yap Tema Rengi Konu Mesaj Üyeler
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Kullanıcı Adı:
Şifre:

11203 22428 Toplam üye: 17859
Son üye: shosau
 
Ana Sayfa Yardım Arcade Giriş Yap Kayıt
 

Reklamlar
Konu Bilgileri
Konu BasligiKonu: script yazımında bunlara dikkat edin !
Cevap SayisiCevap Sayisi: 0 cevap var
Okunma SayısıOkunma Sayısı 100 defa
Bu Konuyu Görüntüleyenler0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: script yazımında bunlara dikkat edin !  (Okunma Sayısı 100 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
BY_DEM@N
System Root
*

KARMA: 5708
Online Online

Cinsiyet: Bay
Mesaj Sayısı: 4050

Konu Sayısı: 1643


Aktiflik

Deneyim
Seviye
Kötü İtibar

WWW
« : 21 Ağustos 2008, 23:18:39 »

script yazarken, mümkün olduğu kadar az hidden input kullanmaya çalışın. yani, sadece gerekli bilgileri hidden input ile gönderin. diğerleri için session kullanın ya da doğrudan sorgu üzerinde işlem yapın.

mesela, bir yazı scripti, yorumlama da var. eğer yaziid veya onay gibi bir veriyi input ile yolluyorsanız, uyanık birisi çıkıp bu veriyi değiştirebilir ve karışıklıklara yol açabilir. bunları sessionlarla ya da doğrudan sorgudan yollamaya özen gösterin.

bütün post verilerini filtreleyin, sql injection veya başka hack girişimlerine izin vermemiş olursunuz. benim her zaman kullandığım filtreleme fonsiyonu aşağıda, bununla filtreleseniz yeterli olur.


Kod:
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;   
    case "long":
    case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
    case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
    case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
    case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
  }
  return $theValue;
}

}

kullanımı:
$_POST['veri'] yerine, GetSQLValueString($_POST['veri'], "text")
"text" kısmını int olarak da değiştirebilirsiniz, sadece sayı girilecekse bu bölümde. bu fonksiyon aynı zamanda verinin başına ve sonuna ' ekler ve içindeki ' karakterlerini \' haline getirir. yani doğrudan sql'e giriş için hazırlar.

veritabanında bir session tablosu oluşturup bütün ip'leri tek tek buraya kaydettirmeniz, flood saldırılarına karşı etkili olmanızı sağlar. mesela, ip adresini ve aktivite zamanını kaydedersiniz tabloya. her hareketinde zamanı güncellersiniz. kişinin 1 sn içinde 1'den fazla sayfaya girmesini engelleyerek de kötü niyetli kişilerin verebileceği zararları azaltmış olursunuz.

mysql bağlantısı kurarken, sunucunuzun özelliklerine ve ayarlarına göre, mysql_connect veya mysql_pconnect arasında karar vermelisiniz. mysql_pconnect kullandığınızda mysql_close kullanmanıza gerek kalmayacaktır, çünkü mysql_pconnect ile kullanıcı başına bir bağlantı soketi açarsınız ve bu bağlantı soketi, timeout'a uğradığında kendisi kapanır, bu yüzden bu timeout süresi kısa tutulmalıdır. Yüksek hitli sitelerde bu tercih edilmelidir. mysql_connect kullanıldığında ise, bunu her seferinde mysql_close ile kapatmazsanız sunucuyu mahfedersiniz, load havalara uçar. çünkü mysql_connect, her kullanıcının her sorgusu için ayrı ayrı bağlantı soketi açmaktadır, mysql_close ile bunlar kapatılmadığında sunucu kendinden geçer.

mümkün olduğu kadar veritabanı sorgularınızı basit tutun. mesela, yazi tablosunda kaç satır olduğunu gösterecekseniz, select * from yazi yapacağınıza select id from yazi şeklinde oluşturun sorgunuzu. bu şekilde sunucunuzu daha az yormuş olursunuz.
Logged

Linklerin Görülmesine İzin Verilmiyor
Register or Login
Bunu okumadan Forumda Herhangi Bir Konuya cvp Yazmayınız....
   
Sayfa: [1]   Yukarı git
  Yazdır  
 
Gitmek istediğiniz yer:  

|Site Map | Site Map2 | Arşiv | Wap | Wap2 | Wap Forum | XML | Rss | Google Tagget
|SiberTurk | Frmby
Reklam Vermek için by.deman@msn.com Adresine e-mail gönderiniz
For Advertising contact by.deman@msn.com

MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Asuke MC by Fakdordes & SaSuKe
XHTML 1.0 Geçerli! CSS Geçerli!
Bu Sayfa 0.365 Saniyede 24 Sorgu ile Oluşturuldu