PHP, nasıl PDO SQL enjeksiyonları korur?

0 Cevap php

SQL enjeksiyon bir db korumak için doğru yolu hazırlanmış deyimleri kullanılarak olduğunu anlamak. I how ifadeleri benim db korumak hazırlanan anlamak istiyorum.

Yeni başlayanlar için, beyanlara "Parametrelenmiş sorguları" olarak aynı şeyi hazırlanır?

Örnek olarak, ben bir kullanıcı tabloda yeni bir kullanıcı ekleme için benim kod aşağıda yapıştırarak ediyorum. Bu güvenli midir? Nasıl PDO güvenli hale getirmek için çalışır? Daha fazla bir şey enjeksiyon db güvenli yapılması gerekiyor mu?

'Class_DB.php' in:

class DB {
 private $dbHost;
 private $dbName;
 private $dbUser;
 private $dbPassword;   
 function __construct($dbHost, $dbName, $dbUser, $dbPassword) {
  $this->dbHost=$dbHost;
  $this->dbName=$dbName;
  $this->dbUser=$dbUser;
  $this->dbPassword=$dbPassword;
 }
 function createConnexion() {
  return new PDO("mysql:host=$this->dbHost;dbName=$this->dbName", $this->dbUser, $this->dbPassword);
 }
}

'DAO_User.php' in:

require_once('Class_DB.php');

class DAO_User {
 private $dbInstance;
 function __construct($dbInstance){
  $this->dbInstance=$dbInstance;
 }
 function createUser($user){
  $dbConnection=$this->dbInstance->createConnexion();
  $query=$dbConnection->prepare("INSERT INTO users (userName, hashedPassword, userEmail) VALUES (?,?,?)");
  $query->bindValue(1, $user->userName);
  $query->bindValue(2, $user->hashedPassword);
  $query->bindValue(3, $user->userEmail);
  $query->execute();
 }
}

Teşekkürler,

JDelage

0 Cevap