Gå til innhold

Sikkerhetsinstillinger i IE ødelegger


Anbefalte innlegg

Hei,

 

vet ikke om jeg er i riktig forum nå men tar en sjanse. Jeg har problemer med sikkerhetsinstillingene i IE.

 

Har en webside der en kan registrere seg som forskjellige ting. Siden er koden i vb.net og aspx. Når en bruker registrerer seg blir dataene sendt gjennom vb koden og til en mysql database. Brukeren ser bare aspx koden og javascript (som bare er brukt i menyen og har ingenting med registreringsprosessen å gjøre).

Det som skjer er at på noen maskiner (inkludert min egen) så fungerer denne siden veldig fint. Men hos andre så får de ikke registrert seg fordi det kommer opp en feilmelding (som jeg selv har lagt inn i koden). Det er altså i sql spørringene eller koblingen der skjer noe muffins.

 

etter mye grubling og fomling prøvde jeg å samkjøre mine IE sikkerhetsinstillinger med en maskin der siden ikke fungerte, og etterpå fungerte siden fint på begge maskiner. Prøvde det samme på to andre maskiner med samme resultat. Så jeg har altså funnet feilen. MEN det finnes veldig mange brukere der ute som bruker IE og jeg er ikke garantert at alle har de samme instillingene som meg. Jeg må altså finne en måte å få siden til å fungere for alle, ellers har siden min ingen formål.

 

Instillingene jeg snakker om finnes under tools, internet options, security, custom level.

 

Er det noen som vet hvorfor dette skjer, hva som kan være gale med koden min og hvordan jeg kan få dette fikset??

 

Litt fortvilet her jeg sitter..... :dontgetit:

Lenke til kommentar
Videoannonse
Annonse

her er DAO koden for å registrere:

 

Public Function leggTilFosterhjem(ByVal p As Person, ByVal f As Fosterhjem) As Integer

 

Dim cmd As OdbcCommand

Dim reader As OdbcDataReader

Dim sp1 As String

Dim sp2 As String

Dim sp3 As String

Dim sp4 As String

Dim sp5 As String

Dim sp6 As String

Dim sp7 As String

Dim sp8 As String

Dim sp10 As String

Dim sp11 As String

Dim sp12 As String

Dim fosterId As Integer

Dim navnId As Integer

Dim tall As Integer = 1

 

Try

connection = New KobleTilDB

 

con = connection.KobleTilDB()

 

'sjekk postnr og poststed

sp4 = "SELECT Postnr, Poststed FROM Post WHERE Postnr = '" & p.pnr & "'"

 

cmd = New OdbcCommand(sp4, con)

 

cmd.ExecuteNonQuery()

 

Dim nr As String = ""

Dim sted As String = ""

 

reader = cmd.ExecuteReader

 

If reader.Read Then

 

nr = reader.GetString(0)

sted = reader.GetString(1).ToLower

 

End If

 

If (nr = p.pnr And sted = p.psted.ToLower) Then

 

'sjekk om person ligger inne fra før

sp8 = "SELECT Fornavn, Etternavn, Adresse, Postnr, Tlf, Mob, Mail FROM Kontaktinfo " & _

"WHERE Fornavn = '" & p.fnavn.ToLower & "' " & _

"AND Etternavn = '" & p.enavn.ToLower & "' " & _

"AND Adresse = '" & p.adr.ToLower & "' " & _

"AND Postnr = '" & p.pnr & "' " & _

"AND Tlf = '" & p.tlf & "' " & _

"AND Mob = '" & p.mob & "' " & _

"AND Mail = '" & p.epost & "' "

 

cmd = New OdbcCommand(sp8, con)

cmd.ExecuteNonQuery()

 

reader = cmd.ExecuteReader

 

If reader.Read = False Then

 

'legg til kontaktperson dersom han ikke allerede finnes i databasen

sp5 = "INSERT INTO Kontaktinfo (Fornavn, Etternavn, Adresse, Postnr, Tlf, Mob, Mail) VALUES('" & p.fnavn.ToLower & "', '" & p.enavn.ToLower & _

"', '" & p.adr.ToLower & "', '" & p.pnr.ToLower & "', '" & p.tlf & "', '" & p.mob & _

"', '" & p.epost & "')"

 

cmd = New OdbcCommand(sp5, con)

cmd.ExecuteNonQuery()

End If

 

'hent ut navn-id for den personen som ble lagt til

 

sp6 = "SELECT Navn_id FROM Kontaktinfo " & _

"WHERE Fornavn = '" & p.fnavn.ToLower & "'" & _

" AND Etternavn = '" & p.enavn.ToLower & "'" & _

" AND Adresse = '" & p.adr.ToLower & "'" & _

" AND Postnr = '" & p.pnr & "'" & _

" AND Tlf = '" & p.tlf & "'" & _

" AND Mob = '" & p.mob & "'" & _

" AND Mail = '" & p.epost & "' "

 

cmd = New OdbcCommand(sp6, con)

cmd.ExecuteNonQuery()

 

reader = cmd.ExecuteReader

 

 

If reader.Read Then

If reader.IsDBNull(0) Then

navnId = " "

Else

navnId = reader.GetInt32(0)

End If

End If

 

'legg til info i fosterperson tabellen

sp1 = "INSERT INTO Fosterperson (Navn_id, Om_hjemmet, Erfaringer, Tidsbegrensning, Reise_vekk, Allergi, Bringe_til_veterinær, Hente_mat, Annet) VALUES('" & _

navnId & "', '" & f.hjem & "', '" & f.erfaring.ToLower & "', '" & f.tid.ToLower & "', '" & f.reise.ToLower & "', '" & f.allergi.ToLower & "', '" & f.hente.ToLower & _

"', '" & f.mat.ToLower & "', '" & f.annet.ToLower & "')"

 

cmd = New OdbcCommand(sp1, con)

 

cmd.ExecuteNonQuery()

 

'hent ut fosterhjemid

sp2 = "SELECT Fosterhjem_id from Fosterperson " & _

"WHERE Om_hjemmet = '" & f.hjem.ToLower & "'" & _

"AND Erfaringer = '" & f.erfaring.ToLower & "'" & _

"AND Tidsbegrensning = '" & f.tid.ToLower & "'" & _

"AND Reise_vekk = '" & f.reise.ToLower & "'" & _

"AND Allergi = '" & f.allergi.ToLower & "'" & _

"AND Bringe_til_veterinær = '" & f.hente.ToLower & "'" & _

"AND Hente_mat = '" & f.mat.ToLower & "'" & _

"AND Annet = '" & f.annet.ToLower & "'"

 

cmd = New OdbcCommand(sp2, con)

cmd.ExecuteNonQuery()

 

reader = cmd.ExecuteReader

 

If reader.Read Then

fosterId = reader.GetInt32(0)

Else

fosterId = 0

End If

// her er det noe klikker tror jeg. På de maskinene som siden ikke fungerer på, går alt fint helt til dette punktet her. Finner informasjon i databasen som tilsier at spørringene over blir utført, men ikke de under.

 

 

If fosterId = 0 Then

tall = 2

Else

 

'legg til info i fosterkatt tabell

sp3 = "INSERT INTO Fkatt (Fosterhjem_id, En, ToKatt, Sosial, Gravid, Akutt) VALUES('" & fosterId & _

"', '" & f.kattKunEn.ToLower & "', '" & f.kattGjerneTo.ToLower & "', '" & f.kattSosial.ToLower & _

"', '" & f.kattgravid.ToLower & "', '" & f.kattAkutt.ToLower & "')"

 

cmd = New OdbcCommand(sp3, con)

cmd.ExecuteNonQuery()

 

'legg til info i fosterhund tabell

sp4 = "INSERT INTO Fhund (Fosterhjem_id, Liten, Middel, Stor) VALUES('" & fosterId & _

"', '" & f.hundLiten.ToLower & "', '" & f.hundMiddels.ToLower & "', '" & f.hundStor.ToLower & "')"

 

cmd = New OdbcCommand(sp4, con)

cmd.ExecuteNonQuery()

 

'legg til info i fosterkanin tabell

sp7 = "INSERT INTO Fkanin (Fosterhjem_id, Inne, Ute, Begge) VALUES('" & fosterId & _

"', '" & f.kaninInne.ToLower & "', '" & f.kaninUte.ToLower & "', '" & f.kaninBegge.ToLower & "')"

 

cmd = New OdbcCommand(sp7, con)

cmd.ExecuteNonQuery()

 

'legg til info i fostersmådyr tabell

sp10 = "INSERT INTO Fsmådyr (Fosterhjem_id, marsvin, chinchilla, andre)VALUES ('" & fosterId & _

"', '" & f.marsvin.ToLower & "', '" & f.chinchilla.ToLower & "', '" & f.andre.ToLower & "')"

 

cmd = New OdbcCommand(sp10, con)

cmd.ExecuteNonQuery()

 

'legg til info i fosteravtale tabell

sp11 = "INSERT INTO Favtale (Fosterhjem_id, Trenger, Har, Få, Kjøpe, Egenmat)VALUES ('" & fosterId & _

"', '" & f.grunnpakke.ToLower & "', '" & f.harGrunnpakke.ToLower & "', '" & f.matGratis.ToLower & _

"', '" & f.spesial & "', '" & f.egneDyr.ToLower & "')"

 

cmd = New OdbcCommand(sp11, con)

cmd.ExecuteNonQuery()

 

'legg til info i fosterfugl tabell

sp12 = "INSERT INTO Ffugl (Fosterhjem_id, Villfugl, Tamfugl) VALUES ('" & fosterId & _

"', '" & f.villfugl & "', '" & f.tamfugl & "')"

 

cmd = New OdbcCommand(sp12, con)

cmd.ExecuteNonQuery()

 

End If

Else

tall = 4

 

End If

 

 

Catch oex As OdbcException

tall = 2 //dette er statusmeldinger som blir satt i pageLoad på neste side

Catch ex As Exception

tall = 3

Finally

If Not reader Is Nothing AndAlso Not reader.IsClosed Then

reader.Close()

End If

If Not con Is Nothing Then

con.Close()

End If

End Try

Return tall

End Function

Lenke til kommentar

1 Det heter ADO, ikke DAO. Jeg leste for litt siden en CV hvor personen skrev DAO (flere steder, så det var ikke en skrivefeil). Den gikk rett i søpla uten å bli videre vurdert...

 

2 Ikke deklarer variabler på toppen av funksjonen hvis de ikke skal være "globale for funksjonen". F.eks. spX.

 

Dim sp4 as String

sp4 = "SELECT Postnr, Poststed FROM Post WHERE Postnr = '" & p.pnr & "'"

cmd = New OdbcCommand(sp4, con)

 

Kan du enkelt kutte ned til 1 linje og slippe å deklare sp4 ved:

cmd = New OdbcCommand("SELECT Postnr, Poststed FROM Post WHERE Postnr = '" & p.pnr & "'", con)

 

(ja, det kan være greit å deklarere en variable for større spørringer)

 

3 Navn på variabler. Hva er Tall? Nr? spX? Det er greit for temporære variabler som brukes under et lite scope. Men Tall er jo global funksjonsvariabel og navnet sier meg ingenting...

 

4 Nesting av IF setninger...

If fosterId = 0 Then
  tall = 2
Else
' MASSE LINJER MED KODE
End If
Return tall

 

Bør heller skrives som:

If fosterId = 0 Then
  Return 2
End If

' MASSE LINJER MED KODE

 

Da har man både fjernet et nivå med IF. Og man trenger heller ikke "Tall". Det gjør koden så uendelig mye mer lesbar!

 

5 Bruk ALLTID ("alltid" gjelder ikke for viderekommende) Using når du bruker SqlConnection/ODBCConnection og SqlDataReader/ODBCDataReader.

 

6 Dette kan vel diskuteres, men jeg får alltid vondt i magen av norske tabell/kolonne-navn i databasen og funksjonsnavn. Særlig når de inneholder ÆØÅ...

 

7 Java bruker liten forbokstav i funksjoner. Dette gjør man ikke i .Net. I tillegg er "p" og "f" dårlige navn på parametere. Skriv dem fullt ut. F.eks:

Public Function LeggTilFosterhjem(ByVal person As Person, ByVal fosterhjem As Fosterhjem) As Integer

 

8 Er det noen (god) grunn til at alt lagres med små bokstaver i databasen?

 

9 'hent ut fosterhjemid

sp2 = "SELECT Fosterhjem_id from Fosterperson " & _

"WHERE Om_hjemmet = '" & f.hjem.ToLower & "'" & _

....

"AND Annet = '" & f.annet.ToLower & "'"

 

Burde ikke heller FosterHjem klassen inneholde variabelen FosterHjemID slik at du slipper en så hårete sql spørring for å hente denne ut hver gang? Dette gjelder også for Person.

 

 

 

Når det gjelder problemet ditt så tror jeg ikke det er på grunn av VB.Net koden. Jeg ville heller satset på at det er javascript eller noe i html'n din som gjør at brukeren ikke blir vist det han skal....? Det kan også lønne seg å prøve å debug'e koden og step'e igjennom for å se hva som skjer. Men uansett så hadde jeg personlig ikke orket å feilsjekke dette før koden faktisk var litt mer ryddig og lesbar...

 

Beklager hvis det var mye negativt her, men håper du tar det til deg på en positiv måte. Dette er jo den eneste måten man lærer på :) Lykke til videre!

Endret av jorn79
Lenke til kommentar

Må nesten henge meg på det jorn sier om variabler. Hvorfor det defineres så mange stringer for små spørringer, når dette kan gjøres direkte. En annen ting er at skal man ha 12 spørringer i hver sin string ville det vært mye mindre grisete å opprette en array av stringer. i C#:

 

string[] query = new string[12];

Er det også bare jeg som reagerer på denne?

 

connection = New KobleTilDB

con = connection.KobleTilDB()

Hva i all verden er den "KobleTilDB"-klassen? og hvorfor kalles en construcctor-type manuelt etter opprettelsen? Jeg personlig synes dette var virkelig hårete.

Lenke til kommentar
Må nesten henge meg på det jorn sier om variabler. Hvorfor det defineres så mange stringer for små spørringer, når dette kan gjøres direkte. En annen ting er at skal man ha 12 spørringer i hver sin string ville det vært mye mindre grisete å opprette en array av stringer. i C#:

 

string[] query = new string[12];

Er det også bare jeg som reagerer på denne?

 

connection = New KobleTilDB

con = connection.KobleTilDB()

Hva i all verden er den "KobleTilDB"-klassen? og hvorfor kalles en construcctor-type manuelt etter opprettelsen? Jeg personlig synes dette var virkelig hårete.

7097640[/snapback]

 

Jeg tror kanskje VB.Net lar deg ha funksjoner som har samme navn som klassen...

Uansett ville jeg nok lagd den static (shared i VB.Net) slik at man ikke trengt å opprette et objekt.

 

connection = New KobleTilDB

con = connection.KobleTilDB()

 

til:

 

con = KobleTilDB.Connect()

 

eller på engelsk :)

 

Dim con AS SqlConnection = Database.RetrieveConnection() ' ellerno...

 

Fant en ting til:

11 con ser ut til å være en global klassevariabel. Denne bør heller defineres i funksjonen. I .Net har man connection-pooling, og bør derfor aldri spare på verken connections eller variablene disse ligger i. Det beste er å åpne så sent som mulig, og lukke så tidlig som mulig.

Lenke til kommentar

Først vil jeg bare si at på skolen har vi lært at det heter DAO klasser (data acccess object).

 

Grunnen til at det er så mange variabler for sql spørringene er for min egen oversiktlighet. Er en enkel oppgave å korte de ned til en, men for min egen del vil jeg ha det slik når jeg jobber med koden.

 

KobleTilDB er en egen klasse som tar seg av oppkoblingen til databasen, og for å få dette til å fungere må jeg deklarere et connection objekt i dao(!) klassen. Dette er også slik vi har lært å gjøre det på skolen.

 

 

 

ellers skal jeg ta resten av kommentarene til ettertanke, og videre bruk. Derimot fungerer denne koden, og det er liksom det som er første prioritet. Fungere først, å perfeksjonere etterpå. Så jeg vil gjerne få dette til å fungere for alle maskiner i første omgang. Er det noen som kan hjelpe meg med dette? Skjønner ikke hvorfor sikkerhetsinstillingene skal ha så mye å si.

 

Javascript blir kun brukt i menyen og fungere fint på alle andre sider med informasjon. Dette har altså ingenting å si for hvorfor dette skjer. Har prøvd debug og alt mulig nesten, men finner ingenting. og som sagt så fungerer dette veldig fint på min maskin, og egentli alle andre brukere som har litt peiling på data. Rart med det der.

 

Så det som skjer med de som siden ikke fungerer for er at de får lastet siden helt frem. de fyller ut informasjonen som er nødvendig i korrekt format, og klikker på send inn knappen. Koden som jeg limte inn får likevel ikke lagt inn mer enn de spørringene som ligger overfor den der du henter ut forterhjemid. Den klarer ikke å hente ut denne id'en og dermed slår feilmeldingen under tall = 2 (som er feilmelding nr 2) inn...vet ikke hvor bra forklart dette er, men det er vertfall en veldig frustrerende feil!

 

Ellers, takk for gode hint og kommenterer angående koden min =)

Endret av ing
Lenke til kommentar

"Når det gjelder problemet ditt så tror jeg ikke det er på grunn av VB.Net koden. Jeg ville heller satset på at det er javascript eller noe i html'n din som gjør at brukeren ikke blir vist det han skal....? Det kan også lønne seg å prøve å debug'e koden og step'e igjennom for å se hva som skjer. "

 

Det er teknisk umulig at sikkehetsinstillingene på IE har noen som helst innvirkning på ASP.Net koden din.

 

En mulighet er at ASP.Net siden ikke får alle "parameterene" fra html siden tilbake. Men i koden du viste er det ingen steder hvor du bruker data fra browseren.

 

Hvis du har en url til hvor denne ligger på internett så kan jeg sikkert teste og finne ut hva som IE ser på som en "sikkerhetsrisiko".

Lenke til kommentar
"Når det gjelder problemet ditt så tror jeg ikke det er på grunn av VB.Net koden. Jeg ville heller satset på at det er javascript eller noe i html'n din som gjør at brukeren ikke blir vist det han skal....? Det kan også lønne seg å prøve å debug'e koden og step'e igjennom for å se hva som skjer. "

 

Det er teknisk umulig at sikkehetsinstillingene på IE har noen som helst innvirkning på ASP.Net koden din.

 

En mulighet er at ASP.Net siden ikke får alle "parameterene" fra html siden tilbake. Men i koden du viste er det ingen steder hvor du bruker data fra browseren.

 

Hvis du har en url til hvor denne ligger på internett så kan jeg sikkert teste og finne ut hva som IE ser på som en "sikkerhetsrisiko".

7099956[/snapback]

 

her er en link: http://www.dyrebeskyttelsenhordaland.org/l...Fosterhjem.aspx

 

jeg har lagdeling på applikasjonen min så i applikasjonslaget blir verdiene hentet ut fra siden og lagt i et object og sendt videre nedover i lagene.

 

'hent ut person
       Dim fornavn As String = txtNavn.Text.ToLower
       Dim etternavn As String = txtEnavn.Text.ToLower
       Dim adresse As String = txtAdresse.Text.ToLower
       Dim pnr As String = txtPostnr.Text
       Dim psted As String = txtPoststed.Text.ToLower
       Dim tlf As Integer = Convert.ToInt32(txtTlf.Text)
       Dim mob As Integer = Convert.ToInt32(txtMob.Text)
       Dim mail As String = txtMail.Text

       Dim p As New Person(fornavn, etternavn, adresse, pnr, psted, tlf, mob, mail)

 

her er en liten kodesnutt for hvordan dette foregår. Det er et stort usecase dette så limer bare inn litt av denne koden.

Lenke til kommentar

Ser du bruker valideringskontrollene. Har du husket å også validere serverside?

 

Hvis ikke kan det hende de som har testet for deg ikke har skrevet inn gyldig data, og derfor funksjonen din "kræsjer" når det skal inn i databasen...

 

Valideringskontrollene bruker javascript for å validere clientside. Og i en streng IE vil disse ikke bli kjørt.

Lenke til kommentar

Skjønner hva du mener, men har testet med akkurat samme verdiene. Satt ved siden av hverandre og tastet inn akkurat det samme. Og dette var verdier som er godkjente..

Jeg har tenkt litt i samme retning, men har ikke så mye kunnskaper om dette her.

 

Men det som er merkelig er at den stopper akkurat etter at den har hentet du fosterhjemid, og tester på om den har en virkelig verdi eller om den er null...for dersom den er null, har ikke spørringen fungert slik den skulle...men det gjør den på en maskin der siden fungerer. Da er allerede dataen det blir testet på lagt inn i databasen, så da burde det ikke være noen problemer med disse.

 

:S

Lenke til kommentar

Som jeg tenkte så sjekket det ikke serverside.

 

Testet nå med å legge inn KUN mobil og telefon, og trykket på "Send søknad". Da fikk jeg ikke noe feilmelding og beskjed om at "Du er nå lagt inn som fosterhjem, og vil bli kontaktet av oss.".

 

Før du prøver å legge inn noe i databasen:

Page.Validate()
If Page.IsValid = False Then
  ' Vi feilbeskjed
  Return
End If

Lenke til kommentar
Som jeg tenkte så sjekket det ikke serverside.

 

Testet nå med å legge inn KUN mobil og telefon, og trykket på "Send søknad". Da fikk jeg ikke noe feilmelding og beskjed om at "Du er nå lagt inn som fosterhjem, og vil bli kontaktet av oss.".

 

Før du prøver å legge inn noe i databasen:

Page.Validate()
If Page.IsValid = False Then
  ' Vi feilbeskjed
  Return
End If

7100293[/snapback]

 

Etter at jeg la meg til med kun mobil og telefon fikk jeg denne url'n:

LeggTilFosterhjem.aspx?ID=1

 

Det stemmer vel ikke, siden jeg fikk ID 4 isted? Hvis ikke du har tømt databasen i mellomtiden da?

Lenke til kommentar

Det skal jeg fikse ja =)

 

Men når de prøver så får de feilmelding, å ikke at de er lagt inn i databasen. Jeg har logget inn på applikasjonen og sett at du blir listet opp der, og det blir ikke de som siden ikke fungerer for.

 

Tror du det kan være samme feil for det? eg har mine tvil, men skal garantert få fikset det du har påpekt til nå =)

Lenke til kommentar
Som jeg tenkte så sjekket det ikke serverside.

 

Testet nå med å legge inn KUN mobil og telefon, og trykket på "Send søknad". Da fikk jeg ikke noe feilmelding og beskjed om at "Du er nå lagt inn som fosterhjem, og vil bli kontaktet av oss.".

 

Før du prøver å legge inn noe i databasen:

Page.Validate()
If Page.IsValid = False Then
  ' Vi feilbeskjed
  Return
End If

7100293[/snapback]

 

Etter at jeg la meg til med kun mobil og telefon fikk jeg denne url'n:

LeggTilFosterhjem.aspx?ID=1

 

Det stemmer vel ikke, siden jeg fikk ID 4 isted? Hvis ikke du har tømt databasen i mellomtiden da?

7100311[/snapback]

 

 

id 4 skal komme dersom postnummer og poststed ikke stemmer overens. Postnummer som blir tastet inn blir sjekket opp mot en post tabell som inneholder postnummer og poststed. Så disse MÅ fylles ut korrekt. altså riktig postnummer til riktig poststed.. Så det var merkelig at du fikk id 4 og meldingen til id 1 :s

Lenke til kommentar

Tja... da er jeg jommen ikke sikker. Det jeg ville gjordt var å skru av testingen du gjør. Og heller throw'e vanlige exceptions. Og sørge for at de blir vist slik at det er enklere å teste.

 

Og også prøve å skru på sikkerhetsinstillingene i IE'n din. Og så kjøre en vanlig debug og step'e igjennom for å se hva som skjer.

Lenke til kommentar

har tenkt på det, men tenkte jeg skulle høre her først, siden det er så utrolig mange valgmuligheter å velge mellom på instillngen, å jeg husker ikke hvilken det var som gjorde utslaget. :s

 

jeg får vel bare ta fingrene fatt... :s

 

uansett, takk for hjelpen =)

Lenke til kommentar

Når vi først er inne på forbedringer så har jeg en til som er ganske viktig:

 

Koden din er full av sikkerhetshull av typen SQL injection attack. Dette gjør at det er veldig enkelt å endre eller slette data i databasen din. I tillegg gjør det også mye lettere å ta over hele serveren.

 

String verdier må fikses slik at de ikke inneholder ' tegnet. Evt. bytte ut 1 stk ' tegn med 2 stk ''.

 

"INSERT INTO noe (navn) VALUES('" & person.Navn.Replace("'","''") & "')"

 

Ellers ser det ut til at du har vært flink å sjekke Integer verdier med å bruke Int.Parse :)

Lenke til kommentar
Når vi først er inne på forbedringer så har jeg en til som er ganske viktig:

 

Koden din er full av sikkerhetshull av typen SQL injection attack. Dette gjør at det er veldig enkelt å endre eller slette data i databasen din. I tillegg gjør det også mye lettere å ta over hele serveren.

 

String verdier må fikses slik at de ikke inneholder ' tegnet. Evt. bytte ut 1 stk ' tegn med 2 stk ''.

 

"INSERT INTO noe (navn) VALUES('" & person.Navn.Replace("'","''") & "')"

 

Ellers ser det ut til at du har vært flink å sjekke Integer verdier med å bruke Int.Parse :)

7100642[/snapback]

 

dette har vert et problem også, men så langt ned på listen min har jeg ikke kommet enda. har brukt ganske lang tid på å prøve å få dette fikset...men skal så absolutt gjøre disse forbedringene, å det er bare å komme med flere tips om du har =)

Lenke til kommentar

Sikkerhetshulet ville jeg satt ganske langt opp på listen. Er jo ikke noe moro om alle små pusene plutselig blir bytta ut med bilder av små lettkledde jenter ;)

 

Ellers tror jeg det viktigste tipset når det gjelder lesbarhet og ryddighet i koden er å ikke neste så mange IF setninger, men heller bruke Return midt inne i funksjonen isteden.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...