"Michael Sørensen" skrev
> Jeg har fundet frem til noget, som jeg evt. godt kunne tænke mig at bruge,
> men vil gerne have hjælp til at forstå asp-koden. Jeg kan godt få koden
> til
> at beskytte mine sider, men for at lære og selv kan (op)rette, så mangler
> jeg lidt forståelse.
>
> Samtidig vil jeg høre, om det er en brugbart løsning, som jeg har fundet.
det kommer jo helt and på hvad det skal beskytte
til en homebank er det
jo nok ikke godt nok men ellers er det vel....
her bliver det tekker om Session("BrugerNummer") er tom, hvis den er køre
koden vider
> If not Session("BrugerNummer") = Empty then
opretter forbindelse til databasen
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=; DBQ=" &
> Server.MapPath("../../database/user.mdb")
> Conn.Open DSN
henter ALT(det er ikke smat at hente alt ud når du kun skal bruge et felt)
fra tablen TblBruger hvor BrugerId er = med din Session
> strSQL = "Select * From TblBruger Where BrugerId = " &
> Int(Session("BrugerNummer"))
det du nu har nentet du er = HentBrugerData
> Set HentBrugerData = Conn.Execute(strSQL)
her hentet du igen alt fra tablen TblAdgang hvor feltet AdgangNummer er =
HentBrugerData("BrugerAdgang") altså det du fik ud i siste SQL kald
> strSQL = "Select * From TblAdgang Where AdgangNummer = " &
> Int(HentBrugerData("BrugerAdgang"))
HentAdgangData er nu = det du fik ud
> Set HentAdgangData = Conn.Execute(strSQL)
det samme igen
> strSQL = "Select * From TblSideNavne Where AdgangId = " &
> Int(HentAdgangData("AdgangId"))
> Set HentSideData = Conn.Execute(strSQL)
hvis ikke dit set (HentSideData) er tomt køre koden vider
> If not HentSideData.Eof then
starter en løkke
> do
siden er = /en adr_fra_databasen
> siden = "/" & HentSideData("SideNavn")
gå vider til næste rakke i det SQL kald
> HentSideData.movenext
køre løkken vider ind til der ikke er flere rakker i dit database set eller
Request("URL") = side eller side er = /*
> Loop until HentSideData.Eof or Request("URL") = siden or siden = "/*"
hvis side er forskælig fra /* køre koden vider
> if siden <> "/*" then
hvis Request("URL") er forskælig fra side køre koden vider
> if Request("URL") <> siden then
sendes brugeren til uautoriseretadgang.asp
> response.redirect "../uautoriseretadgang.asp"
> end if
> End If
hvis brugeren ikke er i databasen sendes han til uautoriseretadgang.asp
> else
> response.redirect "../uautoriseretadgang.asp"
> End If
ellers sendes brugeren til default.asp
> else
> response.redirect "../default.asp"
> end if
> Det ser umiddelbart ud til, at den ikke kan registrere et log-out. Evt.
> kører det på tid. Jeg kan i hvert fald både gå til sider, der ikke er
> beskyttet, for derefter at gå uhindret "tilbage" på den beskyttede side,
> men jeg kan også efter et login besøge ethvert andet tilgængeligt websted
> for bagefter i adresselinien at skrive stien på en beskyttet side,
> hvorefter
> jeg også uhindret får adgang til denne. Disse to ting er jo ikke
> hensigtsmæssige eller tegn på sikkerhed. Kan de fixes?
grunden til det er at der bliver tekket på Session som nomal ud løber efter
30 min(kan ikke helt huske det men tror det er sådan)
> Evt. vil det yderligere være smart at have et log-out link, der logger ud.
jo det ville det jo nok....
håber det kunne bruges!
--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere
www.cafe-flirt.dk
De frække noveller
www.novelle.cafe-flirt.dk