webForumDet fria alternativet

Login-Script

4 svar · 238 visningar · startad av SoulGod

SoulGodMedlem sedan aug. 20051 200 inlägg
#1

har precis byggt ett login-script, men har nu hittat en stor bugg.
Såhär ser det ut.....
>> LOGIN.asp

<%If Request.Querystring("mess") = "fel"  Then 
  mess = "alert('Fel lösenord eller adminnamn!');return true;"
End If%>
<script language="JavaScript" type="text/javascript" src="js.js"></script>

<%
Admin1 = "welcome"
Admin2 = "toheaven"

'###########################
'---------LOGIN-------------
'###########################

If Request.QueryString("do") = "" Then%>

      <table width="450">
        <form name="loggain" method="post" action="index.asp?do=check">
        <tr>
          <td height="14" colspan="2">&nbsp;</td>
        </tr>
        <tr>
           <td><b>Anv&auml;ndarnamn:</b></td>
           <td><input type="text" name="admin1" size="15"></td>
        </tr>
        <tr>
            <td><b>Lösenord:</b></td>
            <td><input type="password" name="admin2" size="15"></td>
        </tr>
        <tr>
             <td colspan="2" height="14">&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><input type="submit" value="Logga in"></td>
        </tr>
       </form>
      </table>

<%End If

'#######################
'--KOLLAR INLOGGNINGEN--
'#######################

If Request.QueryString("do") = "check" Then

If Request.Form("admin1") = Admin1 AND Request.Form("admin2") = Admin2 Then
   login="ok"
Else
   Response.Redirect "index.asp?mess=fel" 	
End If

If login="ok" Then
     Session("admin") = "ok"
     Session.TimeOut = 40
     Response.Redirect "admin.asp"
End If

End If%>

Och >> ADMIN.asp

'##################################################
'----------------INLOGGAD--------------------------
'##################################################
%>
<% Response.Write("Välkommen till Himlen, en lite mer privat del hos mig. :)") %>
<%

'##################################################
'----------------------LOGGAR UT DIG---------------
'##################################################

If Request.Querystring("do") = "logut" Then
  Session.Abandon
  Response.Redirect "index.asp"
End If %>
<br>
<a href="admin.asp?do=logut">Logga Ut</a>              </div>

Problemet är nu detta....
Om jag går in direkt på mappen, och går direkt till admin.asp ,
så kommer man in ändå.
Alltså även utan användarnamn / pass.

Vet ej vad jag gjort för fel. Hade annan kod i admin.asp förut,
försökte att få ut session-grejen, men utan resultat.

Vad gör jag fel? Vad måste jag göra, för att det ej ska gå att komma åt
admin.asp utan login / pass ?

MarreManMedlem sedan feb. 200225 inlägg
#2

Kolla session

Du bör göra en kontroll på session på de sidor du vill skydda:

<%
If Session("SesAdmin") <> "admin" Then 
Response.Redirect("loggain.asp")
End If
%>

När session inte har värdet "admin" kan besökaren inte komma åt sidan.

FraggelMedlem sedan sep. 2003301 inlägg
#3

Tja

Sub chkLogin()
  If Session("valid") Then
    ' bla bla bla
  Else
    Response.Redirect "bla.asp"
  End If
End Sub

Kör sedan chkLogin i början på dom sidor du vill kolla, och ange Session("valid") = False i global.asa

FraggelMedlem sedan sep. 2003301 inlägg
#4

MarreMan tydligen lite snabbare :D

MarreManMedlem sedan feb. 200225 inlägg
#5

Rent flax... :OO

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)