Avatar billede speedpete Nybegynder
28. februar 2006 - 10:59 Der er 24 kommentarer og
1 løsning

Validation input

ASP.NET 2.0 C#:

Jeg har en række textboxe, som brugeren kan skrive i (søgefelt, f.eks.)

Hvis brugeren skriver bestemte ting, f.eks. &#, så kører aspx-siden et tjek, anser det for farligt, og siden fejler.

Det vil jeg godt tage højde for, og validere inputtet med f.eks. en CustomValidator, men spørgsmålet er: Hvad er den komplette liste over det, som ikke må skrives (Det duer ikke at frasortere f.eks. & og #, da disse tegn kan indgå i passwords)?
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 11:04 #1
brug server.HtmlEncode(dinstring) når du skal gemme den.
Så er du ude over problemet.
Når den skal ud benytter du  server.HtmlDecode(dinstring)
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 11:05 #2
på den måde uskadeligører du input
Avatar billede speedpete Nybegynder
28. februar 2006 - 11:10 #3
Tak, det var da smart.
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 11:12 #4
np :)
Avatar billede speedpete Nybegynder
28. februar 2006 - 11:14 #5
... man skal så lige sætte ValidateRequest="false" ?
Avatar billede speedpete Nybegynder
28. februar 2006 - 11:16 #6
Går dette her, rent sikkerhedsmæssigt:

<%@ Page ValidateRequest="false" %>
...
string temp = Server.HtmlEncode(TextBox1.Text);
string brugernavn = Server.HtmlDecode(temp);
...
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 11:17 #7
ja
du bruger bare
string brugernavn = Server.HtmlEncode(TextBox1.Text);
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 11:17 #8
når så brugernavn skal ud bruger du

TextBox1.Text= Server.HtmlDecode(brugernavn);
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:07 #9
Kender du så til en måde man kan håndtere System.Web.HttpRequestValidationException?

Jeg har problemet, fordi jeg ikke ved, hvordan man validerer .net2.0's login-control. Så der kan en bruger godt skrive &#, og så fejler hele siden.
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 13:10 #10
på siden skal du sætte ValidateRequest="false"
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 13:11 #11
tilføj dette event OnLoggingIn="Logind" til din log ind kontrol.
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:12 #12
ok
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 13:14 #13
protected void Logind(object sender, EventArgs e)
    {
        TextBox t = (TextBox)Login2.FindControl("UserName");
        t.Text = Server.HtmlEncode(t.Text);
    }
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:17 #14
:-( arh... men det er en <asp:Login> med en <LayoutTemplate>, så jeg kan ikke bruge FindControl, såvidt jeg husker fra et tidligere problem...
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 13:23 #15
hmmm har du adgang til tekstboksene fra codebehind ?
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:25 #16
nope...
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:26 #17
Men kan man ikke fange System.Web.HttpRequestValidationException og omdirigere til en speciel fejl-meddelse?
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 13:27 #18
måske men jeg har ikke prøvet det.
Prøv at afvikle siden og se det id som tekstboksen med brugernavn har
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:32 #19
Her kan du se, jeg har indtastet &# i passwordfeltet:

Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00$LoginView1$Login1$Password="&#").
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 13:35 #20
er ValidateRequest="false" sat ?
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 13:35 #21
i toppen af siden ?
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:38 #22
Nej, login'en sidder på min MasterPage, så jeg vil se, om jeg kan undgå at sætte ValidateRequest="false"
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:41 #23
Iøvrigt kan man slet ikke sætte den property på en MasterPAge...
Avatar billede dr_chaos Nybegynder
28. februar 2006 - 13:42 #24
tjaa så har du et problem.
så kan du ikke bruge special tegn
Avatar billede speedpete Nybegynder
28. februar 2006 - 13:46 #25
Jo, jeg kan godt bruge et password som &123#, men ikke &#1234...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester