Zur Navigation

Login per htaccess / auth-mysql

1 AndiN

Hallo,
ich versuche gerade einen Login über htaccess mit Hilfe des Apache-Moduls auth-mysql hinzubekommen. Grund-Idee ist es eine Login-Maske zu haben, die Login-Daten dann zu übergeben und mit dem o.g. Apache-Modul dann eine Datenbank abzufragen. Folgendes Szenario habe ich aktuell:

Firefox:
- Benutze ich das normale htacess-Login-Fenster klappt alles prima.
- Übergebe ich die Login-Daten jedoch per HTML-Formular verweigert er mir den Zugriff und öffnet nochmal zusätzlich ein htaccess-Loginfenster. :(

Internet Explorer:
- Egal wie ich es mache erscheint "Es kann keine Verbindung aufgebaut werden" (so als wäre ich offline).

index.php

<?php
require_once("scripts/connect.inc.php4"); //DB-Zugangsdaten
require_once("scripts/scripts.php"); //JavaScript-Zeug
if($_REQUEST['aktion'] == "erfolgreich")
{
	$user = $_REQUEST['user'];
	$pass = $_REQUEST['passwort'];
	header('Location: http://'.$user.':'.$pass.'@www.domain.de/test/intern/');
}
else
{
?>
<form name="Anmeldung" enctype="multipart/form-data">
<table>
	<tr>
		<td>Melden Sie sich hier mit Ihrer Emailadresse und Ihrem Passwort an.</td>
	</tr>
	<tr>
		<td>E-Mail: <input type="text" name="user" value="<?php echo $Email ?>"></td>
	</tr>
	<tr>
		<td>Passwort: <input type="text" name="passwort" value="<?php echo $Passwort ?>"></td>
	</tr>
	<tr>
		<td><input type="button" onClick="javascript:senden1('anmelden');" value="Anmelden"></td>
	</tr>
</table>
</form>
<?php
}
?>

scripts.js

function senden1(aktion_tmp)
{
	var datum_tmp;
	var check = "true";
	var User = document.Anmeldung.user.value;
	var Passwort = document.Anmeldung.passwort.value;

	if(User == "")
	{
		alert("Bitte tragen Sie Ihre Email-Adresse ein.")
		document.Anmeldung.user.focus();
		return false;
		check = "false";
	}
	else
	{
		if(Passwort == "")
		{
			alert("Bitte tragen Sie ein Passwort ein.")
			document.Anmeldung.passwort.focus();
			return false;
			check = "false";
		}
	}
	if(check == "true")
	{
		document.Anmeldung.method = "post";
		document.Anmeldung.action = "index.php?aktion=erfolgreich";
		document.Anmeldung.submit();
	}
}

/intern/.htaccess

AuthBasicAuthoritative Off
Auth_MySQL on
AuthType Basic
Auth_MySQL_Authoritative off
AuthName "Mitgliederbereich"
Auth_MySQL_Host localhost
Auth_MySQL_DB XXXXX
Auth_MySQL_User XXXXX
Auth_MySQL_Password XXXXX
Auth_MySQL_Password_Table user
Auth_MySQL_Username_Field email
Auth_MySQL_Password_Field passwort
Auth_MySQL_Password_Clause " AND email != ''"
Auth_MySQL_Encryption_Types Plaintext
<LIMIT GET POST>
require valid-user
</LIMIT>

Was mache ich falsch?

03.01.2012 16:12

2 Jörg Kruse

Firefox:
- Benutze ich das normale htacess-Login-Fenster klappt alles prima.

mit derselben htaccess Datei?

- Übergebe ich die Login-Daten jedoch per HTML-Formular verweigert er mir den Zugriff und öffnet nochmal zusätzlich ein htaccess-Loginfenster. :(

Was für eine Fehlermeldung wird bei dieser Zugriffsverweigerung angezeigt - Status Code 401 oder 403?

Hast du Zugriff auf das Errorlog - was für Fehler sind dort verzeichnet?

Das Apache-Modul ist auch aktiviert?

03.01.2012 18:09

3 AndiN

Korrektur:

Mit dem Firefox geht es per HTML-Formular. Es kommt allerdings ein nerviges Popup:

"Sie sind dabei, sich bei der Website "www.domain.de" mit dem Benutzernamen "blabla%40gmx%2Ede" anzumelden."

Da muss ich dann nochmal "OK" anklicken und erst dann lässt er mich rein.

Wenn ich einen falschen Login eintrage öffnet er das htaccess-Login-Fenster. Das will ich verhindern!

Bei IE kommt auch bei korrektem Login "Die Webseite kann nicht angezeigt werden."

Wie kann ich beim IE den Fehlercode rausfinden?

04.01.2012 03:20

4 Jörg Kruse

	header('Location: http://'.$user.':'.$pass.'@www.domain.de/test/intern/');

Der Internet Explorer unterstützt die Übergabe von Username und Passwort in der URL nicht mehr:

Zitat von http://support.microsoft.com/kb/834489
Ein Angreifer könnte diese URL-Syntax auch dazu verwenden, einen Hyperlink zu erstellen, der eine rechtmäßige Website zu öffnen scheint, in Wirklichkeit jedoch eine manipulierte Website öffnet, die die Identität einer rechtmäßigen Site vortäuscht. Beispielsweise scheint der folgende URL "http://www.wingtiptoys.com" zu öffnen, öffnet in Wirklichkeit jedoch "http://example.com":
http://www.wingtiptoys.com@example.com

Das Popup-Fenster in Firefox könnte gleichsam den Zweck verfolgen, den User auf die besondere Form der URL hinzuweisen.

04.01.2012 09:23

5 AndiN

Ich hab's jetzt über Sessions gelöst... läuft. Danke!

25.01.2012 10:36

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]