377 messaggi dal 08 settembre 2001
ciao ragazzi,
sto diventando un tormento, ehehehehe io prima di inserire nel DB faccio un controllo nella stringa con questa funzione:
Public Function Controlla_Stringa(ByVal Campo As String) As String
            If Campo <> "" Then
                Campo = Replace(Campo, "?>", "")
                Campo = Replace(Campo, "|", "")
                Campo = Replace(Campo, "\", "")
                Campo = Replace(Campo, "\n", "")
                Campo = Replace(Campo, "<", "&lt;")
                Campo = Replace(Campo, ">", "&gt;")
                Campo = Replace(Campo, "'", "''")
                Campo = Replace(Campo, Chr(13), "<br>")

                Dim Carattere, AsciiValue As String

                Carattere = Right(Campo, 1)
                AsciiValue = Asc(Carattere)
                If (AsciiValue <= 32 Or AsciiValue >= 161) Then
                    '// se il codice ascii del carattere inserito è >=192 
                    '//elimino il carattere inserito 
                    Campo = Replace(Campo, Carattere, "")
                End If
            End If
            Return Campo
        End Function


vorrei chiedervi il favore di aiutarmi a renderla + potente. Nel senso che vorrei evitare qualsiasi carattere speciale del tipo:
$ ^ { [ ( | ) ] } * + ? \ o altri se ce ne sono.
e vorrei conoscere anche il loro codice in modo che quando incontro questi caratteri in un testo li possa sostituire.

una domanda banale: ma se io sostituisco "<" con "&lt;" poi come faccio a fare l'inverso, sempre con una replace? Ma poi corro qualche rischio di incompatibilità?
30 messaggi dal 22 agosto 2003
Anch'io ho utilizzato una tecnica simile per assicurarmi che dentro il database non finissero cose strane o peggio script maliziosi.
Devo dire che la cosa funziona e non mi ha dato particolari problemi.
Ciao, PaoloG

PaoloG
MCSE - MCDBA - MCSD.NET
paolog@libero.it
Beh io, per rendere la stringa html compatibile uso
Server.HtmlEncode
Server.HtmlDecode
e per i pericoli di Sql injection uso sp con i parametri e quindi i problemi non si pongono.
E già elimino molti replace, per il resto userei un Regex che fa tutto

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.