28. maj 2008 - 12:08Der er
9 kommentarer og 2 løsninger
Error messages
hvordan kan jeg forhindre at error messages fra sql server bliver vist på besøgends sider. ? det er mest detajler jeg ikke vil have vist pga sql injektion..
Det er ikke din SQL server som viser fejlen, men din hjemmeside kode.
Du skal finde de steder i koden hvor den udskriver SQL fejlen, og bede den om at lade være. Jeg kan ikke være meget mere specifik med de detaljer du har i spørgsmålet, men nu ved du da hvor du skal lede. :-)
Okis.tænkte bare at jeg kunne forhindre min sql server i at sende fejl videre det er jo en kæmpe hjælp til sql injektion med lidt gode tilrådelige fejl meddelser. -:)
spile >> Tror også udviklerne ville blive ked af det, hvis de ikke kunne få de rigtige fejlmeddelser fra databasen. Jeg ville ihvertfald finde det nærmeste pind og slå vores DB ansvarlig i hoved indtil han fik det skiftet tilbage :o)
Men du bliver nød til at gøre det i koden, evt lave en funktion som du sender alle DB kald igennem, så du sikre dig at alle fejl bliver fanget, og du ikke glemmer try/catch et sted.
Det er lavet i ASP tænkte bare at der måske var en funktion i evt odbc hvor man kunne slå det fra og til syntes at jeg har læst et sted at man kunne få den til at kun vise fejl meddelser til admin eller sådan... men så må man jo gå den tunge vej men der har jeg denne men den burde vel kunne sættes ind i toppen.. If Conn.Errors.Count > 0 THEN sqlfejl() response.end end if
hvis i prøver at google script .js cn så kan i se at der ca. er 12.000 danske hjemme sider der bøvler med sql injection...
Nej, du bliver nød til at gøre det hver gang du lavet et kald til databasen. F.eks noget i denne stil:
function getDbData(fSQL) on error resume next '<-- Start fejlhåndtering set getDbData = conn.execute(fSQL) if err.number <> 0 then response.write "Der er sket en fejl i databasen" response.end end if on error goto 0 '<-- Reset fejlhåndtering til default end function
set rs1 = getDbData("select * from enTabel") set rs2 = getDbData("select * from enAndenTabel")
jeps havde lige glemt On error resume next men så viker dette også fint Set List = Conn.Execute (SQLQuery) If Conn.Errors.Count > 0 THEN sqlfejl() response.end end if
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.