# Best Practice -- inserimento nel database e SQL injection

**URL:** <https://www.ruby-forum.com/t/best-practice-inserimento-nel-database-e-sql-injection/176155>\
**Category:** IT\
**Created:** [September 25, 2009, 12:08pm UTC](https://www.ruby-forum.com/t/best-practice-inserimento-nel-database-e-sql-injection/176155 "2009-09-25T12:08:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [September 25, 2009, 12:08pm UTC](https://www.ruby-forum.com/t/best-practice-inserimento-nel-database-e-sql-injection/176155/1 "2009-09-25T12:08:56Z")

</div>

Buongiorno a tutti.

Devo fare l’import di un file XML dentro un database,

il problema e’ che dentro questo XML c’e’ veramente di tutto , comprese  
ad esempio delle query SQL comlete ( sono testi di documentazione  
tecnica).

Non posso fare un HTML encoding perche’ il testo va mantenuto  
“leggibile”

Fino ad oggi ho lavorato con ASP Classic ed ho tutti i miei metodi per  
fare la “pulizia” delle stringhe.

in RoR quale e’ la Best Practice?

---

<div class="post-metadata">

**Author:** ![ialuronico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@ialuronico](https://www.ruby-forum.com/u/ialuronico)\
**Post date:** [September 25, 2009, 12:18pm UTC](https://www.ruby-forum.com/t/best-practice-inserimento-nel-database-e-sql-injection/176155/2 "2009-09-25T12:18:54Z")

</div>

Il 25 settembre 2009 12.08, Simone R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> in RoR quale e’ la Best Practice?

in generale, non costruire mai le query a mano, ma usare sempre:  
per inserimento/modifica, istanza.colonna =  
qualcosa\_di\_potenzialmente\_insicuro, anziché “INSERT INTO SQL (…)  
VALUES (” + qualcosa\_di\_potenzialmente\_insicuro + “,…)”

per la ricerca, le espressioni array o hash:

Modello.find :all, :conditions =\> [“colonna = ?”,  
qualcosa\_di\_potenzialmente\_insicuro]

o

Modello.find :all, :conditions =\> {:colonna =\>  
qualcosa\_di\_potenzialmente\_insicuro}

A dire il vero, anche quando devi costruire query tali da necessitare,  
ad esempio, find\_by\_sql, puoi comunque farti aiutare da active\_record:

Modello.find\_by\_sql [“SELECT \* FROM questo, quello, WHERE tale = ? AND  
talantro = ?”, qualcosa\_di\_potenzialmente\_insicuro,  
qualcosaltro\_di\_potenzialmente\_insicuro]
