• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Homepage mit Passwort schützen

Mike.Wuerfel

New member
Hallo Leute...

Ich habe mal eine Frage. Ich bin noch neu in der Programmierung von solchen Dingen.

Ich habe keine Ahnung wie das gehen soll.

Hier meine Vorstellung.

Auf der Startseite wir der Benutzer nach dem Namen und seinem Passwort gefragt.
Es sollen viele (ca 40) verschiede Leute mit jeweils eigenen Namen und Passwörtern integreiert werden. So hat jeder die Möglichkeit eine etwas angepasstere Seite zu bekommen.
Im Prinzip soll es sowas wie eine kleine Web-Community werden...

Kann mir jemand sagen, wie ich das mit dem Passwordschutz hinbekomme?


Hier die Ganze Sache zu beschreiben wäre sicher zu zeitaufwenig, es reicht mir auch aus, wenn jemand eine gute Internetseite kennt, auf der das Grundsystem beschrieben wird...


Danke schonmal...

Mike
 
hach *nervenverlier*
ihr witzbolzen, warum schreibt ihr nie dazu
von welcher programmiersprache ihr redet?

naja, der faulheit gehe ich einfach davon aus,
du meinst php und dann sag ich auch gar nischts,
weil ich asp viel besser kann :D
mfg, riddler
 
Hmmm.....

Es wäre mal gut zu wissen, in welchen"Sprachen" du es haben willst. PHP/MySQL? ASP/SQL? Perl/Flatfile oder Perl/MySQL oder Perl/SQL?

geh einfach mal nach http://www.hotscripts.com und dort in eine der Categorien, und dann auf Tips & Tutorials, da wirste immer fündig. Da liegen ne Menge inteessanter Sachen rum, speziell so Sachen wie Passwortschutz, Usermanagment etc =)
 
Ihr fragt immer in welcher Sprache.

Das ist mir eigentlich egal in welcher Sprache...

Ich bevorzuge Perl. Aber in PHP kann ich es auch machen.
Eine Datenbank (MySQL, SQL) kann ich noch nicht. Aber sowas lässt sich ja lernen.
Ist mir eigentlich auch egal, was ich lerne. Ich möchte von euch ja nur wissen, wie ich vom Grundprinzip an sowas rangehe. Das wird ja wohl mir jeder Sprache so ziemlich gleich sein.

Aber trotzdem Danke erstmal für die Tipps.
(Obwohl ich beim riddler keinen Tipp sondern nur einen dummen Spruch erkennen kann)


Gruß,
Mike
 
Achso, eine Sache noch.
Es wäre total gut, wenn ich deutsche Anleitungen bekommen würde.
Mit der englischen Sprache stehe ich nicht gerade in Frieden da. *ggg*

Danke!
 
Hmmm......

Dürfte Problem werden, weil 99,9% aller Tips & Tutorials im netz zu dem thema auf English sind.


Versuchs mal bei www.quellcodes.de vielleicht haste da Glück.

english? *g* Ich halt lieber meine Klappe, sonst werden hier noch welche neidisch =)

MfG
 
na na na

ich und dumme sprüche?
sowas...
ne,ne,ne die jugend....
naja, wolln mal nicht so sein:
ich erklär es mal grundlegend (für asp)

du legst eine tabelle (zb: save) in der datenbank an mit den feldern:
id (auto-wert)
name (text)
passwort (text)

dann programmierst du ein formular in der startseit,
wo man namen und passwort eingeben kann.
dann öffnest du ein recordset mit den daten der
datenbank, wo der name = dem eingebenen namen
und passwort = dem eingegebenen passwort.
das geht in asp etwas so:

If (Request.Form("name") <> "") AND (Request.Form("passwort") <> "") THEN
sql = "SELECT * FROM [save] WHERE [name] = '" & Request.Form("name") & "' AND [passwort] = '" & Request.Form("passwort") & "'"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, my_conn, 3, 3

IF rs.BOF Then
'es gibt keinen solchen eintrag
rs.Close
set rs = Nothing
Else
Session("ok")=1
rs.Close
set rs = Nothing
Response.Redirect "http://www.domain.de/seite.asp"
End If

END IF

das da oben öffnet also den datensatz, fall der leer ist (es also keine solchen einträge gibt)
passiert nichts (kann man antürlich auch ne fehlermeldung einbauen) ansonsten setzt er die session "ok" = 1 und leitet zu der nächsten seite weiter.
jetzt muß man nur noch auf allen geschützten seiten abfragen, ob die session "ok" = 1 ist, das geht etwa so:


<% Response.Buffer = True %>

hier die eigentlich seite

<%
If Session("ok")=1 Then
Response.Flush
Response.End
Else
Response.Clear
%>
<center><p>
Sie sind nicht authorisiert diese Seiten zu benutzen!</p></center>
<%
Response.Flush
Response.End
End If
%>

ja, in php wird das ganze mit den sessions anders aussehn, aber das prinzip soillte das selbe sein
mfg, riddler (der dumme sprüche-klopfer)
 
Zuletzt bearbeitet:
Eins muss man euch lassen. Ihr antwortet sehr schnell. GUT SO!!!

@Michael B
Ja, leider ist so viel auf englisch. Im Notfall komme ich ja auch damit klar. Nur deutsch ist mir lieber. *g*
Aber ich wollte auch mehr eine Strategie als fertige Proggis. Ich wollte es mal selbst programmieren, damit ich es richtig lernen...

@riddler (den dummen Sprücheklopfer) ;-)
Nein, war doch nicht persönlich gemeint.
Ist doch nur so, dass Dein erster Eintrag nicht gerade informativ war.

Aber er war gut.
Ist kenne ASP leider nicht so gut. Und vieles habe ich nicht so ganz verstanden.
Aber das System ist mir schon ein bisschen bewusster geworden.
Aber so richtig schlau werde ich nicht.

@alle
Noch so ein paar spezielle Fragen, vielleicht verstehe ich es dann besser.

Erstmal: Ich brauche doch eine Datenbank, richtig?
Nehme ich da SQL oder was gibt es noch?
Ich kann noch keine Datenbankprogrammierung. Muss also sowie erstmal lernen. Aber wenn, dann am besten gleich was richtiges.

In dieser Dankenbank sind doch die Benutzernamen und die Passwörter, richtig?
Aber wie bekomme ich die Passwörter verschlüsst da rein?

Ich möchte gern mit Perl das Ganze machen! Das geht doch sicher, oder?

Im HTML muss ich Formulare haben, mit denen ich den Nick und das Passwd abfrage, richtig?

Aber wie bekomme ich die Eingabe in mein Perl-Programm?

Wie kann das Perl-Programm die Daten mit der Datenbank vergleichen?


Na, das wird sicher schon zu speziell.

Wenn ihr mir das aber erstmal beantworten könntet, dann wäre ich euch sehr dankbar!

Gruß,
Mike (der Newbie)
 
also:

ne datenbank brauchst du nicht unbedingt,
macht aber vieles einfacher.
darin kannst du dann alle namen mit den
dazugehörigen passwörtern abspeichern.
ohne DB könntest du das auch alles im script selbst machen.
so in etwa:

if (name = name1) and (passwort = passwort1) then ... (ok)
elseif (name = name2) and (passwort = passwort2) then ... (ok)
else ... (passwort und/oder name sind falsch)
end if

ist natürlich umständlich & häßlich, aber es würde gehen.
ich nehm access als datenbank, aber mysql sollte da natürlich auch gehn.

die passwörter braucht man nicht verschlüßeln, da
(auf einem richtig konfigurierten server) keiner zugriff
auf die DB hat und die passwörter somit sicher sind.

mit perl kenn ich mich nicht aus, aber wenn du das formular mit
action="site.???" machst, programmierst du noch ne page site.???
und machst denn sowas (in asp):
name = Request.Form("name")
(vorausgesetzt du hast im form ein input mit name="name" gesetzt)
in php kannst du direkt so auf die var zugreifen: $name

so das wars erstnmal, mfg, riddler
 
Hi,

Wennst PHP verwenden willst und keine Datenbank hast, dann probiers mal mit folgendem:

<?php
$file=@fopen("FILE MIT USERN","r");
while(feof($file)==0):
$chop=chop(fgets($file,4096));
$temp=explode ("|",$chop);
$username = $temp[0];
$password = $temp[1];
if ($username != $user || $password != $pwd)
continue;
else $userfound = true;
?>
GESCHÜTZTER INHALT
<?php
endwhile;
fclose($file);
if (!$userfound):
?>
<br>
<form action="<?php echo $PHP_SELF; ?>" method="post">
<table border="0">
<tr>
<td><b>User:</b></td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td><b>Passwort:</b></td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Check"></td>
</tr>
</table>
</form>
<br>
<?php
endif;
?>

Jetzt musst nur noch die User und Passwörter in die FILE MIT USERN richtig reinschreiben:

USER|PASSWORT
USER2|PASSWORT2

Viel Spass min Script, cya
 
Super. Das war schonmal ganz gut.

Naja, ich denke, dass ich das mit dem Script dann in einem Array machen würde...

Dann würde ich das Ganze mit einer Schleife abfragen.
Aber mit der Datenbank ist schon okay.

Access ist nicht so gut. Weil ich mit Perl (und nicht mit ASP) arbeiten will. Außerdem ist der Server eine Unix-Maschine (oder mehrere. *g*)
Da ist Access sicher nicht die beste Alternative.
Also MySQL.

Frage ist nur: Richtig konfigurierter Server... naja, da habe ich nicht unbedingt Einfluss drauf. *g*
Aber im Allgemeinen ist eine DB sicher?
OK!

Muss mich nochmal in HTML-Formulare einlesen. Hab damit bis jetzt noch nicht gearbeitet. Aber das bekomme ich schon hin.
Danke für den Tipp...
 
@ShadowsMaster

Hey, danke.
Das war gut. Und das habe ich auch so ziemlich gut verstanden...

Im Prinzip liest Du doch nur eine Zeile der Passwd-Datei aus, kontrollierst sie, und wenn es nicht stimmt, dann liest Du die nächste Zeile und kontrollierst wieder.
Ist doch richtig, oder?

Das ist verständlich.
Aber wie sicher ist das? Kann man sich nicht einfach die passwd-Datei anzeigen lassen und dann hat mal alle Benutzer und ihre Passwds?

Aber das ist auf jeden Fall mal eine Möglichkeit.
Das hat mir wirklich weitergeholfen.
DANKE!!!

Aber wie kann ich das jetzt noch sicherer machen?
Ich möchte ja, dass die passwds verschlüsst in der Datei stehen.
Da gibt es unter Linux / Unix doch einen Befehl, um ein Passwd zu verschlüssen. So stehen doch die Dateien dann auch in der /etc/shadow oder /etc/passwd

Geht das hier auch irgendwie?
 
wenn du die namen/passwörter
direkt ins script schreibst, anstatt
sie aus ner externen datei zu lesen,
ist es absolut sicher, weil das ja
geparsed wird & keiner drann kommt.
(hab ich zwar schon weiter oben gesagt,
aber man kanns ja nicht oft genug erwähnen...)

etwa so:

<?php
if ($name == "name1") and ($passwort == "passwort1")
{
//ok, session wird gesetzt & weiterleitung zur seite
}
elseif ($name = "name2") and ($passwort = "passwort2")
{
//ok, session wird gesetzt & weiterleitung zur seite
}
// usw...
else
{
//passwort und/oder name sind falsch
}
?>


hoffe meine php-syntax ist annähernd korrekt
mfg, riddler
 
Hmm......

Wie ich sagte, schau bei http://www.hotscripts.com nach, in PHP und Perl jeweils unter Tips & Tutorials, und dann unter Usermanagment bzw. Password Protection. Bei PHP dann auch unter Database sonstewas und General sonstewas, da findeste Anleitungen für MySQL anfänger =)

Und notfalls, geh nach http://www.amazon.de und such nach PHP4 kurz und gut aus dem O´Reillys Verlag. Author is Rasmus Lerdorf, der PHP Urvater =) Oder such einfach nach der ASIN, bzw ISBN Nummer: 3897212250

Is sowas wie ne kleine Bibel für PHP Coder =)

MfG
 
@riddler
Du sagst, dass es "geparsed" wird. Was heißt das denn?
Ich kann mir, wenn ich den Namen der Datei kenne, die Datei (und den Quellcode) nicht ansehen???

Ist das auch für Perl-Proggis/Skripts so?
 
also asp und php wird geparsed,
d.h. das script läuft ducrh den parser,
bevor es an den client geschickt wird.

das heißt, alles im script was zwischen
<?php und ?> (bzw. <% und %> bei asp) steht
wird durchgeführt und das ergebniss als reines
html an den client geschickt.
von dem php-script bekommt der gar nichts zu sehen.

zB
<html>
<?php
echo("hallo welt");
?>
</html>

erscheint für den user im quellcode als

<html>
hallo welt
</html>

somit sind auch alle schleifen mit ihren bedingungen, etc.
nicht für den client sichtbar, also kann man ruhig (anders als bei
javascript, wo man ja alles im quellcode sieht) sowas ins script schreiben.

so erscheint zB

<form method="post">
<input type="text" name="user">
<input type="submit" value="abschicken">
<?php
if $user == "xyz"
{
echo("hallo");
}
?>

für den user im QT nur als
<form method="post">
<input type="text" name="user">
<input type="submit" value="abschicken">

bzw.:
<form method="post">
<input type="text" name="user">
<input type="submit" value="abschicken">
hallo

falls man xyz ins formular eingibt

die endung der datei muß *.php sein,
damit der server auch erkennt, das alles
geparsed werden muß.

mfg, riddler
 
Zuletzt bearbeitet:
Zu meinem Script: Wenn jemand den Path und den Dateinamen der txt-File kennt, dann hat er alle User inklusive Passwörter. Am besten wäre da eine Datenbank, weil ohne deinem PWD und Usernamen hat keiner Zugriff dazu. Wennst MySQL hast, dann kannst mein Script auch mit MySQL haben. Musst nur sagen. Man kann die Passwörter crypten, bevor man sie in die File schreibt. Dann sind sie sicher.

PS.: Richtig, jede Zeile einzeln geschaut ob Angaben korrekt sind.
 
@riddler:

Super, jetzt habe ich es verstanden.
Ist das bei Perl (*.pl) auch so?
Sicher, oder?

@shadowsmaster:
Danke für die Antwort mit dem Parser, aber riddler war einfach genauer, das habe ich besser verstanden.

Jetzt zu Deinen Angebot mit dem Script.
Danke, das ist sehr nett. Aber ich kann noch kein MySQL. Und ich möchte am liebsten selber eins schreiben, damit ich es lernen. Aber ich kann doch sicher mal fragen, wenn ich nicht weiterkomme, oder?

Vielen Dank!


Mike
 
@Mike: War auch nur ne schnelle und grobe Antwort. MySQL is total einfach, gibts ausserdem ned allzuviele Befehle. Sicher kannst fragen ;)
 
Zurück
Oben