944 messaggi dal 11 febbraio 2013
Salve...
facendo alcune prove in un form per l'invio email in un sito ho tentato di scrivere codice html/javascript
e ho ovviamente ottenuto un errore che mi dice "potentially dangerouse request form"

come posso impedire che l'utente scriva codice malevolo ?
o meglio come posso impedire che il server processi questo codice?
grazie
Modificato da jjchuck il 21 dicembre 2016 13.11 -
Ciao,
immagino parli di webforms...
Di default asp.net fa già tutti i controlli del caso.
Quando hai bisogno di fare il post con del codice html (ad es. richtextbox o editor WYSIWYG) devi aggiungere nella direttiva di pagina:
ValidateRequest = "false"

(si può fare anche a livello di web.config.
Se parliamo di ASP.NET 4, sempre nel web.config va aggiunto:
<httpRuntime requestValidationMode = "2.0" />

Alternative sono l'encoding o l'escaping dei caratteri malevoli.

Ormai programmano tutti... ma la professionalità appartiene a pochi
944 messaggi dal 11 febbraio 2013
Grazie Manuel per la risposta.
Si parlo di webform
Mettendo a false nella direttiva della pagina (o come dici tu nel webconfig)
cosa accade?

Se l'utente scrive un messaggio con tag html il server li ignora ?

Non essendo un professionista mi affido ai vostri suggerimenti.

Tu cosa mi consigli.

Mi spiego...è una classica contact form dove l'utente puoi inviare con smpt messaggi dal sito.

Ricordo anche di aver letto nei manuali che ci sono dei requirefieldvalidator....

Chiedo consiglio perchè oramai gli occhi non mi reggono piu...aspetto solo le vacanze
:)

grazie mille :)
io uso varie soluzioni ma eviterei di arrivare a disabilitare la validazione. Mi spieghi cosa dovrebbe inserire di "non testo"?
Si, esistono dei validatori per i campi obbligatori ma non funzionano sulle textarea (immagino tu stia usando una textarea o un textbox multiriga che viene trasformato comunque in una textarea. Ti conviene utilizzare in questo caso un CustomValidator con una funzione lato server che controlla il contenuto della Textbox.

Ormai programmano tutti... ma la professionalità appartiene a pochi
944 messaggi dal 11 febbraio 2013
Si uso una textbox multiline...

Per esempio <b>Ciao</b>

e da un errore

Percui mi suggerisci un customvalidator lato server ?
grazie
98 messaggi dal 13 febbraio 2016
Buongiorno jjchuck,
scusate l'intrusione.
Ti basta impostare ValidateRequest su false alla pagina e utilizzare una regex per individuare l'immissione di codice html, ad esempio così:

 protected void btn_Click(object sender, EventArgs e)
    {
        Regex rgx = new Regex("<[^>]*>");
        if (rgx.IsMatch(TextBox1.Text))
        {
            //rilevato codice html
        }
        else
        {
            //non rilevato codice html

        }
    }


Ciao
Paolo
Modificato da pillopo il 22 dicembre 2016 13.33 -
944 messaggi dal 11 febbraio 2013
ciao
avevo già letto su un app per smartphone delle regexpression...ma non ho avuto ancora il piacere :)

grazie

nel pomeriggio provo e ti dico...

grazie ancora
3.939 messaggi dal 28 gennaio 2003
Non so. Io la penso in modo diverso. Secondo me, in un TextBox, l'utente deve avere la possibilità di scrivere quello che vuole, codice html e javascript.
E' compito del codice lato server intervenire dove c'è bisogno (e se c'è bisogno)

Per esempio, in una prova per mandare posta, intercetto quello che arriva dal textbox in questo modo:
sb.Append("Il mio messaggio di testo <b>in formato html</b>" & "<hr />" & Me.Server.HtmlEncode(Me.TextBox_messaggio.Text).Replace(ControlChars.NewLine, "<br />").Replace(ControlChars.Lf, "<br />").Replace(ControlChars.Cr, "<br />"))


ho mandato questo scritto:
<script>alert("ciao, Mondo!");</script>

<h1 style="color:red;">Prova di scrittura</h1>


e nell'e-mail vedo esattamente questo.

Quello che non capisco sono i pericoli


ps. naturalmente, dico così perchè non sono mai incappato in situazioni pericolose. Ma sono pronto a cambiare opinione se mi si mostra un esempio "pericoloso"

ciao
Modificato da pietro09 il 22 dicembre 2016 11.56 -

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.