Avatar billede tblaster Nybegynder
19. maj 2003 - 20:35 Der er 17 kommentarer og
1 løsning

Sikker side

Hejsa

Hvis jeg skal lave en side 100% sikker så jeg det kun er folk der har den rigtige kode og evt. brugernavn der kan komme ind hvad skal jeg så gøre? Det skal gælde for alt der ligge i en hel mappe på min server.

Eks.
www.domæne.dk - skal være tilgængelig for alle
www.domæne.dk/1/ - skal kun være tilgængelige for dem der har den rigtige kode og evt. brugernavn
Avatar billede tblaster Nybegynder
19. maj 2003 - 20:54 #1
Det jeg evt. er interesseret i er at når man åbner siden så får man noget som følgende:

https://secure.digitalblasphemy.com/restricted/login.shtml

Det vil jeg da mene er sikker nok til at folk der ikke skal have adgang til siden, ikke kan få adgang!
Avatar billede Spotgun Seniormester
19. maj 2003 - 20:56 #2
Hvis du har adgang til serveren, så er det nemmeste nok, at slå Anonymous Access fra, på den mappe, via IIS-manageren. Derefter skal du så ha' oprettet de brugere du vil ha', og gi' dem tilladelse til at lære fra mappen.

Det er i hvert fald det de har brugt på det link du henviser til.
Avatar billede Spotgun Seniormester
19. maj 2003 - 20:56 #3
lære = læse, selvfølgelig :-)
Avatar billede tblaster Nybegynder
19. maj 2003 - 20:57 #4
Men det kan jeg vel ikke bare lave på mit webhotel ... jeg har mit hotel hos cliche.dk
Avatar billede tblaster Nybegynder
19. maj 2003 - 21:00 #5
Jeg har prøvet at ændre attributes så public ikke har nogen adgang men når jeg reloader min ftp så er de sat tilbage så public har adgang til at se mappen
Avatar billede Spotgun Seniormester
19. maj 2003 - 21:01 #6
Jeg tvivler på at du kan få dem til at oprette en masse brugere osv. på deres server.

Du kan dog lave et lignende login-system i ASP, hvor du selv har en database der indeholder de brugernavne og passwords du vil. Der findes 1000-vis af eksempler på det her...
Avatar billede tblaster Nybegynder
19. maj 2003 - 21:03 #7
Ja dem kender jeg godt men mener ikke de er særlige sikre :-(

Jeg har som sådan ikke brug for at der er en masse bruger og koder ... bare at der er en kode så kun hvis man kan koden så kan man komme ind på siden!
Avatar billede tblaster Nybegynder
19. maj 2003 - 21:05 #8
Et system som følgende vil jeg ikke mene er særlig sikker eller hva?:

<%
Response.Buffer = true
Dim password, brugernavn, pass
Session("password") = Request.Form("password")
Session("brugernavn") = Request.Form("brugernavn")
%>
<% If session("password") = "kode" and session("brugernavn") = "brugernavn" then %>
Avatar billede Spotgun Seniormester
19. maj 2003 - 21:19 #9
Hvor mener du usikkerheden ligger i det script?
Avatar billede tblaster Nybegynder
19. maj 2003 - 21:25 #10
<form name=pwdform action="login.asp?action=check" method=post>
<b>Kode:</b>
input type=password name=password size=20>

<% Request.Form("password") = Session("password") %>

Så du vil mene at hvis jeg benyttede mig af overstående så vil der ikke være nogen uventede der kan komme ind på siden medmindre de har kodeordet og brugernavnet eller hva? Jeg syntes bare at dem jeg har snakket med siger at en login script som dette i asp er nem at knække ...
Avatar billede Spotgun Seniormester
19. maj 2003 - 21:33 #11
Ja, men det kan da forstærkes, så problemet gøres væsentligt mindre.
Hvis du, inden du sender form-dataene til databasen for at sammenligne det, sørger for at escape '-tegnet, samt dobbeltchecker username og password, så skulle du være nået ret langt, og ha' et system, som nu er blevet en del sværere at knække.

F.eks. noget i stil med det her:

<%
usr = Replace(Request.Form("username"), "'", "''")
pwd = Replace(Request.Form("password"), "'", "''")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "din connection string her"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "SELECT * FROM Users WHERE Username = '"& usr &"' AND Password = '"& pwd &"'", Conn, 1, 3
If Not RS.EOF
  If RS("Username") = usr And RS("Password") = pwd Then
    ' vis din side
  Else
    ' vis fejlbesked eller redirect.
  End If
End If
Rs.Close
Conn.Close
Set RS = Nothing
Set Conn = Nothing
%>

Det er i mine øjne stort set næsten så sikkert som den anden metode, med at fjerne anonym adgang.
Avatar billede Spotgun Seniormester
19. maj 2003 - 21:33 #12
Du kan selvfølgelig undlade at bruge databasen, og blot checke på et hardkodet brugernavn og password...
Avatar billede mccannon Nybegynder
19. maj 2003 - 22:40 #13
lige en enkelt fejl i den her kode..sådan set ikke noget med sikkerheden at gøre.
Hvis du redirecter før du lukker dit connection og recordset ..ja så bliver det ikke lukket og optager resourcer..hvilket jo aldrig er godt :-)

bare en lille kommentar ..
If Not RS.EOF
  If RS("Username") = usr And RS("Password") = pwd Then
    ' vis din side
  Else
    ' vis fejlbesked eller redirect.<-- ikke godt
  End If
End If
Rs.Close
Conn.Close
Set RS = Nothing
Set Conn = Nothing
Avatar billede tblaster Nybegynder
20. maj 2003 - 13:57 #14
spotgun ... jeg vil helst gøre det uden en database ... hvad mener du med hardkodet brugernavn og password?

Jeg skal bare bruge et kodeord ... vil dit kunne se sådan ud?

<form name=pwdform action="login.asp?action=check" method=post>
<b>Kode:</b>
input type=password name=password size=20>

-------

pwd = Replace(Request.Form("password"), "'", "''")
If pwd = "kode" then
session("status") = "granted"
Else
'vis fejlbesked

Hvor den så på alle sider fx. checker om session("status") = "granted"
Avatar billede Spotgun Seniormester
20. maj 2003 - 14:04 #15
Ja, noget i den stil ville være fint. Du behøver dog ikke de replace-ting, når du ikke bruger databasen.
Avatar billede tblaster Nybegynder
20. maj 2003 - 14:08 #16
Ups ... det var også en fejl

Hvad mente du med hardkodet password?
Avatar billede Spotgun Seniormester
20. maj 2003 - 14:12 #17
Jeg mente det som du selv var fundet frem til... At du i ASP'en vælger hvilket password (evt. også brugernavn, hvis du vil) som der skal checkes på.

If Request.Form("password") = "Din hemmelige kode!" Then
  Session("status") = "granted"
Else
  Session("status") = "denied"
  ' vis fejlbesked
End If

Og ganske rigtigt, skal der selvfølgelig kontrolleres for om Session("status") = "granted" på alle undersiderne...
Avatar billede tblaster Nybegynder
20. maj 2003 - 14:16 #18
Takker
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
Kurser inden for grundlæggende programmering

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

IT-JOB

Forsvarets Efterretningstjeneste

Linux Infrastructure Specialist

Politiets Efterretningstjeneste

IT-løsningsarkitekt i PET

Capgemini Danmark A/S

AI/Data Engineer

Capgemini Danmark A/S

Market Segment Lead, CPRD