inlog+database

Status
Niet open voor verdere reacties.

Kpaulu

Gebruiker
Lid geworden
1 feb 2013
Berichten
58
Hallo na een tijdje knutselen en zoeken hoe ik een inlog pagina maak met database (als niet programeur) ben ik al een eindje gekomen met fora etc nu heb ik alleen het gevoel dat hij niet in de database kijkt dus kan ik niet inloggen.
als ik if "Password" = password then weghaal dan redirect hij naar main.asp maar als ik deze string erin zet lukt het niet meer in te loggen.
kan iemand hierbij helpen danku.



HTML:
<!--#include file="../navigation/connect.asp"-->
<!DOCTYPE html>
<html>
<head>
<title>..</title>
<link href="Site.css" rel="stylesheet">
</head>
<body>
<div id="main">

<%
username = ""
password = ""
ErrorMessage = ""

if request.form <> "" then
   username = Request.Form("username")
   password = Request.Form("password")
   if username = "" or password = "" then
     ErrorMessage = "Vul uw username en wachtwoord in."
  else
         if "Password" = password then
         Response.Redirect("main.asp")
         end if
       end if
  ErrorMessage = "Login failed"
end if
if ErrorMessage <> "" then
   response.write("<p>" & ErrorMessage & "</p>") 
  response.write("<p>Please correct the errors and try again.</p>") 
end if
%>
<% sql = "SELECT * FROM ADMIN_PIP_AUT"
Set rs = conn.execute(sql)
%>
<%
On Error Resume Next
rs.MoveFirst
do while Not rs.eof
%>
<%rs.MoveNext
loop 
%>


<h1>Intranet Login</h1>
<form method="post" action="">
<fieldset>
 <legend>Log In to Your Account</legend>
<ol>
<li>
 <label>Username:</label>
<input type="text" id="username" name="username" />
</li>
<li>
<label>Password:</label>
 <input type="password" id="password" name="password" />
</li>
<li>
 <p><input type="submit" value="Aanmelden" /></p>
</li>
</ol>
 </fieldset>
</form>
 
Laatst bewerkt door een moderator:
Deze vraag heb je eerder ook reeds gesteld. Ik vermoed dat daar niet op geantwoord is, omdat er niets is om op te antwoorden.

Ik neem aan dat je begrijpt dat met dit script elke gebruiker de gegevens van elke andere gebruiker opgestuurd krijgt? en in de feed kan kijken wat het juiste password moet zijn? Een loginsysteem hoort 100% serverside te zijn en hoogstens een form aan de userkant.
 
Ja omdat het asp is heb ik hem hier gezet.

En waar zou ik die 100% server side kunnen vinden dan het is daarom dat ik hier post omdat ik niet heel veel verstand heb van asp etc.
zo heb ik al op w3 tools etc gekeken om informatie te vinden...

mijn vraag was ook alleen hoe ik het script nou goed krijg zodat hij wel in de database kijkt?
 
Laatst bewerkt:
Ik zou hier toch nog eens kijken:

http://www.w3schools.com/aspnet/aspnet_dbconnection.asp

Ikzelf heb al bijna 14 jaar niets meer gedaan met ASP. Je voorbeeld geeft echter aan dat je de scheiding front-end en back-end ook niet helemaal begrijpt. Je moet echt twee verschillende dingen maken een front-end die de user ziet en volledig onbetrouwbaar is en de back-end die op een veilige manier user vragen afhandelt.
 
Ik zal het nog eens bekijken.

De connectie naar de database wordt gemaakt door:

<!--#include file="../navigation/connect.asp"-->



en wat er uitgelezen moet worden door:
<% sql = "SELECT * FROM ADMIN_PIP_AUT"
Set rs = conn.execute(sql)
%>
<%
On Error Resume Next
rs.MoveFirst
do while Not rs.eof
%>

het gaat om een inlog voor een intranetpagina (alles intern)
 
Wat je normaal wil is de sql statement aanpassen aan de vraag en vervolgens kijken of er een oplosing is of niet. Wat je nu doet is de volledige admin tabel opvragen en daar record voor record doorheen proberen te lopen. Langzaam en heel gevaarlijk.

Wat je wil is een form waarin username en password staan en die doorgegeven wordt aan je ASP functie. vervolgens probeer je in je database een record te vinden die matched door je select statement.

zoiets als (LET OP geen echte code maar voorbeeld in pseudocode):

Code:
uname =  Request.Form("username")
pword =  Request.Form("password")
SQL = "SELECT username FROM ADMIN_PIP_AUT WHERE username=" + uname + " AND password=" + pword
set RS = conn.execute(sql)
if rs.rows > 0 'alleen geldige username en password geven meer dan 0 rows
   page=gelukt.asp
else
   page= fout.asp
end if

Deze code is nog steeds niet veilig om te gebruiken, maar wel veel efficienter dan je huidige code. Liefst gebruik je een stored procedure op je database als dat mogelijk is. je roept dan de stored procedure aan met : "mijn-procedure(username,password)" en daar komt een antwoord op of niet. Voordeel van zo'n aanpak is dat het veiliger is en de ASP pagina hoeft geen hoge rechten te hebben op de database. Mocht iemand je asp pagina kraken dan kunnen ze tenminste niet je usernames en passwords stelen.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan