Skip to content

Commit 8d50840

Browse files
committed
translation progress database.xml
1 parent 6c50039 commit 8d50840

File tree

1 file changed

+60
-79
lines changed

1 file changed

+60
-79
lines changed

security/database.xml

Lines changed: 60 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
<simpara>
88
Al giorno d'oggi, i database sono componenti essenziali di qualsiasi
9-
applicazione basata sul Web, consentendo ai siti Web di fornire vari contenuti
10-
dinamici. Poiché anche le informazioni molto sensibili o segrete possono
9+
applicazione basata sul Web, consentendo ai siti Web di fornire molti contenuti
10+
dinamici. Poiché anche le informazioni sensibili o segrete possono
1111
essere archiviate in un database, dovresti prendere seriamente in considerazione di
1212
protegere i tuoi database.
1313
</simpara>
@@ -16,16 +16,16 @@
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">manomettere una query SQL</link>.
19+
linkend="security.database.sql-injection">manometterelo con una query SQL</link>.
2020
</simpara>
2121
<simpara>
22-
Come si può immaginare, <acronym>PHP</acronym> non può proteggere il database da solo.
22+
Da come si può immaginare, <acronym>PHP</acronym> non può proteggere da solo il database.
2323
Le prossime sezioni puntano a introdurre le modalità di come
2424
accedere e manipolare ai database all'interno di uno script <acronym>PHP</acronym>.
2525
</simpara>
2626
<simpara>
2727
Bisogna tener presente questa semplice regola: (Defense in Depth) difesa in profondità. Più prendi provvedimenti
28-
per aumentare la protezione del database, minore è probabilità che un utente malintenzionato
28+
per aumentare la sicurezza del database, minore è probabilità che un utente malintenzionato
2929
riesca ad accedere o abusare di eventuali dati archiviati. Una buona progettazione
3030
dello schema del database e dell'applicazione previene le tue più grandi paure.
3131
</simpara>
@@ -34,15 +34,15 @@
3434
<title>Progetazione del database</title>
3535
<simpara>
3636
Il primo passo è quello di creare il database, a meno che non si voglia utilizzarne uno
37-
di terze parti. Una volta creato il database, gli viene assegnato a un proprietario,
38-
che ha eseguito l'istruzione di creazione. Di solito, solo il proprietario
39-
(o un superuser) può fare qualsiasi cosa con gli oggetti in quel database e,
37+
di terze parti. Una volta creato il database, viene assegnato un proprietario,
38+
a chi ha eseguito l'istruzione di creazione. Di solito, solo il proprietario
39+
(o l'amministratore) può fare qualsiasi cosa con gli oggetti di quel database e,
4040
per consentire ad altri utenti di utilizzarlo, gli devono essere concessi dei privilegi.
4141
</simpara>
4242
<simpara>
4343
Le applicazioni non dovrebbero mai connettersi al database come proprietario o
44-
superutente, perché questi utenti possono eseguire qualsiasi query a piacimento,
45-
ad esempio, potrebbero modificare lo schema (ad esempio eliminando tabelle) o potrebbero
44+
amministratore, poichè questi utenti possono eseguire qualsiasi query a piacimento,
45+
ad esempio, potrebbero modificare lo schema (ad esempio eliminando le tabelle) o potrebbero
4646
eliminare l'intero contenuto.
4747
</simpara>
4848
<simpara>
@@ -51,28 +51,28 @@
5151
solo i privilegi necessari per evitare che lo stesso utente possa modificare
5252
il database tramite le diverse funzionalità. Ciò significa che se gli intrusi ottengono
5353
l'accesso al tuo database utilizzando le credenziali delle tue applicazioni,
54-
potrebbero apportare tutte le modifiche quante ne sono previsti dai privilegi.
54+
potrebbero apportare tutte le modifiche quante ne sono previste dai privilegi.
5555
</simpara>
5656
</sect1>
5757

5858
<sect1 xml:id="security.database.connection">
5959
<title>Connessione al database</title>
6060
<simpara>
61-
E' possibile stabilire connessioni SSL per crittografare le
62-
comunicazioni client/server per una maggiore sicurezza oppure è possibile utilizzare SSH
61+
E' possibile per una maggiore sicurezza stabilire connessioni SSL per criptare le
62+
comunicazioni client/server oppure è possibile utilizzare SSH
6363
per criptare la connessione di rete tra i client e il server del database.
64-
Se viene utilizzato uno di questi sistemi, monitorare il traffico e ottenere
65-
le informazioni sul tuo database saranno difficili da parte di un potenziale malintenzionato.
64+
Se viene utilizzato uno di questi sistemi, sarà difficile monitorare il traffico e ottenere
65+
le informazioni del tuo database da parte di un potenziale malintenzionato.
6666
</simpara>
6767
<simpara>
68-
Se il tuo server database ha il supporto SSL nativo, considera l'utilizzo delle <link
69-
linkend="ref.openssl">Funzioni OpenSSL</link> nelle comunicazioni tra
68+
Se il server del database ha il supporto nativo SSL, si può considerare l'uso delle funzioni <link
69+
linkend="ref.openssl">OpenSSL</link> per comunicazioni tra
7070
<acronym>PHP</acronym> e database tramite SSL.
71-
</simpara><!-- XXX (livelli ruoli)-->
71+
</simpara>
7272
</sect1>
7373

74-
<sect1 xml:id="security.database.storage"> <!-- tradurlo o lasciarlo in Inglese? -->
75-
<title>Modello d'archiviazione crittografato - Encrypted Storage Model</title>
74+
<sect1 xml:id="security.database.storage"> <!-- tradurlo o lasciarlo in Inglese? - Encrypted Storage Model-->
75+
<title>Modello d'archiviazione crittografato</title>
7676
<simpara>
7777
SSL/SSH protegge i dati che viaggiano dal client al server: SSL/SSH
7878
non protegge i dati persistenti archiviati in un database. SSL è un
@@ -85,24 +85,24 @@
8585
è un buon modo per limitare questa minaccia, ma pochissimi database offrono
8686
questo tipo di crittografia dei dati.
8787
</simpara>
88-
<simpara> <!--XXX pacchetto?? classe libreria -->
89-
Il modo più semplice per aggirare questo problema è innanzitutto creare il proprio pacchetto di crittografia,
88+
<simpara> <!--XXX pacchetto?? classe libreria funzione -->
89+
Il modo più semplice per aggirare il problema è innanzitutto creare il proprio pacchetto di crittografia,<!-- classe o funzione-->
9090
e quindi utilizzarlo nei tuoi script <acronym>PHP</acronym>. <acronym>PHP</acronym>
9191
può aiutarti con diverse estensioni, come <link
92-
linkend="book.openssl">OpenSSL</link> e <link
93-
linkend="book.sodium">Sodium</link>, che copre un'ampia varietà di algoritmi di crittografia.
92+
linkend="book.openssl">OpenSSL</link> o <link
93+
linkend="book.sodium">Sodium</link>, che impiega un'ampia varietà di algoritmi di crittografia. <!-- vanta usa impiega-->
9494
Lo script cripta i dati prima di inserirli nel database e li decripta
9595
durante il recupero. Vedere i riferimenti per ulteriori esempi
96-
su come funziona la crittografia.<!-- XXX 1 controllo -->
96+
su come funziona la crittografia.
9797
</simpara>
9898

9999
<sect2 xml:id="security.database.storage.hashing">
100100
<title>Hashing</title>
101101
<simpara>
102-
Nel caso di dati veramente nascosti(estremamente /privati- segreti- ), se non è necessaria la loro rappresentazione grezza(originale - in chiaro )
102+
Nel caso di dati veramente segreti <!--estremamente /privati- segreti -->, se non è necessaria la loro rappresentazione originale <!--originale - in chiaro - grezza -->
103103
(p.es. non dev'essere visualizzato), è necessario prendere in considerazione l'hashing.
104-
L'esempio ben noto di hashing è la memorizzazione della password criptata tramite hashing
105-
(è il salvataggio dell'hash della password) nel database,
104+
Un'esempio ben noto di hashing <!-- è la memorizzazione della password criptata tramite hashing -->
105+
è il salvataggio dell'hash della password nel database,
106106
invece della password stessa.
107107
</simpara>
108108
<simpara>
@@ -117,7 +117,8 @@
117117
<example>
118118
<title>Campo per l'Hash della password</title>
119119
<programlisting role="php">
120-
<![CDATA[
120+
<!--tradurre-->
121+
<![CDATA[
121122
<?php
122123
123124
// storing password hash
@@ -146,23 +147,23 @@ if ($row && password_verify($password, $row['pwd'])) {
146147
<sect1 xml:id="security.database.sql-injection">
147148
<title>SQL Injection</title>
148149
<simpara>
149-
L'SQL injection è una tecnica dove un utente malintenzionato sfrutta i difetti del
150+
L'SQL injection è una tecnica dove un'utente malintenzionato sfrutta i difetti del
150151
codice responsabile della creazione di query SQL dinamiche.
151152
L'aggressore può accedere a sezioni privilegiate dell'applicazione,
152153
recuperare tutte le informazioni dal database, manomettere i dati esistenti,
153-
o addirittura eseguire comandi pericolosi a livello di sistema sul database <!-- sarebbe macchina host-->
154-
ospite(host). La vulnerabilità si verifica quando gli sviluppatori concatenano o
154+
o addirittura eseguire comandi pericolosi a livello di sistema Host dul database.
155+
La vulnerabilità si verifica quando gli sviluppatori concatenano o
155156
interpolano dati arbitrari nelle loro istruzioni SQL.
156157
</simpara>
157158
<para>
158159
<example>
159-
<title> <!-- XXX 1 controllo -->
160-
Dividere il set di risultati in pagine ... e creare superutenti <!-- amministratori -->
160+
<title>
161+
Dividere il set di risultati in pagine ... e creare amministratori <!-- amministratori -->
161162
(PostgreSQL)
162163
</title>
163164
<simpara>
164-
Nell'esempio seguente, l'input dell'utente viene interpolato <!--binding--> direttamente nella
165-
Query SQL che consente all'aggressore di ottenere un account superuser <!--amministratore--> nel database.
165+
Nell'esempio seguente, l'input dell'utente viene interpolato direttamente nella
166+
Query SQL che consente all'aggressore di ottenere un account amministratore nel database.
166167
</simpara>
167168
<programlisting role="php">
168169
<![CDATA[
@@ -197,33 +198,22 @@ insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
197198
</para>
198199
<note>
199200
<para>
200-
È una tecnica comune per forzare il parser SQL a ignorare il resto del file <!--della richiesta-->
201-
con una query scritta dal programmatore con <literal>--</literal> che introduce <!-- con \-\- inserisce i commenti in sql -->
201+
Una tecnica comune per forzare il parser SQL a ignorare il resto della richiesta
202+
query scritta dal programmatore è usare <literal>--</literal> che introduce <!-- con \-\- inserisce i commenti in sql -->
202203
i commenti in SQL.
203204
</para>
204205
</note>
205206
<para>
206207
Un modo possibile per ottenere le password è analizzare le pagine dei risultati di ricerca.
207208
L'unica cosa che l'attaccante deve fare è vedere se sono presenti variabili inviate
208-
utilizzate nelle istruzioni SQL che non vengono gestite correttamente. Questi filtri possono essere impostati
209-
comunemente in una forma personalizzata di <literal>WHERE, ORDER BY,
210-
Clausole LIMIT</literal> e <literal>OFFSET</literal> in <literal>SELECT</literal>
211-
dichiarazioni. Se il tuo database supporta il costrutto <literal>UNION</literal>,
212-
l'aggressore potrebbe tentare di aggiungere un'intera query a quella originale da elencare <!-- in modo da -->
213-
password da una tabella arbitraria. <!-- è fortemente consigliato salvare/inserire solola chiave hash -->Si consiglia vivamente di salvare sole le secure hash delle password
209+
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,
211+
LIMIT</literal> e <literal>OFFSET</literal> nell'istruzione <literal>SELECT</literal>.
212+
Se il database supporta il costrutto <literal>UNION</literal>,
213+
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
214215
anziché le password stesse.
215-
216-
217-
A feasible way to gain passwords is to circumvent your search result pages.
218-
The only thing the attacker needs to do is to see if there are any submitted variables
219-
used in SQL statements which are not handled properly. These filters can be set
220-
commonly in a preceding form to customize <literal>WHERE, ORDER BY,
221-
LIMIT</literal> and <literal>OFFSET</literal> clauses in <literal>SELECT</literal>
222-
statements. If your database supports the <literal>UNION</literal> construct,
223-
the attacker may try to append an entire query to the original one to list
224-
passwords from an arbitrary table. It is strongly recommended to store only
225-
secure hashes of passwords instead of the passwords themselves.
226-
<example>
216+
<example> <!-- XXX controllo -->
227217
<title>Elencare gli articoli... e alcune password (può essere usato su qualunque database server).</title>
228218
<programlisting role="php">
229219
<![CDATA[
@@ -237,8 +227,8 @@ $result = odbc_exec($conn, $query);
237227
]]>
238228
</programlisting>
239229
</example>
240-
La parte statica della query può essere combinata con un'altra <!-- The static part of the query can be combined with another-->
241-
<literal>SELECT</literal>dichiarazione che rivela tutte le password: <!-- statement which reveals all passwords:-->
230+
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:-->
242232
<informalexample>
243233
<programlisting role="sql">
244234
<![CDATA[
@@ -404,8 +394,8 @@ $stmt->execute(["%{$productId}%"]);
404394
</para>
405395

406396
<simpara>
407-
Le Prepared statement Sono fornite.
408-
<link linkend="pdo.prepared-statements">da PDO</link>,
397+
Le Prepared statement Sono fornite. Da
398+
<link linkend="pdo.prepared-statements">PDO</link>,
409399
<link linkend="mysqli.quickstart.prepared-statements">da MySQLi</link>,
410400
e da altre librerie per database.
411401
</simpara>
@@ -450,7 +440,7 @@ $stmt->execute(["%{$productId}%"]);
450440
<listitem>
451441
<simpara>
452442
Se l'applicazione prevede un input numerico, prendi in considerazione la verifica dei dati
453-
con <function>ctype_digit</function>, modifica silenziosamente il suo tipo
443+
con <function>ctype_digit</function>, modificare con discrezione il suo tipo
454444
usando <function>settype</function> o usa la sua rappresentazione numerica
455445
con <function>sprintf</function>.
456446

@@ -462,31 +452,22 @@ $stmt->execute(["%{$productId}%"]);
462452
</listitem>
463453
<listitem>
464454
<simpara>
465-
Se il livello del database non supporta variabili di binding, allora
466-
cita <!--quota--> ogni valore non numerico fornito dall'utente che viene passato al
467-
database con la funzione di escape della stringa specifica del database (ad esempio
455+
Se il livello<!--l' interfaccia --> del database non supporta il binding delle variabili, allora
456+
va messo tra virgolette <!--quote--> ogni valore non numerico fornito dall'utente che viene passato al
457+
database con la specifica funzione di escape del database per le stringhe (ad esempio
468458
<function>mysql_real_escape_string</function>,
469459
<function>sqlite_escape_string</function>, ecc.).
470460
Le funzioni generiche come <function>addslashes</function> sono utili solo
471-
in un ambiente molto specifico (ad esempio MySQL in un set di caratteri a singolo byte
472-
con <varname>NO_BACKSLASH_ESCAPES</varname> disabilitato), quindi è
461+
in un ambiente molto specifico<!--limitato--> (ad esempio MySQL in un set di caratteri a singolo byte
462+
con <varname>NO_BACKSLASH_ESCAPES</varname> disabilitato)e quindi è
473463
meglio evitarle.
474-
475-
If the database layer doesn't support binding variables then
476-
quote each non-numeric user-supplied value that is passed to the
477-
database with the database-specific string escape function (e.g.
478464
<function>mysql_real_escape_string</function>,
479-
<function>sqlite_escape_string</function>, etc.).
480-
Generic functions like <function>addslashes</function> are useful only
481-
in a very specific environment (e.g. MySQL in a single-byte character
482-
set with disabled <varname>NO_BACKSLASH_ESCAPES</varname>), so it is
483-
better to avoid them.
484465
</simpara>
485466
</listitem>
486467
<listitem>
487468
<simpara>
488-
Non stampare <!-- far visualizare -->informazioni specifiche del database, in particolare
489-
sullo schema<!-- struttura -->, con mezzi leciti o illeciti. Vedere anche la <link
469+
Non far visualizare informazioni specifiche del database, in particolare
470+
lo schema <!-- la struttura -->, <!--con mezzi leciti o illeciti-->a qualunque costo. Vedere anche la sezione <link
490471
linkend="security.errors">Segnalazione degli errori</link> e <link
491472
linkend="ref.errorfunc">Funzioni di gestione e registrazione degli errori</link>.
492473
</simpara>
@@ -496,8 +477,8 @@ $stmt->execute(["%{$productId}%"]);
496477

497478
<simpara>
498479
Oltre a ciò, puoi trarre vantaggio dal log <!-- cronologia - report - log - traccia- traking --> delle query da parte del tuo script
499-
o dal database stesso, se lo supporta. Ovviamente, il log non è in grado
500-
di prevenire alcun tentativo dannoso, ma può essere utile per risalire a quale
480+
o, se lo supporta, dal database stesso. Ovviamente, il log non è in grado
481+
di prevenire alcun tentativo d'attacco, ma può essere utile per capire quale
501482
applicazione è stata colpita. Il registro non è utile di per sé, ma
502483
sono utili le informazioni che contiene. Generalmente più dettagli ci sono nel log meglio è.
503484
</simpara><!--XXX traduzione da sistemare -->

0 commit comments

Comments
 (0)