La mia domanda riguarda più la pratica del design, ma dove dovrei iniziare il filtraggio? Ho pensato che la classe sarebbe stata il posto migliore, ma non avrebbe messo a rischio l'oggetto istanziato ($ objReg) per l'iniezione di codice usando variabili POST non filtrate come quella?
Come faccio a risolvere questo problema? C'è un design migliore per questo?
Index.php è il gestore di tutte le chiamate. Quindi per esempio chiamerà register.php function regist2 () (cioè index.php? Action = register2), e la funzione a sua volta istanzia l'oggetto come visto di seguito.
Questa è la tua sicurezza? Sto cercando di seguire i principi DRY e OOD per evitare confusione.
codice principale @ register.php (include ommited):
function register2(){
$objReg = new registration($_POST['username'],$_POST['password'],$_POST['email']);
$objReg->register();
unset($objReg);
}
clean class @ security.php:
class clean
{
public function process($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
}
classe di registrazione @ register.class (metodo di registrazione omesso):
class registration
{
// Registration stuffs
private $regUser = NULL;
private $regPass = NULL;
private $regEmail = NULL;
public function __construct($regName, $regPass, $regEmail)
{
//Set the class properties if they aren't NULL.
if (!empty($regName) AND !empty($regPass) AND !empty($regEmail)){
$objClean = new clean;
$this->regUser = $objClean->process($regName);
$this->regPass = $objClean->process($regPass);
$this->regEmail = $objClean->process($regEmail);
unset($objClean);
}
}
}