Login Aber RICHTIG

stephsto

Erfahrenes Mitglied
Hallo zusammen,

ich hätte da mal ein Problem. Ich möchte eine Website (alles unter /) per Passwort schützen. Ich kenne .htaccess und bin auch nicht abgeneigt davon möchte aber folgendes gerne haben und weiß nicht wie man es realisieren kann.

1) Login Seite mit schönem Design
2) sehr sicheres Login! (wie sicher ist .htaccess (über SSL)?)

Ich hoffe Ihr könnt mir ein paar Infos liefern.
stephsto
 
zu Punkt 1:
Was erwartest du da jetzt von uns?
Mein Tipp:
schaue dir Tutorials zu Photoshop an, und elrne CSS
Wenn du ein ganzes Design nicht selber schreiben willst, poste das in der Jobbörse ;)

Sollte ich dich falsch verstanden haben, bitte melden
zu Punkt 2:
Ich kenn mich nich so genau mit htacces aus, aber es müsste ziemlich sicher sein.

Ah, ich glaube jetzt check ich das:

Also,
wenn du ein "schönes" Loginsystem haben willst, kannst du das mit htacces nicht realieren.
Bau einfach folgenden Code in deine Website ;)
PHP:
if (isset($_POST['meinbutton']) && $_POST['name'] != "" && $_POST['pass'] != "")
{
$name = $_POST['name'];
$pass = $_POST['pass'];

$name1 = "Klaus";
$pass1 = "Passwort";
if ($name == $name1 && $pass == $pass1)
{
echo 'Willkommen '.$name.', sie sind eingeloggt';
}
else
{
echo 'Login/Passwort falsch';
}
}
else
{
echo '<form method="post">'
echo 'Name: <input type="text" name="name" /> <br /> ';
echo 'Pass: <input type="password" name="pass" /> <br />';
echo '<input type="submit" name="meinbutton" />;
echo '</form>';
}

mfg
 
Das ist aber ein sehr mieser Code ^^ 1 User und ein PW ^^ Tse, dann doch lieber Login mit MySQL & Session sowie guter Rechtevergabe etc. - Vor allem die Prüfung der Inhalte der Variablen ist eigentlich gar nicht vorhanden. Ich hoffe den Code nutzt du nicht live!
 
ja da würde ich auch MySQL und Session verwenden. weil er wollte ja ein sicheres login...ich kann mir nicht vorstellen das es sicher sein soll wenn der benutzername und das psw im php code drin steht...
 
ich kann mir nicht vorstellen das es sicher sein soll wenn der benutzername und das psw im php code drin steht...
Das ist eigentlich ziemlich egal. Schliesslich schreibst du ja auch MySQL Verbindungsdaten in den Code.

Aber der Code hat nichts mit einem Login System zu tun. Man müsste das auf jeder Seite einbinden und jedes Mal Benutzername und Passwort abfragen. Das macht ja keinen Sinn.
 
Könntest natürlich dein Loginscript auch so aussehen lassen

Login.php

PHP:
<?php
      # session starten #
      session_start();

#prüfe, ob eine $_GET Variable vorhanden ist --> logout
if(isset($_GET["status"]) AND ($_GET["status"] == logout)){
      unset($_SESSION['user_id']);
      unset($_SESSION['nick']);
      $gsloginstatus            = 0; // Variable einen Wert zusprechen ...
}

  # prüfe, ob "submit" benutzt wurde #
  if((isset($_POST['submit'])) && ($_POST['submit'] == 'Login')) {

    # Daten posten #
$nickname= mysql_real_escape_string( $_POST['nickname'] );
$passwort= mysql_real_escape_string( $_POST['passwort'] );  

    $query = 'SELECT
                       *
                  FROM
                       deine_user_tabelle
                  WHERE
                       `nickname` = "'.$nickname.'"
                  AND
                       `passwort` = "'.$passwort.'"
                  LIMIT
                       1'; # Das Limit 1 nur, wenn du jeden Usernamen nur einmal vergeben lässt.
    $result = mysql_query($query) or die(mysql_error());

    if(mysql_num_rows($result) == 1) {
      $data = mysql_fetch_array($result);

      $_SESSION['user_id'] = $data['id'];
      $_SESSION['nick']      = $data['nickname'];
      $gsloginstatus            = 1; // Variable einen Wert zusprechen ...

    } else {
       die('Deine Login-Daten waren falsch!');
      $gsloginstatus   = 0; // Variable keinen Wert zusprechen ...
    }
  }

if($gsloginstatus){

//---------------------------------------------------------------------
//             HIER DEIN INTERNER BEREICH
//--------------------------------------------------------------------
//            SEITEN AM BESTEN INCLUDEN
//--------------------------------------------------------------------

}else{
?>

<form action="login.php" method="post">
  Nickname: <br />
  <input type="text" name="nickname" />

  <br /><br />

  Passwort: <br />
  <input type="password" name="passwort" />

  <br /><br />
  <input type="submit" value="Login" name="submit" />
</form>

<?php
  }
?>

Und hier der Code, für die Seiten die du includieren willst ...
Prüfst nur ob bestimme SESSION-Cookies vorhanden sind --> man eingeloggt ist

PHP:
<?php
 if($gsloginstatus AND (isset($_SESSION['user_id']) || (!empty($_SESSION['user_id']))) {
  // Dann wird deine Seite angezeigt
  }else{
  // hier eine Felermeldung von dir :)
  }
?>

und zum ausloggen wird einfach Login.php?status=logout im Browser aufgerufen
 
Zuletzt bearbeitet:
Das ist aber ein sehr mieser Code ^^ 1 User und ein PW ^^ Tse, dann doch lieber Login mit MySQL & Session sowie guter Rechtevergabe etc. - Vor allem die Prüfung der Inhalte der Variablen ist eigentlich gar nicht vorhanden. Ich hoffe den Code nutzt du nicht live!

Nein, ich nutze ein Datenbank system ;)
Allerdings ist das das einfachste Loginsystem, und man muss dazu nicht viel erklären ;)
 
Hallo zusammen,

ich hätte da mal ein Problem. Ich möchte eine Website (alles unter /) per Passwort schützen. Ich kenne .htaccess und bin auch nicht abgeneigt davon möchte aber folgendes gerne haben und weiß nicht wie man es realisieren kann.

1) Login Seite mit schönem Design
2) sehr sicheres Login! (wie sicher ist .htaccess (über SSL)?)

Ich hoffe Ihr könnt mir ein paar Infos liefern.
stephsto

Ein .htaccess wird niemals einen schönen Login haben, aber schützt allerdings von sich aus schon alle Dateien Die in allten Unterverzeichnissen liegen, egal welchen Types.

Wenn es wichtig ist das auch Downloadbare Dateien geschützt werdem, images, pdf`s und was weis ich alles. Das ein Direktes Linken nicht möglich ist, solltest du darüber nachdenken vielleicht auf den hübschen Login zu verzichten.

SSL Schützt dich nur davor das niemand Pakete abfängt um dann das Passwort daraus auszulesen. Oder aus Logfiles auf Servern. Nachteil ist eben das SSL Lizenzen Geld kosten, ab ~ 100€ im Jahr. Diese sind dann für eine IP + Domain Kombination gültig.

Die einzige andere möglichkeit die sich dir bietet alle Inhalte einer Website sicher zu schützen währe mod_rewrite. Das du alle Aufrufe über eine Datei laufen lässt. Und diese eben aus den Sessions herausfindet ob der Zugriff gestattet ist oder nicht.
 
Hallo Leute,

Teil 1:
{
ich greife jetzt (in dem Glauben das ihr dieses Thema aboniert habt) dieses Thema wieder auf. In einrm privaten Netz (192.168.*.* )darf ich eine HTTPS Seite programmieren für einen sicheren Login von Benutzers. Jetzt meine Frage: "Geht das so ohne weiteres?". Ich habe mal gelesen, dass man unter Linux prima Zertifikate für PGP erzeugen kann. Ist dies auch für SSL möglich oder nicht?


Kennt sich jmd. aus?
}


Teil 2:
{
@-GS-Master:
Nettes Formular. Ich habe ein ähnliches Formular erstellt. Der Unterschied zu meinem Formular ist, dass der User seinen Benutzernamen und sein Anmeldedatum dauerhaft angezeigt bekommt. Jetzt mein Problem. Ich habe mehrere Formulare auf der Seite und wenn ich jetzt das zweite Formular absende ist diese Zeile hier (die ist ähnlich wie bei dir):
PHP:
# prüfe, ob "submit" benutzt wurde #
  if((isset($_POST['submit'])) && ($_POST['submit'] == 'Login'))
nicht mehr vollständig. Weil beim 2. Formular der submit Button der Name -> name="sending" ist und das 1. Formular leer ist, bzw. nicht angezeigt wird. Ich bekomme noch nicht ganz den Bogen bei diesem Problem. In der SESSION steht die eingeloggt Person mit username und passwort. Ich müsste irgendwie noch zwei weitere Prüfungen anstellen:
PHP:
# prüfe, ob "submit" benutzt wurde #
  if((isset($_POST['submit'])) && ($_POST['submit'] == 'Login') && $_SESSION['username'] == "xxx" && $_SESSION['password'] == "xxx")
Aber hier stoße ich auf ein weiteres Problem: Woher bekomme ich die xxx Daten?
}

Vielen Dank und Gruß
Matze
 
Zuletzt bearbeitet:
Zertifikate selbst erstellen und dem WEbserver geben ist kein Problem.

Wenn es nur intern verwendet wird ist das sogar sehr zu empfehlen. ABER es wird jedes mal eine Zertifikats-warnung geben das es unsicher ist. Diese Warnung kann man jedoch getrost ignorieren und besagt nur das der Zertifikat-ersteller nicht vertrauenswürde ist. Und keiner der großen Anbieter wie Verisign ist. Die Funktionalität wird dadurch nicht eingeschränkt. Es ist nur unschön, daher nicht für öffentliche sachen zu gebrauchen. Da wird man nicht drum herum kommen für jede Domain ein Zertidikat f+r 100 bis 200 € zu kaufen.
 
Zurück