Pagina 1 di 1

PDO - Transactions e Prepared Statements

Inviato: 08/03/2016, 20:42
da Maestew
Salve,

vorrei sapere in quali casi o quando è più opportuno utilizzare le Transactions

Codice: Seleziona tutto

$dbh->beginTransaction();
rispetto ai Prepared Statements

Codice: Seleziona tutto

$stmt = $dbh->prepare(...);
Grazie :D

Re: PDO - Transactions e Prepared Statements

Inviato: 08/03/2016, 21:28
da Sir Xiradorn
Quando hai bisogno di avere dei trasferimenti di dati sicuri e reversibili. Le transazioni, come saprai vengono usate con le insert o gli update e queste possono essere mandate in rollback quando qualcosa va storto e quindi ti permette quindi di non avere fallimenti nelle procedure suggerite.

Il prepare ti serve non solo per gli inserting ma anche per per la parte di select e il prepare insieme al data binding protegge le tue queries dalla procedura di injection la quale permette di introdurre caratteri speciali per vanificare una queri e poter così accedere a dati sensibili.

Se ad esempio crei una zona di testo per il login, e non fai il binding e il controllo potresti fare qualcosa del tipo.
Caso normale
User: Utente1
Pass: Passwd

Ammettiamo che la zona di testo abbia una query che fa accesso e non abbia la giusta protezione. Te potresti fa na cosa del genere ad esempio
Caso Injected
User: ' or 0=0

Questa condizione manda in palla il tuo database perchè 0=0 è sempre vera. Ora non entro troppo nel merito perchè non è simpatico rivelare come fare delle inject ma sappi che puoi addirittura lanciare comandi e fare tante belle cose.

Altri dubbi?

Re: PDO - Transactions e Prepared Statements

Inviato: 09/03/2016, 13:18
da Maestew
Grazie per la risposta, al momento non ho nessun altro dubbio.