Undrar om någon ser några problem med säkerheten, använder idag access.
skickar ju in QueryStringen i tabellen och vill ju då inte att någon skall kunna komma åt den.
Finns där några problem eller något som jag borde tänka på i nedanstående.
Tack på förhand.
<%
strSida = Request.QueryString("m")
sql = "Select DISTINCT sida FROM tbl_meny WHERE sida='"& strSida &"'"
set rs = Conn.Execute (sql)
do until rs.EOF
dim strSida
strSida = rs("sida")
response.write " "& lcase(strSida)& " "
IF Request.QueryString("m") = lcase(strSida) THEN
strU = Request.QueryString("u")
strM = Request.QueryString("m")
select case strU
case ""
%><!--#include file="inc_start_dagens.asp"--><%
case "spelaretruppen"
%><!--#include file="inc_start_planket.asp"--><%
End select
END IF
rs.MoveNext
Loop
rs.Close
%>
För att få någon som helst säkerhet bör du till att börja med byta databas till t.ex MySQL istället för Access. Sen så kan du ju kolla upp också för att se så att strSida har något värde (If strSida <> "" Then).
Nja. Lägger du access-filen utanför webrooten är det en bra början.
Att sedan kontrollera emot sql-injections är nästan det allra viktigaste och även det enklaste att kontrollera.
Sök på sql injections här eller google så hittar du mycket info.
Tack för svaren. Som det är nu så ligger access-filen i webrooten så det är ju bra. Får utveckla till tex MySql på sikt.
/ r ligger utanför givetivis
Angående sql injections borde jag nått problemet, har gjort om lite.
Skrik gärna till om det är något som är uppåt väggarna.
<%
Function escape(input)
input = Replace(input, "'", "''")
escape = input
End Function
sql = "Select DISTINCT sida FROM tbl_meny WHERE sida='" & escape(Request.QueryString("m")) & "'"
set rs = Conn.Execute (sql)
do until rs.EOF
Dim strSida
strSida = rs("sida")
response.write " "& lcase(strSida)& " "
IF Request.QueryString("m") = lcase(strSida) THEN
strU = Request.QueryString("u")
strM = Request.QueryString("m")
sql2 = "Select * FROM tbl_meny WHERE sida='" & escape(Request.QueryString("m")) & "' AND namn='" & escape(Request.QueryString("u")) & "' AND css='undermeny'"
set rs2 = Conn.Execute (sql2)
do until rs2.EOF
strFilelink = rs2("link")
response.write " "& strFilelink& " "
rs2.MoveNext
Loop
IF strFilelink <> "" THEN
select case strU
case ""
server.execute "inc_start_planket.asp"
case else
server.execute ""& strFilelink& ""
End select
END IF
rs2.Close
END IF
rs.MoveNext
Loop
rs.Close
%>
Lägger du access-filen utanför webrooten är det en bra början.
Du svarade skrev:
Som det är nu så ligger access-filen i webrooten så det är ju bra.
Det är tväremot vad jag menade.
Ligger den i wwwrooten kan man ladda ner databasen genom att skriva www.domän.top/databas.mdb vilket inte är så önskvärt.
Vad jag menade var att lägga den ovanför rooten i mapphiarkin.
Och rooten än c:\doman_com\wwwroot\index.asp så ska databasen ligga i c:\doman_com\ .
Många, vet inte hur långt ifrån alla, webbhotell har detta system och har ofta en egen mapp att lägga databaser i.
257 ms totalt · 3 externa anrop · v20260731065814-full.aa8cfc83