Skip to content

Commit edb48b4

Browse files
committed
translation progress database.xml
1 parent b1b2851 commit edb48b4

File tree

1 file changed

+23
-26
lines changed

1 file changed

+23
-26
lines changed

security/database.xml

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
eseguire una query, recuperare il risultato e quindi chiudere la connessione.
1717
Oggigiorno, il linguaggio più utilizzato per questo tipo di interazione è
1818
l'SQL (Structured Query Language). Di seguito viene mostrato come un'aggressore può <link
19-
linkend="security.database.sql-injection">manometterelo con una query SQL</link>.
19+
linkend="security.database.sql-injection">manometterlo con una query SQL</link>.
2020
</simpara>
2121
<simpara>
2222
Da come si può immaginare, <acronym>PHP</acronym> non può proteggere da solo il database.
@@ -31,7 +31,7 @@
3131
</simpara>
3232

3333
<sect1 xml:id="security.database.design">
34-
<title>Progetazione del database</title>
34+
<title>Progettazione del database</title>
3535
<simpara>
3636
Il primo passo è quello di creare il database, a meno che non si voglia utilizzarne uno
3737
di terze parti. Una volta creato il database, viene assegnato un proprietario,
@@ -41,7 +41,7 @@
4141
</simpara>
4242
<simpara>
4343
Le applicazioni non dovrebbero mai connettersi al database come proprietario o
44-
amministratore, poichè questi utenti possono eseguire qualsiasi query a piacimento,
44+
amministratore, poiché questi utenti possono eseguire qualsiasi query a piacimento,
4545
ad esempio, potrebbero modificare lo schema (ad esempio eliminando le tabelle) o potrebbero
4646
eliminare l'intero contenuto.
4747
</simpara>
@@ -207,11 +207,11 @@ insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
207207
Un modo possibile per ottenere le password è analizzare le pagine dei risultati di ricerca.
208208
L'unica cosa che l'attaccante deve fare è vedere se sono presenti variabili inviate
209209
utilizzate nelle istruzioni SQL che non vengono gestite correttamente. Questi filtri di solito possono essere impostati
210-
in un form usato precedentemente e personalizzarlo usando le clausule <literal>WHERE, ORDER BY,
210+
in un form usato precedentemente e personalizzarlo usando le clausole <literal>WHERE, ORDER BY,
211211
LIMIT</literal> e <literal>OFFSET</literal> nell'istruzione <literal>SELECT</literal>.
212212
Se il database supporta il costrutto <literal>UNION</literal>,
213213
l'aggressore potrebbe tentare di aggiungere un'intera query a quella originale per far elencare <!-- in modo da -->
214-
le password da una tabella arbitraria. <!-- è fortemente consigliato salvare/inserire solola chiave hash -->Si consiglia vivamente di salvare sole le secure hash delle password
214+
le password da una tabella arbitraria. <!-- è fortemente consigliato salvare/inserire solo la chiave hash -->Si consiglia vivamente di salvare sole le secure hash delle password
215215
anziché le password stesse.
216216
<example> <!-- XXX controllo -->
217217
<title>Elencare gli articoli... e alcune password (può essere usato su qualunque database server).</title>
@@ -228,7 +228,7 @@ $result = odbc_exec($conn, $query);
228228
</programlisting>
229229
</example>
230230
La parte statica della query può essere combinata con un'altra <literal>SELECT</literal>
231-
che rivela tutte le password: <!-- statement which reveals all passwords:-->
231+
per rivelare tutte le password: <!-- statement which reveals all passwords:-->
232232
<informalexample>
233233
<programlisting role="sql">
234234
<![CDATA[
@@ -242,12 +242,8 @@ union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from use
242242
<para>
243243
Anche le istruzioni <literal>UPDATE</literal> e <literal>INSERT</literal> sono
244244
suscettibili a tali attacchi.
245-
246-
<!--<literal>UPDATE</literal> and <literal>INSERT</literal> statements are also
247-
susceptible to such attacks.-->
248245
<example>
249-
<title>Dalla reimpostazione di una password... all'acquisizione di più privilegi (qualsiasi database server)</title>
250-
<!--From resetting a password ... to gaining more privileges (any database server)-->
246+
<title>Dalla reimpostazione di una password... all'acquisizione di più privilegi (per qualsiasi database server)</title>
251247
<programlisting role="php">
252248
<![CDATA[
253249
<?php
@@ -257,10 +253,11 @@ $query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
257253
</programlisting>
258254
</example>
259255
Se un utente malintenzionato invia la stringa <!-- XXX da rivedere -->
260-
<literal>' or uid like '%admin%</literal> in <varname>$uid</varname> per
261-
cambiare la password dell'amministratore oppure impostare la variabile <varname>$pwd</varname> semplicemente con
256+
per cambiare la password dell'amministratore
257+
<literal>' or uid like '%admin%</literal> in <varname>$uid</varname>
258+
oppure impostare la variabile <varname>$pwd</varname> semplicemente con
262259
<literal>hehehe', trusted=100, admin='yes</literal> per ottenere
263-
privilegi più elevati, la query verrà corrotta:
260+
privilegi più elevati, la query verrà aggirata: <!-- crackata inquinata corrotta -->
264261
<informalexample>
265262
<programlisting role="php">
266263
<![CDATA[
@@ -278,9 +275,9 @@ $query = "UPDATE usertable SET pwd='hehehe', trusted=100, admin='yes' WHERE
278275
</programlisting>
279276
</informalexample>
280277
</para>
281-
<simpara> <!--XXX tradurre-->
278+
<simpara>
282279
Mentre è scontato che un malintenzionato debba possederne almeno alcune nozioni
283-
dell'architettura del database per condurre un'attacco riuscito <!-- a buon fine - riuscire -->,
280+
dell'architettura del database per condurre un'attacco ben riuscito <!-- a buon fine - riuscire -->,
284281
è spesso molto semplice ottenere queste informazioni. Per esempio,
285282
il codice può far parte di un software open source ed essere disponibile al pubblico.
286283
Tali informazioni potranno anche essere divulgate
@@ -357,34 +354,34 @@ $result = mssql_query($query);
357354
<sect2 xml:id="security.database.avoiding">
358355
<title>Tecniche di elusione</title><!-- evasione - elusione -->
359356
<para><!-- XXX poco chiaro-->
360-
Il modo consigliato per evitare l'SQL injection è associare tutti i dati
361-
tramite istruzioni preparate. L'utilizzo di query parametrizzate non è
362-
sufficiente per evitare completamente l'iniezione SQL, ma è il modo più
363-
semplice e sicuro per fornire input alle istruzioni SQL. Tutti i letterali
357+
Un modo consigliato per evitare l'SQL injection è associare tutti i dati
358+
usando <!-- istruzioni preparate-->prepared-statements. L'utilizzo di query parametrizzate non è
359+
sufficiente per evitare completamente l'injection SQL, ma è il modo più
360+
semplice e sicuro per fornire l'input alle istruzioni SQL. Tutti i letterali
364361
di dati dinamici nelle clausole <literal>WHERE</literal>,
365362
<literal>SET</literal> e <literal>VALUES</literal> devono essere sostituiti
366-
con segnaposto. I dati effettivi verranno associati durante l'esecuzione e
363+
con un segnaposto. I dati effettivi verranno trasposti<!--bindings trasposti trasposizione interpolazione--> durante l'esecuzione e
367364
inviati separatamente dal comando SQL.
368365
</para>
369366

370367
<para>
371368
Il binding dei parametri può essere utilizzato solo per i dati. Altre
372369
parti dinamiche della query SQL devono essere filtrate in base a un elenco
373370
noto di valori consentiti.
374-
</para><!-- XXX tradotto da rivedere-->
371+
</para><!-- XXX tradotto poco chiaro -->
375372
<para>
376373
<example>
377-
<title> Eludere un'SQL injection usando PDO prepared Statement - Avoiding SQL injection by using PDO prepared statements</title>
374+
<title> Eludere un'SQL injection usando PDO prepared Statement</title>
378375
<programlisting role="php">
379376
<![CDATA[
380377
<?php
381378
382-
// The dynamic SQL part is validated against expected values
379+
// La parte SQL dinamica viene convalidata in base ai valori previsti
383380
$sortingOrder = $_GET['sortingOrder'] === 'DESC' ? 'DESC' : 'ASC';
384381
$productId = $_GET['productId'];
385-
// The SQL is prepared with a placeholder
382+
// Il codice SQL viene trasposto con un placeholder
386383
$stmt = $pdo->prepare("SELECT * FROM products WHERE id LIKE ? ORDER BY price {$sortingOrder}");
387-
// The value is provided with LIKE wildcards
384+
// Il valore è reso disponibile usando LIKE
388385
$stmt->execute(["%{$productId}%"]);
389386
390387
?>

0 commit comments

Comments
 (0)