Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Leute,

ich habe eine Datenbank mit z.B. der Tabelle "User".

Dort sind z.B. Nachname und Kennwort hinterlegt.

Kann mir jemand helfen, wie ich es am besten anstelle, dass nur die User, die in der Datenbank eingetragen sind die Website ansehen dürfen?

Ich programmiere mit HTML, ASP (VBScript), MS-SQL.

.htaccess funktioniert laut selfhtml nicht auf einem IIS.

Wäre lieb wenn ihr mir mit eurem Wissen helfen könntet!

mfg

Patrick

Keine Ahnung von ASP, aber grob:

Zu Beginn der Seite prüfen, ob angemeldet (Session?), wenn nicht Login anzeigen. Wenn Login erfolgt, gegen die DB prüfen und merken, dass der Benutzer angemeldet ist...

Also vom Ansatz her würde ich das so machen

Benutzernamen und Kennwort vom User eingeben lassen

Gibts den Namen in der DB

Wenn Ja

stimmt das eingegeben Passwort mit dem gespeicherten überein

Wenn Ja

Dann weiterleiten auf die anzuzeigenden Daten

Ansonsten Fehlermeldung ausgeben

Gibts den Namen in der DB

Wenn Ja

stimmt das eingegeben Passwort mit dem gespeicherten überein

Warum so umständlich? Warum nicht eine Anfrage: gibt es den User mit dem Passwort?


SELECT id FROM UserTab WHERE user = $user AND pass = md5($pass)

beispielweise

Mir schwebten halt mehrere Fehlermeldungen vor.

Zum Beispiel :

User nicht gefunden

Passwort ungültig.

Um einem möglichen Einbrecher auch noch Tipps zu geben welcher User gültig ist und welcher nicht? Nee nee ;) das macht man in der Regel gerade nicht.

One Errormessage fits all.

  • Autor

An sowas habe ich auch gedacht, wäre ja schön wenn es dabei bleiben könnte.

Ich denke, dass das so auch ohne Probleme funktionieren würde.

ABER:

Angenommen ein Benutzer loggt sich so wie beschrieben ein:

Dann bekommt er Zugriff auf die Seite und kann sich alles anschauen.

Nun klickt er sagen wir mal einen unterlink an, wo dann z.B. in der URL steht:

"http://forum/projekte/dumdidum/mitglieder.asp"

Das würde doch bedeuten, dass er beim nächsten aufruf der Seite sofort diesen Link eingeben kann und somit die Passwort Abfrage umgehen kann.

Somit fällt diese Lösung also weg, oder täusche ich mich?

Du müsstest natürlich in jede Seite eine entsprechende Abfrage einbauen ob eine bestimmte Session-Variable (<-- gibt's das überhaupt in ASP) gesetzt ist, und ansonsten zum Login schicken. In PHP würde das ansatzweise z. B. so aussehen:


if (!$_SESSION['user']['logged_in']) {
die(header('location: login.php'));
}
[/PHP]

Grüße, Tobias

  • Autor

Also ich hab bislang herausgefunden, dass man sich mit Session.SessionID die aktuelle SessionID anzeigen lassen kann. Jedoch ändert sich diese bei mir jedesmal, sobald ich die Seite aktualisiere?

Ich frag mich gerade ob es möglich wäre, eine Passwort Abfrage zu machen, wo halt abgeglichen wird obs den Benutzer gibt (blabla...) aber dann noch die Aktuelle Session ID irgendwie zu speichern und mit auf die nächste Seite zu übergeben, und halt jedesmal weiter zu übergeben. Und sobald diese sich ändert, ist dann die Seite nicht mehr erreichbar.

Hmm... stellt sich dann nur die Frage, wo / wie speichere ich die ID?

Und ändert sich diese dann nicht bei jedem anklicken eines neuen Links?

Ja, das müsstest Du dann wohl mal in der ASP-Referenz nachschlagen. Unter PHP gibt's jedenfalls ein Session-Array, in dem man entsprechend der Array Struktur Werte ablegen und über beliebig viele Seiten hinweg nutzen kann.

IIS unterstützt kein .htaccess, wohl aber einen mechanismus wie basic HTTP authentication. die kombination dieser standardisierten methode mit einem datenbank-backend (das kann sowohl mit dem erwähnten SQL server, aber auch mit simplen plaintext-dateien - oder ganz exotisch - excel :D erfolgen) wird den gewünschten sicherheitserfordernissen genügen.

sowohl der ansatz als auch die implemntierung sind z.b. in den folgenden artikeln sehr gut beschrieben:

ASP-basierte Basic Authentication

Formular-basierte Basic Authentication

auch gut beschrieben sind sessions mittels ASP:

Session Variablen

s'Amstel

also du kannst in der Page.Session[index oder String] beliebege werte in der Session ablegen, zu beachten ist jedoch bei links, redirect etc relative pfade zu verwenden damit die Session-/id nicht verlohren geht. Ansonnsten musst du die SessionID in die URL mit einbauen.

Ich weiß nicht genau ob du in der Web.config die Session "einschalten" musst.

  • Autor

Amstelchen, du hast mir mal wieder sehr geholfen!

Dein 3. Link war mir sehr sehr hilfreich! (Hatte diese Seite zwar selber schon gefunden, allerdings nicht DIESESN Artikel).

Den anderen Danke ich natürlich auch!! =)

Hiermit beende ich nun meine Session und wünsche euch ne schöne Woche :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.