[asp] login werkt niet zoals gewenst (session)

Pagina: 1
Acties:

  • Blizard
  • Registratie: September 2001
  • Niet online
Voor m'n login-pagina gebruik ik ongeveer deze code (overbodige dingen weggelaten)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<% 
if session("loggedin") = "yes" then
%>
<p>Hoi <%= session("nick")%> u bent reeds ingelogd, u kan uitloggen door op volgende link te klikken.
</p>
<p>
<a href="logout.asp">Log out</a>
<%
else
nick = request.cookies("nick")
if IsNull(nick) then
    nick = ""
end if
%> </p>

<form method="POST" action="logindone.asp">
    <tr>
      <td width="14%">
    <table>
      <tr>
        <td >
        <p style="text-align: center">Nickname :</td>
        <td>&nbsp;<input type="text" name="nick"  value="<%=nick%>"></td>
      </tr>
      <tr>
        <td width="14%">
    </tr>
    <tr>
      <td width="14%">
      <p style="text-align: center">Paswoord : </td>
      <td width="86%">&nbsp;<input type="password" name="pass" size="22"></td>&nbsp;</tr></table></td>
        <td width="86%"></td>&nbsp;</tr></table><p align="center"><input type="submit" value="Login" name="B1"></p>
</form>
<%
end if
%>


De loginedone.asp pagina bestaat uit een vrij simpel stukje code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<%
Set DbConn = Server.CreateObject("Adodb.Connection")
DbPad = Server.MapPath(".\db\db.mdb")
DbConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DbPad
DbConn.Open DbConnStr

nick = request("nick")
pass = request("pass")

set rstlogin = Server.CreateObject("Adodb.Recordset")
sqllogin = "SELECT nick,pass FROM tblchatters WHERE nick='" & nick & "' AND pass = '" & pass & "'"
rstlogin.open sqllogin, dbconn

response.cookies("nick") = request("nick")

if rstlogin.bof and rstlogin.eof then
    response.write("Onjuiste login gegevens")
else
    session("nick") = nick
    session("loggedin") = "yes"
    
    response.write("U bent correct ingelogd")
    end if
%>


Eerst en vooral mogen er opmerkingen komen over de manier van de login-pagina (wat er beter zou kunnen en wat er echt dom is dat ik gedaan heb). Maar ik wil ook ff vragen hoe het komt dat dit soms werkt en soms niet ?! :/

Is vrij raar, maar meeste van de tijd werkt het niet (dit alles draait op brinkster). Ik vermoed dat ik wat fout doe met de sessions ?!

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39

Scharnout

Meuk

Toevallig IE6? Die is nogal zeurderig over sessions enzo. Heeft (naar ik meende) met je DNS te maken.

edit:
vraagteken erbij maar

And Bob's your uncle ...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

Volgens mij is je systeem heel makkelijk te slopen....
Als je probeert als inlognaam:
code:
1
' OR 1=1;--

Dat moet je volgens mij ook al ingelogd zijn.
Verder zou ik ook in je LoginDone.asp Request.Form gebruiken ipv Request.
Ik kan anders Querystring-variabelen meesturen, die ook opgepakt worden.

En misschien dat het ligt aan caching? Je kan eens proberen om deze uit te zetten.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Blizard
  • Registratie: September 2001
  • Niet online
gorgi_19 schreef op 05 november 2002 @ 17:54:
Volgens mij is je systeem heel makkelijk te slopen....
Als je probeert als inlognaam:
code:
1
' OR 1=1;--

Dat moet je volgens mij ook al ingelogd zijn.
Verder zou ik ook in je LoginDone.asp Request.Form gebruiken ipv Request.
Ik kan anders Querystring-variabelen meesturen, die ook opgepakt worden.

En misschien dat het ligt aan caching? Je kan eens proberen om deze uit te zetten.
Als ik die code ingeef als inlognaam krijg ik de vogende melding :

Microsoft JET Database Engine error '80040e14'

Characters found after end of SQL statement.

/beveren/logindone.asp, line 19


En caching uitzetten doe ik dit dan voor elke pagina ?! .. of enkel login ?! ..

Ik kan toch moeilijk vragen of gebruikers enkel via een nonIE6-browser de pagina bekijken ?

ps : is werken met cookies een optie ?! .. maar deze is wellicht meer omslachtig :/ En ik die dacht dat sessie's zo handig waren :(

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

Blizard schreef op 05 november 2002 @ 18:19:
[...]


Als ik die code ingeef als inlognaam krijg ik de vogende melding :

Microsoft JET Database Engine error '80040e14'

Characters found after end of SQL statement.

/beveren/logindone.asp, line 19
Ik weet niet meer de precieze code, maar je kan dus direct SQL-code in je SQL statement invoeren.....
En caching uitzetten doe ik dit dan voor elke pagina ?! .. of enkel login ?! ..
Alleen je login page; de rest mag imho best gecached worden.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Blizard
  • Registratie: September 2001
  • Niet online
Ik heb nog wat raars ontdekt.
De pagina is een move.to pagina .. maar als ik via de echte link ga werkt de login wel. Kan het zijn dat een move.to -sessiie en een move.to-cookie zicht niet als een gewone cookie gedraagt ?!

  • fatbenny
  • Registratie: April 2001
  • Laatst online: 07-03-2023
misschien heeft dit er wat mee te maken http://gathering.tweakers.net/forum/list_messages/639859

Verwijderd

Blizard schreef op 05 november 2002 @ 18:19:
[...]


Als ik die code ingeef als inlognaam krijg ik de vogende melding :

Microsoft JET Database Engine error '80040e14'

Characters found after end of SQL statement.

/beveren/logindone.asp, line 19

(
Moet je maar eens:
' OR '1'='1
ingeven als wachtwoord
Dan logt ie wel in! Iets beter beveiligen dus!

  • Blizard
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op 06 november 2002 @ 11:10:
[...]


Moet je maar eens:
' OR '1'='1
ingeven als wachtwoord
Dan logt ie wel in! Iets beter beveiligen dus!
Als ik dat ingeef krijg ik de melding dat je onjuiste logingegevens invoerde (wat de bedoeling is ?)

Mag ik uit dit http://gathering.tweakers.net/forum/list_messages/639859 topic afleiden dat er geen goede oplossing bestaat voor cookies en een move.to/tk .. whatever-adres te gebruiken ?! .. ;(

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
[zeikmodus]
uuhh, paswoord?? Wat is dat?
[/zeikmodus]

Ik zou eerst mijn IE instellingen eens goed zetten. In je internet opties, tijdelijke internetbestanden, instellingen, controleren op nieuwe versie pagina: Altijd.

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
hehe, probeer eens zo in te loggen:

nick: whateva
pass: ' OR 1=1 OR pass='

Ik krijg gewoon de melding: logged in :)

Of is die pimdb niet je pagina :)

Verwijderd

Als je browser geen cookies ondersteunt werken je sessies niet(dat zijn namelijk ook cookies op zowel je client en de server) Ik zal de instellingen nog ff checken als ik jouw was.

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Verwijderd schreef op 06 November 2002 @ 20:01:
Als je browser geen cookies ondersteunt werken je sessies niet(dat zijn namelijk ook cookies op zowel je client en de server) Ik zal de instellingen nog ff checken als ik jouw was.
Das niet waar. Voor een Session moet je browser "in-memory" of applicatie cookies ondersteunen. Deze komen nooit als fysieke bestanden op je schijf te staan.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

zneek schreef op 06 november 2002 @ 23:54:
[...]


Das niet waar. Voor een Session moet je browser "in-memory" of applicatie cookies ondersteunen. Deze komen nooit als fysieke bestanden op je schijf te staan.
Helaas klopt dit niet, zie ook:
http://webdesign.ittoolbox.com/documents/document.asp?i=2587

Hij kan dan de link niet meer maken met de session op de server; daardoor werken sessions niet als cookies disabled zijn.

Kortom: wil je sessions gebruiken, dan moeten cookies enabled zijn.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Blizard
  • Registratie: September 2001
  • Niet online
Inderdaad, de login werkt dan (maar je moet echter wel de nick van de admin weten om in de adminpagina terecht te komen).

Ik kan moeilijk aan iedere gebruiker vragen om de instelling aan te passen van "check pagina's altijd". Wel kan ik vragen om cookies te enablen. Maar dan is het probleem van de move.to nog steeds niet opgelost.
Of kan ik hier beter een nieuw topicje over openen ?

Had gedacht aan in de index ff een redirect te zetten naar de échte url ?!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

Blizard schreef op 07 november 2002 @ 09:45:
Inderdaad, de login werkt dan (maar je moet echter wel de nick van de admin weten om in de adminpagina terecht te komen).

Ik kan moeilijk aan iedere gebruiker vragen om de instelling aan te passen van "check pagina's altijd". Wel kan ik vragen om cookies te enablen. Maar dan is het probleem van de move.to nog steeds niet opgelost.
Of kan ik hier beter een nieuw topicje over openen ?

Had gedacht aan in de index ff een redirect te zetten naar de échte url ?!
Niet alleen het inloggen is een probleem; ik kan meer achterhalen dan....
Eventueel kan ik ook records verwijderen via deze methode.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

zneek schreef op 06 november 2002 @ 19:41:
hehe, probeer eens zo in te loggen:

nick: whateva
pass: ' OR 1=1 OR pass='

Ik krijg gewoon de melding: logged in :)

Of is die pimdb niet je pagina :)
Erm, dat single-quote in database logins is toch het eerste dat je MOET weten:
ASP:
1
2
username = Replace(username, "'", "''")
password = Replace(password, "'", "''")
Pagina: 1