(1)
SQL injection hk. (php)
selamlar ya bir sorum olacaktı. bir database class'ı yazarken, sql injection'a karşı nasıl önlem alabiliriz? pdo sınıfında prepare işlemleri bunu sağlıyor bildiğim kadarıyla.şimdi örnek vermek istiyorum;public function __construct($username = "", $password = "", $host = "", $dbname = "", $options=ar
selamlar ya bir sorum olacaktı.
bir database class'ı yazarken, sql injection'a karşı nasıl önlem alabiliriz? pdo sınıfında prepare işlemleri bunu sağlıyor bildiğim kadarıyla.
şimdi örnek vermek istiyorum;
public function __construct($username = "", $password = "", $host = "", $dbname = "", $options=array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')){
$this->isConnected = true;
try {
$this->datab = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
$this->datab->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->datab->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}
catch(PDOException $e) {
$this->isConnected = false;
throw new Exception($e->getMessage());
}
}
public function getRows($query, $params=array()){
try{
$stmt = $this->datab->prepare($query);
$stmt->execute($params);
return $stmt->fetchAll();
}catch(PDOException $e){
throw new Exception($e->getMessage());
}
}
public function insertRow($query, $params){
try{
$stmt = $this->datab->prepare($query);
$stmt->execute($params);
}catch(PDOException $e){
throw new Exception($e->getMessage());
}
}
public function updateRow($query, $params){
return $this->insertRow($query, $params);
}
bu fonksiyonları düşündüğümüzde burada açıklar nelerdir?
0
veya da sizin önereceğiniz bir veritabanı class'ı mevcut mudur? "hem her türlü güvenliği var hem de çok pratik" diyeceğiniz. en azından onun üstünden okuyarak işlemleri anlayayım.
0