|
| Beskyttelse af koder i db samt information~ Fra : Thomas |
Dato : 23-04-02 20:13 |
|
Hejsa ...
Jeg har følgendefiler:
index.asp
admin.asp
db.mdb
Min db.mdb fil ligger i en mappe på serveren der hedder db og der er
ingen adgang til at hente den fra serveren. Når man prøver at logge
ind checker den koden i mdb filen, og når folk åbner index.asp filen
henter den jo tingene fra databasen. Hvordan kan jeg blokere helt så
der ikke er nogen mulighed for at finde de koder der ligger i
databasen, altså den man skal bruge til at logge ind i systemet, samt
gøre det hele så sikkert som muligt?
Her er mine filer:
_____________________________________________________________________________
index.asp:
<%@LCID=1030%>
<% Response.Buffer = True %>
<html>
<head>
<title>Arangementudvalg</title>
</head>
<style>
body {
background : 000000;
background-color: #FFFFFF;
FONT-FAMILY: Tahoma, Arial, Verdana, Helvetica, sans-serif;
FONT-SIZE: 8pt
color: white;
color: #000000;
font-size: 10px;
font-family: Tahoma;
scrollbar-face-color: "#FFFFFF";
scrollbar-shadow-color: "#FFFFFF";
scrollbar-highlight-color: "#000000";
scrollbar-3dlight-color: "#000000";
scrollbar-darkshadow-color: "#000000";
scrollbar-track-color: "#FFFFFF";
scrollbar-arrow-color: "#000000";
}
input, textarea, select, option {
font-family: verdana;
font-size: 10px;
background: #FFFFFF;
border:1px solid #111111;
color: #000000;
}
TD
{
COLOR: #000000; FONT-FAMILY: Verdana; FONT-SIZE: 8pt
}
SMALL
{
FONT-SIZE: 8pt
}
A:link
{
COLOR: #000033; TEXT-DECORATION: none
}
A:visited
{
COLOR: #003333; TEXT-DECORATION: none
}
A:hover
{
COLOR: #BFBFBF; TEXT-DECORATION: none
}
</style>
<body>
<%
' Connection til database
Set Conn = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("../../db/db.mdb")
Conn.Open "DRIVER={Microsoft Access Driver
(*.mdb)};Password=d5aP85Ice9_.23 ;" & DBPath
' Her hiver vi indholdet af databasen ud, sorterer dem efter dato
Sql = "SELECT * FROM nyheder ORDER BY dato DESC"
Set rs = Conn.Execute(Sql)
%>
<div align="center">
<center>
<table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="2"
border="0" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td bgcolor="#2793d3" width="100%">
<p align="center"><strong><font size="3" face="Arial"
color="#FFFFFF">Arangementudvalg</font></strong></td>
</tr>
</table>
</center>
</div>
<br>
<% Do While Not rs.EOF
SQL2 = "select count(*) as antal from kommentarer WHERE nyhedsId = " &
rs("id")
Set TheCount = Conn.Execute(Sql2)
antal = TheCount("antal")
%>
<table align="center" width="100%" cellspacing="0" cellpadding="0"
class="ContentStyle">
<tr>
<td width="100%" valign="top">
<table width="100%" border="0" bgcolor="#000000" cellspacing="0"
cellpadding="2" class="ContentStyle" style="border-collapse: collapse"
bordercolor="#111111">
<tr>
<td bgcolor="#2793d3" width="100%"><table border="0" cellspacing="0"
cellpadding="0" class="ContentStyle" width="100%">
<tr><td><font size="2" face="Arial"
color="#FFFFFF"><strong><%=rs("title")%></strong></font></td><td
align="right"><font color="#FFFFFF"><%= FormatDateTime(rs("dato"),1)%>
- <%= FormatDateTime(rs("dato"),3)%></font></td></td></table></td>
</tr>
<tr>
<td bgcolor="#cfdffc" colspan="2"
width="100%"><%=rs("nyhed")%><br><br>Postet af
<em><%=rs("forfatter")%></em></td>
</tr>
</table>
<tr>
</tr>
</table>
<br>
<%
rs.MoveNext
Loop
%>
</body>
</html>
_______________________________________________________________________________
login.asp
<% Response.Buffer = True %>
<%
If Not Session("Adgang") = "Godkendt" Then
Session("Adgang") = "Forbudt"
End If
%>
<html>
<head>
<title>Login</title>
<style>
body {
background : 000000;
background-color: #FFFFFF;
FONT-FAMILY: Tahoma, Arial, Verdana, Helvetica, sans-serif;
FONT-SIZE: 8pt
color: white;
color: #000000;
font-size: 10px;
font-family: Tahoma;
scrollbar-face-color: "#FFFFFF";
scrollbar-shadow-color: "#FFFFFF";
scrollbar-highlight-color: "#000000";
scrollbar-3dlight-color: "#000000";
scrollbar-darkshadow-color: "#000000";
scrollbar-track-color: "#FFFFFF";
scrollbar-arrow-color: "#000000";
}
input, textarea, select, option {
font-family: verdana;
font-size: 10px;
background: #FFFFFF;
border:1px solid #111111;
color: #000000;
}
TD
{
COLOR: #000000; FONT-FAMILY: Verdana; FONT-SIZE: 8pt
}
SMALL
{
FONT-SIZE: 8pt
}
A:link
{
COLOR: #000033; TEXT-DECORATION: none
}
A:visited
{
COLOR: #003333; TEXT-DECORATION: none
}
A:hover
{
COLOR: #BFBFBF; TEXT-DECORATION: none
}
</style>
</head>
<body>
<%
mode=request("mode")
'--- Kontrol ---
if mode="kontrol" then
strConn = "Driver={Microsoft Access Driver
(*.mdb)};Password=d5aP85Ice9_.23 ; DBQ=" &
Server.MapPath("../../db/db.mdb")
Set rs = Server.CreateObject("ADODB.RecordSet")
'Den slår ens brugernavn og adgangskode op i databasen
strQ = "SELECT * FROM login WHERE (adgangskode='" &
Request.Form("adgangskode") & "')" & _
" AND (brugernavn = '" & Request.Form("brugernavn") & "');"
rs.Open strQ, strConn
'Kan den ikke finde en bliver man sendt tilbage med en fejlmeddelelse
If rs.EOF Then
Response.Redirect("login.asp?mode=fejl")
'Kan den godt finde en bliver session("Adgang") sat til Godkendt så
man kan komme ind til admin.asp
Else
Session("Adgang") = "Godkendt"
Response.Redirect("admin.asp")
End If
rs.Close
Set rs = Nothing
Con.Close
Set Con = Nothing
'--- Forsiden ---
else %>
<table align="center" width="510" border="0" cellspacing="0"
cellpadding="0" class="ContentStyle">
<tr>
<td width="510" valign="top">
<table width="510" border="0" bgcolor="#000000" cellspacing="1"
cellpadding="2" class="ContentStyle">
<tr>
<td bgcolor="#6699CC"">
<form action="login.asp?mode=kontrol" method="post" name="Login">
<center>
<strong>Login Til Webmaster</strong><br><br>
<%
'Når man skriver forkert adgangskode eller forsøger at komme ind på en
side hvor man ikke har tilladelse bliver man gjort opmærksom på det
her
Select Case Request.QueryString("mode")
case "fejl" %><div><font color="#FF0000">Fejl i Brugernavn eller
Adgangskode prøv igen...</font><br><br></div><%
case "forbudt" %><div><font color="#FF0000">Brug dog Login ... hvad
tror du den er der for?</font><br><br></div><%
End Select
%>
Brugernavn<br>
<input type="text" name="Brugernavn" size="40">
<br><br>
Adgangskode<br>
<input type="password" name="Adgangskode" size="40">
<br><br>
<input type="submit" value="Login">
</form>
</center>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<center>
<a href="index.asp"><strong>Tilbage</strong></a>
</center>
<% End if %>
</body>
</html>
_______________________________________________________________________________
Håber der er en eller anden der kan hjælpe. Kontakt mig evt. på
følgende hvis der er spørgsmål:
Thomas@dyrlund.dk
Icq: 30546966
| |
Jakob Møbjerg Nielse~ (24-04-2002)
| Kommentar Fra : Jakob Møbjerg Nielse~ |
Dato : 24-04-02 15:25 |
|
> Hvordan kan jeg blokere helt så der ikke er nogen mulighed
> for at finde de koder der ligger i databasen, altså den man
> skal bruge til at logge ind i systemet, samt gøre det hele
> så sikkert som muligt?
Hvad er du nervøs for, hvis den ikke kan downloades? Anyways, Du kan jo
md5'e dine passwords.
--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man
| |
Thomas (24-04-2002)
| Kommentar Fra : Thomas |
Dato : 24-04-02 21:38 |
|
> Du kan jo md5'e dine passwords.
Hvad mener du og hvordan gør man det?
Jeg er ikke bange for at folk henter min db men at de henter de koder
der ligger i min db og jeg ved at de kan det for en jeg kender har
gjort det!
| |
Jakob Møbjerg Nielse~ (25-04-2002)
| Kommentar Fra : Jakob Møbjerg Nielse~ |
Dato : 25-04-02 13:19 |
|
> Hvad mener du og hvordan gør man det?
MD5 er en envejsfunktion. Dvs. at når passwordet er MD5-krypteret kan
man ikke finde ud af hvad passwordet originalt var. Når en bruger
oprettes skal du gemme MD5 versionen af passwordet i databasen, og når
så brugeren senere indtaster sit password, skal du MD5-kryptere det og
sammeligne med det der ligger i databasen.
INSERT INTO tabel (password) VALUES (MD5(""" & password & """))
Hvis access ikke understøtter MD5 skal du finde en ASP funktion der kan
gøre det.
http://www.freevbcode.com/ShowCode.Asp?ID=2366
> Jeg er ikke bange for at folk henter min db men at de henter de koder
> der ligger i min db og jeg ved at de kan det for en jeg kender har
> gjort det!
Uha! Kig *grundigt* på din kode. Indtil denne fejl er rettet er det IMHO
totalt ubrugeligt.
--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man
| |
Thomas (25-04-2002)
| Kommentar Fra : Thomas |
Dato : 25-04-02 21:54 |
|
Jeg har hentet det der MD5 Digital Signatures og har pakket filerne
ud. Jeg har altså nu 2 filer:
md5.asp
md5test.asp
Men jeg kan ikke komme vidre ... hvordan bruger jeg dem ... det står
der intet om!
| |
Jakob Møbjerg Nielse~ (25-04-2002)
| Kommentar Fra : Jakob Møbjerg Nielse~ |
Dato : 25-04-02 22:42 |
|
> Men jeg kan ikke komme vidre ... hvordan bruger jeg dem ... det står
> der intet om!
Det er vist i md5test.asp:
------
<!--#include file="md5.asp"-->
password = md5("etpassword")
X-FUT: dk.edb.internet.webdesign.serverside.asp
--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man
| |
|
|