Passwort Schutz mit echter Logout Funktion, geht das?

Roloben schrieb am 19.07.2014 um 21:00 Uhr

Hallo, liebe Community.

Ich habe sicher schon ein Dutzend Threads zum Thema „Passwortschutz“ studiert, bin aber zu keiner Lösung für mein Problem gekommen.

Alle Lösungsvorschläge, die ich finden konnte (.htaccess, JavaScript, AccessProtect, o.ä) haben eine Schwachstelle gemeinsam: Sie bieten keine echte Logoutfunktion. Das heißt, einmal eingeloggt ist der „Schutz“ dahin, wenn nicht der Browserverlauf-, Cookies- und der Browser-Cache sorgfältig gelöscht werden.

Wird das versäumt, kann jeder, der Zugriff zum benutzten PC hat und nur ein bisschen Zeit darauf verwendet, ohne Kenntnis des Passworts, die „geschützte“ Seite wieder aufrufen…

In einigen Threads war die Rede von einer programmierten Schutzfunktion, die diese Schwäche nicht haben soll.

Hat jemand eine Idee, wie das für den Web Designer 10 umgesetzt werden kann?

Ich habe leider bestenfalls Grundkenntnisse in HTML und JavaScript, die Lösung sollte also nicht zu kompliziert sein.

Schon mal vielen Dank für Eure Mühe.

Kommentare

BeRo schrieb am 20.07.2014 um 22:49 Uhr

[...] Alle Lösungsvorschläge [..] haben eine Schwachstelle gemeinsam: Sie bieten keine echte Logoutfunktion.[...]

Deine Suche hat schon das richtige Ergebnis gebracht:
Für eine mit dem WD erstellte Website geht es nicht ohne Zusatzprogrammierung!

In einem ähnlichen Zusammenhang habe ich eine Demo erstellt, die sogar noch weiter geht. Da wird nicht nur eine echte Login/Logout Funktion realisiert sondern auch noch eine Passwort abhängige Verteilung auf entsprechende Unterseiten gemacht.

Das zugrunde liegende Szenario war der Wunsch eines Hochzeitspaares, zu der anstehenden Hochzeitsfeier eine "2 Klassen Gesellschaft" zu bilden. 1 Gruppe sollte zum vollen Programm eingeladen werden, vom Aperitif um 11:00h bis zum Schlummertrunk, die 2. Gruppe sollte abends, zum Umtrunk eingeladen werden.

Für beide Gruppen sollte eine einheitliche Website zur Verfügung stehen, über die sie sich zur Feier anmelden konnten. Abhängig vom Passwort sollte dann die passende Einladungsseite geöffnet werden, über die man sich anmelden konnte.

Hier kannst Du Dir die in den Grundzügen funktionsfähige online Demo ansehen, die ich mit dem WD10- und ein paar zusätzlichen PHP Scripts erstellt habe.

Der Name für das Login ist immer "Hochzeit"

Das Passwort für die Einladung zum kompletten Programm ist "Essen"
Das Passwort für die Einladung zum abendlichen Umtrunk ist "Trinken"

Die Logout Funktion ist sitzungsabhängig. Wird der Browser geschlossen, erfolgt automatisch ein Logout. Alternativ kann über den Logout Button auf der Website ein Logout erzwungen werden.

Das verwendete Verfahren stellt sicher, dass die geschützten Websites nur über das korrekte Login erreicht werden können. Da hilft dann auch keine Browsercache- oder die "zurück" Funktion des Browsers...

Du sagst zwar, dass Du "nur" Grundkenntnisse in HTML und JavaScript hast, das sollte Dich aber nicht davon abhalten ein paar fertige PHP Scripts einzubauen.

Wenn Du Dir das zutraust, melde Dich gerne wieder...

Viel Erfolg

Zuletzt geändert von BeRo am 20.07.2014, 22:49, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

Roloben schrieb am 21.07.2014 um 19:17 Uhr

Hi, BeRo.

Prima, die Demo zeigt genau die Lösung, die ich mir vorgestellt habe.

die in den Grundzügen funktionsfähige online Demo ansehen, die ich mit dem WD10- und ein paar zusätzlichen PHP Scripts erstellt habe.

Wenn Du mir jetzt noch zeigen kannst, wie die PHP Scripts aussehen und wie ich die in mein Projekt einbauen kann, wird alles perfekt...

BeRo schrieb am 21.07.2014 um 23:48 Uhr

[...] Wenn Du mir jetzt noch zeigen kannst, wie die PHP Scripts aussehen [...]

Kein Problem. Die Anpassung an Dein Projekt und der Einbau sind allerdings nicht mit ein paar Mausklicks zu machen. Ein "bisschen" Arbeit musst Du schon investieren...

Am besten, Du lädst Dir zunächst mal hier die komplette Projektdatei- die exportierte Demo-Site und die PHP Scripts als ZIP Archiv herunter.

Für einen ersten Test kannst Du den kompletten Inhalt des Verzeichnisses "Export" mit einem FTP Client auf Deinem Webspace ablegen. Damit der Test funktioniert, musst Du aber vorher die IP Deines Webservers in die .htaccess Datei eintragen, die Du im Verzeichnis "Export/html" findest. Es genügt, die ersten drei Zahlengruppen der IP Adresse zu benutzen.

Wenn Du die IP nicht kennst, kannst Du das PHP Script "$ServerAdr.php" benutzen, das Du ebenfalls im Verzeichnis "Export" findest. Lege das Script auf dem Webserver ab und rufe es mit Deinem Browser auf.

Hast Du alle vorhin heruntergeladenen Dateien- und die geänderte .htaccess Datei auf dem Webserver abgelegt, sollte das root Verzeichnis so aussehen:

  • Im Verzeichnis "html" liegen die .htaccess Datei und alle geschützten Seiten, die zusätzlich zum PHP Passwortschutz noch mit einer .htaccess Einstellung gesichert werden, die verhindert, dass sie direkt aufgerufen werden können. Ein direkter Zugriffsversuch zeigt nur eine 403 Fehlermeldung.

Wenn Du zum Test die URL Deiner Website aufrufst, wird automatisch das Script "index.php" gestartet. Das ist in Wahrheit die mit dem WD erstellte Startseite "index.htm", in der in einem Platzhalter über eine include Anweisung das Script "login.php" gestartet wird.

Der Platzhalter, mit dem auf der HTML Seite die PHP Login Prozedur sichtbar gemacht wird, enthält als einzige Anweisung:

-------------------
<?php include ("login.php"); ?>
-------------------

Wenn die Seite online geöffnet wird, sieht das dann so aus:



Wichtig! Weil die "index.htm" Datei PHP Code enthält, muss sie vor (oder nach) dem Upload die Endung "php" erhalten. 

Damit ist die Startseite fertig.

Der Passwortschutz wird jetzt mit diversen PHP Scripts realisiert. Da der Schutz in unserem Fall Sitzungsabhängig ist, müssen alle Scripts in der ersten Anweisungszeile zwingend mit "session_start();" beginnen.

Das PHP Script "login.php" ist das umfangreichste und das mit der höchsten Komplexität. So sieht es in der Demo aus:

------------------------------
<?php
session_start();
if(!isset($_SESSION["pass"]) && !isset($_GET["page"])) {
$_SESSION["aktion"] = 0;
}
if($_GET["page"] == "log") {
$user = $_POST["user"];
$passwort = md5($_POST["passwort"]);

if($user == "Hochzeit" && $passwort == "ed2f837af5acb5771d3460997189cc21") {
$_SESSION["pass"] = $passwort;
$_SESSION["aktion"] = 1;
}

elseif($user == "Hochzeit" && $passwort == "c421f40033caf1cdc102e879a1e73869") {
$_SESSION["pass"] = $passwort;
$_SESSION["aktion"] = 2;
}

else {
$_SESSION["aktion"] = 99;
}
}
?>

<!DOCTYPE html>
<html>
<head>
<!-- Geschützen Bereich öffnen -->
<?php
  if($_SESSION["aktion"] == 1) {
?>
  <script type="text/javascript">
   window.open("./trinken.php","_self");
  </script>
<?php
}
elseif($_SESSION["aktion"] == 2) {
?>
  <script type="text/javascript">
   window.open("./essen.php","_self");
  </script>
<?php
}
?>
</head>
<body>
<?php
if($_SESSION["aktion"] == 0) {
?>
<b><font color="#ffdb00">
<?php
if (!$_SESSION["titel"] ) {
$_SESSION["titel"] = "Bitte logge dich ein!";
}
echo ($_SESSION["titel"]);
?>
</font></b><br /><br />
<form method="post" action="login.php?page=log">
<font color="#ffdb00">Name:</font><br /><input type="text" name="user" value = "Hochzeit" /><br /><br />
<font color="#ffdb00">Passwort:</font><br /><input type="password" name="passwort" /><br /><br /><br />
<input type="submit" value="Einloggen" style="background:green; color:gold;/>
</form>
<?php
}
if($_SESSION["aktion"] == 99) {
$_SESSION["titel"] = "Fehler bei der Eingabe!\nNeuer Versuch...\n\nBitte logge dich ein!";
$_SESSION["titel"] = nl2br($_SESSION["titel"]);
?>
<script type="text/javascript">
  window.open("./index.php","_self");
</script>
<?php
}
?>
</body>
</html>

------------------------------

Die oben grün markierten Werte kannst Du an Deine Vorgaben anpassen. Sie repräsentieren Steuerparameter-, den/die Login Namen-, die Passwörter (md5 codiert)-, Infotexte-, Farbwerte für Texte und Eingabefelder-, Pfade zu den anderen PHP Scriptdateien usw. Der Sinn der einzelnen Werte ist IMO recht einfach aus dem Script zu entnehmen...

Die MD5 verschlüsselten Passwörter sind immer 32 Stellen lang, unabhängig von der Länge des jeweiligen Klartext Passwortes. Hier findest Du einen Generator, mit dem Du Deine eigenen Passwörter so verschlüsseln kannst.

Stellvertretend für die PHP Scripts, die nach erfolgreicher Login Prozedur die geschützten Seiten aufrufen, sehen wir uns mal das Script an, mit dem die Einladungsseite zum Festessen geöffnet wird:

----------------------------
<?php
session_start();
if(isset($_SESSION["pass"]) && $_SESSION["aktion"] == 2) {
include("html/essen.htm");
}
else {
?>
<script type="text/javascript">
window.open("./index.php","_self");
</script>
<?php
}
?>

----------------------------

Genau genommen wird mit dem Script nicht die HTML Seite aufgerufen, die Seite ist per include Anweisung (oben gelb markiert) in das Script integriert und wird mit dem Script geöffnet, wenn das Login erfolgreich war.
Bei fehlerhaftem- oder fehlendem Login wird über ein im "else" Zweig integriertes JavaScript, die Startseite mit der Login Aufforderung erneut geöffnet.

Auch für das o. a Script gilt, dass die grün markierten Werte an Deine Vorgaben angepasst werden können.

Für die in der Beschreibung des Szenarios zur Demo genannte Einladungsseite zum abendlichen Umtrunk, sieht das Script nahezu genauso aus. Lediglich der oben blau markierte Wert muss dann auf "1" geändert werden und der Verweis auf die Seite "html/essen.htm" wird durch den Namen "html/trinken.htm" ersetzt.

Was nun noch fehlt, ist die Logout Funktion, die so aussieht:

----------------------------
<?php
session_start();
if($_SESSION["aktion"] > 0 && $_SESSION["aktion"] < 99) {
session_destroy();
}
?>
<html>
<script type="text/javascript">
window.open("./index.php","_self");
</script>
>/html>

----------------------------

Da wir das Sicherheitskonzept Sitzungsbasiert angelegt haben, genügt es, die aktuelle Sitzung zu beenden, um alle Versuche, die geschützte Seite ohne Kenntnis des Passworts zu öffnen, sicher zu unterbinden.
Dazu benutzen wir im o. a. Script die PHP Funktion "session_destroy();"

Die laufende Sitzung wird außerdem automatisch geschlossen, wenn Der Browser geschlossen wird, es genügt allerdings nicht, nur die Registertabe zu schließen!
Der im Seitendesign vorgesehene Weg ist das Klicken des "Logout" Buttons. Damit wird die aktuelle Sitzung über das o. a. Script beendet und die Startseite "index.php" mit der Login Aufforderung erneut geöffnet.

Das ist im Wesentlichen das ganze Geheimnis des sicheren Login/Logout per PHP

Gerne viel Erfolg bei Deinen Versuchen und wenn Fragen offen geblieben sind, melde Dich einfach wieder...

 

Zuletzt geändert von BeRo am 21.07.2014, 23:48, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

Roloben schrieb am 22.07.2014 um 12:26 Uhr

Hallo, BeRo.

Das ist ja ganz großes Kino.

Vielen herzlichen Dank für Deine Mühe. Mit der Super Erklärung werde ich klar kommen.

Sollten sich neue Probleme auftun bin ich ganz sicher wieder hier, in diesem klasse Forum...

r.-laue schrieb am 05.01.2017 um 12:36 Uhr

Hallo BeRo,
Ich grabe diesen Thread mal wieder aus, da ich eine (hoffentlich kleine) Frage dazu habe. Bin noch neu im Webseiten erstellen (Magix Web Designer Premium V12) und hoffe, dass ich mich mit meiner Frage nicht zu dämlich anstelle 😇

@BeRo
Dein Skript verlinkt ja auf jeweils eine html-Datei (essen.htm und trinken.htm), welche ihr Layout aus dem eigentlichen Hilfsverzeichnis der Grundseite beziehen. Das habe ich auch soweit hinbekommen und hierfür ein großes DANKE für die super Anleitung und das Skript!

Wie bekomme ich es hin, dass ich eine eigenständige Instanz einer Website inkl. eigenem Hilfsverzeichnis per Passwort schützen kann?

-> Hauptseite; Vereinsseite (eigener Hilfsordner), Seite mit Login-Skript
-> Login des Vorstands: neue, eigenständige Unter-Webseite (Unterverzeichnis /testvs) mit eigenem Menü, Links, eigenem Hilfsordner...
-> Login der Mitglieder: neue, eigenständige Unter-Webseite (Unterverzeichnis /testmg) mit eigenem Menü, Links, eigenem Hilfsordner...

Sobald ich eine eigenständige Webseite in den Passwortgeschützten Ordner lege (mit .htaccess-Datei) und mich über das Skript anmelde, wird die Seite ohne Inhalt angezeigt, also sämtliche Bilder und Hintergründe sind nur als Platzhalter da.
Rufe ich die Seite in dem Unterordner testweise "direkt" auf (ohne .htaccess-Datei), wird sie mir so angezeigt, wie sie sein soll.

Liegt das jetzt am Skript oder an der .htaccess-Datei, dass mir die Seite nicht angezeigt wird?

Mit freundlichem Gruß

BeRo schrieb am 05.01.2017 um 16:55 Uhr

[...] Liegt das jetzt am Skript oder an der .htaccess-Datei, dass mir die Seite nicht angezeigt wird? [...]

Das liegt daran, dass die über das Script aufgerufene Datei in eine bestehende HTML Datei includiert wird. Damit wird sie zum Bestandteil einer bestehenden Seite.

Wenn Du mit dem PHP Script eine eigenständige Seite im geschützten Verzeichnis öffnen willst, musst Du anstelle der "include" Anweisung z. B. die "header" Anweisung benutzen (s. Screenshot)

Natürlich musst Du die Pfad-/Dateiangaben auf Deine Site zuschneiden und daran denken, auf der eigenständigen Seite einen Button mit Link zur "Logout" Funktion zu platzieren...

Viel Erfolg

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

r.-laue schrieb am 05.01.2017 um 22:28 Uhr

Danke vielmals für die schnelle Hilfe. Das hat grundsätzlich schon mal bestens geklappt. Ohne .htaccess-Datei werde ich sauber von der Login-Seite je nach verwendetem Passwort zur Vorstands- oder Mitgliedsseite geleitet und von dort per Logout wieder zurück.
Aber sobald die .htaccess-Datei mit passender allow-IP (*) im Unterordner (/testvs bzw. /testmg) liegt, kommt

Forbidden
You don't have permission to access /testvs/index.htm on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request

Kommt das, weil der Aufruf der Unterseite jetzt nicht mehr direkt durch die Inkludierung sondern über header eine Verlinkung stattfindet? Sie ist ja eigentlich nicht extern, sondern nur ein Unterordner.

(*)
Bei meinem Hoster steht für diese Domain eine andere IP, als das mitgelieferte $ServerAdr.php ausgibt. Habe beide getestet, kein Erfolg

BeRo schrieb am 05.01.2017 um 22:52 Uhr

[...] sobald die .htaccess-Datei mit passender allow-IP (*) im Unterordner (/testvs bzw. /testmg) liegt, [...]

Die .htaccess sollte eine Ebene höher liegen...

Das Problem könnte auch damit zusammenhängen, dass Dein Webserver die vollständige URL benötigt, um korrekt weiterleiten zu können. Der "additionally" gemeldete 404 Error deutet darauf hin.
Probier's mal mit "header("location: http://www.deinedomain/xxxx/testvs/index.htm");" in der PHP Steuerdatei.

[...] Bei meinem Hoster steht für diese Domain eine andere IP, als das mitgelieferte $ServerAdr.php ausgibt [...]

Die PHP Datei liefert AFAIK immer die korrekte IP. Zumindest habe ich bisher nichts Gegenteiliges bemerkt. 😎

Viel Erfolg

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

r.-laue schrieb am 06.01.2017 um 01:08 Uhr

So. Habe jetzt mal vorsichtshalber komplett neue Pfade angelegt, weil mein Freund vorhin an den Ordner-Rechten im 1&1-Controll-Center rumhantiert hat. Hat leider nichts gebracht

root der Homepage: hier liegen auch die Scripte "login.php", "mg.php" für Mitgliedslogin, "vs.php" für Vorstandslogin
Unterpfad /pw: hier liegt die ".htaccess", "logout.php" und jeweils die Pfade zur Vorstands- und Mitgliedsseite, also /vs und /mg
header ist jeweils die komplette URL eingetragen
"header("location: http://www.meinedomain.de/pw/vs/index.htm");" für Vorstand
"header("location: http://www.meinedomain.de/pw/mg/index.htm");" für Mitglied

Was mich eben wundert, es geht ja alles solange keine .htaccess im Pfad "pw" liegt.

marboe schrieb am 06.01.2017 um 09:11 Uhr

Hallo r.-laue,
darf ich als alter 1und1-Kunde mal kurz in den Ring werfen:

Man hat bei diesem Provider die Möglichkeit "geschützte Verzeichnisse" anzulegen. Diese werden als .htaccess in den jeweiligen Ordnern abgelegt und sind aufgrund der ihnen zugeteilten Rechte erst mal nicht zu löschen.
Grundsätzlich gilt eine .htaccess so lange, auch für die dem Root untergeordneten Verzeichnisse, bis ein Verzeichnis/Ordner darunter eine neue .htaccess erhält. - Aber: die htaccess von 1und1 (geschütztes Verzeichnis) ist nicht durch nachstehende .htaccess-Dateien zu entkräften.
Vielleicht hilft dir das bei einer Fehlersuche / Installation.
Ich würde also mal gucken, ob es in irgendeinem Verzeichnis über dem problematischen Ordner eine .htaccess gibt, die dir hier in die Quere kommt.

Evtl. wäre es sowieso eine Idee, den Passwortschutz über 1und 1 einzurichten? Das hat u.U. auch Nachteile; zB kannst du dann in diesem so geschützten Verzeichnis und seinen Unterordnern eben keine eigenen Headeranweisungen mehr unterbringen. Gruß Marboe

r.-laue schrieb am 25.04.2017 um 20:16 Uhr

Hallo
Sorry, dass ich mich lange nicht hierzu gemeldet habe. Nach langer Pause habe ich mal wieder etwas weiter am Passwortzugang-Projekt gebastelt.

@marboe
Was ich so schön an diesem Script finde ist, dass ich je nach verwendetem Passwort direkt auf die richtige Website weitergeleitet werde. Wenn ich das über 1&1 "geschütztes Verzeichnis" mache, sehen die HP-Besucher ja zwei Links (z.B. ->Mitgliedsbereich und ->Vorstandsbereich)

--
Sämtliche 1&1 "geschützte Verzeichnisse" sind gelöscht und es existieren auch keine weiteren .htaccess-Dateien in meinen gesamten Verzeichnissen.
Hier mein Verzeichnissbaum:
/ #root
/MyHP #hier liegt die öffentliche Vereins-Website und das Passwort-Script
/MyHP/pw #hier liegt die .htaccess
/MyHP/pw/vs #hier liegt die Extra-Website für den Vorstand-Zugriff
/MyHP/pw/mg #hier liegt die Extra-Website für den Mitglied-Zugriff

Mir ist jetzt beim Testen folgendes aufgefallen.
Wie ich oben schon mal erwähnt hatte (https://www.magix.info/de/forum/passwort-schutz-mit-echter-logout-funktion-geht-das--1099152/#ca1291778), zeigt mir das Script eine andere IP an, als 1&1 im CC (Script 212.227.109-Bereich und 1&1 217.160.0-Bereich)
Ich habe es mit beiden versucht, keine Chance. Es kommt immer "403 Forbidden"
ABER sobald ich den Eintrag "Deny from all" in der .htaccess entferne, geht es. Leider komme ich so per Direktlinkeingabe (z.B. www.MyHP.de/pw/vs/) ohne Passwortabfrage direkt auf die Seite, was ja bestimmt nicht Sinn der Sache ist. Sonst könnte ja jeder, der die genaue Zeichenfolge des Links kennt, einfach so drauf 😉

Wenn ich das jetzt richtig deute, passt da irgendwas mit dem Allow-Adressbereich nicht. Sobald ich etwas verweigere (deny), kann er über die Ausnahme (allow) trotzdem nicht zugreifen. Aber sobald kein deny vorhanden ist, kann er auch - egal was erlaubt ist - von überall zugreifen.

Kann das mit dem Parallelbetrieb von IPv4 und IPv6 bei 1&1 zu tun haben?

Ich hoffe, ich habe mich verständlich ausgedrückt 😅
Gruß

BeRo schrieb am 26.04.2017 um 12:52 Uhr

[...] Kann das mit dem Parallelbetrieb von IPv4 und IPv6 bei 1&1 zu tun haben? [...]

Da die beschriebene Login/Logout Funktion bei verschiedenen Providern funktioniert, liegt tatsächlich der Verdacht nahe, dass 1&1 etwas "Spezielles" eingerichtet hat...

Am besten wendest Du Dich mal direkt an den 1&1 Support. Mit ein bisschen Glück lässt sich das Problem dann ohne große Experimentiererei lösen...

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

r.-laue schrieb am 26.04.2017 um 13:30 Uhr

Danke für die Antwort. Da werde ich wohl nicht drumrum kommen. Hoffe, die stellen mir nicht zu spezielle Fragen, auf die ich keine Antworten kenne 😓

Was mir heute morgen beim Frühstücken noch durch den Kopf geschossen ist...
Wenn ich das Passwort-Script 1:1 übernehme (noch original mit der Hochzeitsseite) und in der dortigen .htaccess die IP (die, die vom Script ausgelesen wird) eintrage, geht es ja 100%ig. Ich komme auch nicht durch Eingabe des Direktlinks auf die geschützten Seiten.

Bei mir ist also der einzige unterschied die "Header"-Anweisung, anstatt "Include". Wird diese evtl. nicht mehr von der HP-IP ausgeführt, sondern woanders, so dass nach Ausführung eben nicht mehr die Allow-IP greift?

BeRo schrieb am 26.04.2017 um 16:32 Uhr

[...] Bei mir ist also der einzige unterschied die "Header"-Anweisung, anstatt "Include". [...] so dass nach Ausführung eben nicht mehr die Allow-IP greift? [...]

Ohne die genaue Konfiguration des Webservers zu kennen, ist der Spekulation Tür- und Tor geöffnet. 😩

Der Server Admin bei 1&1 kann durchaus mit einer Master Konfigurationsdatei die Möglichkeiten einer .htaccess Datei einschränken. Das ist sogar üblich, damit keine sicherheitsrelevanten Bereiche durch den User verändert werden.

Hier findest Du einen Ausschnitt aus einer Website, in der das Thema ausführlich behandelt wird.

--------------------------------------------
[...]

Welche Anweisungen Ihnen tatsächlich zur Verfügung stehen, hängt davon ab, wie weitgehend die Rechte sind, die Ihnen der Server-Administrator mit Hilfe der Anweisung AllowOverride in der zentralen Konfigurationsdatei einräumt.

 

Beachten Sie: Die Anweisung AllowOverride kann nicht innerhalb einer .htaccess notiert werden, sondern wird ausschließlich vom Server-Administrator in der zentralen Konfigurationsdatei vorgegeben. Um den AllowOverride-Wert in Erfahrung zu bringen, benötigen Sie Einsicht in die Serverkonfiguration. Kontaktieren Sie dazu gegebenenfalls Ihren Webhosting-Provider. Dieser kann den Wert auch ändern, falls Sie bestimmte bisher nicht erlaubte Anweisungen verwenden möchten. Im einzelnen gibt es dafür folgende mögliche Werte:

AllowOverride None weist Webserver an, .htaccess-Dateien zu ignorieren. Das ist im Übrigen die Voreinstellung.

AllowOverride All legt fest, dass in einer .htaccess-Datei (so gut wie) sämtliche zentrale Vorgaben überschrieben und damit abgeändert werden dürfen. Das kann bedeuten, dass Vorhaben, die eigentlich verboten sind (beispielsweise die Ausführung von CGI-Scripts), mit Hilfe einer .htaccess-Datei erlaubt werden. Als Server-Administrator werden Sie diese Anweisung also nur sehr vorsichtig einsetzen.

AllowOverride Options legt fest, dass in einer .htaccess-Datei Anweisungen zur Steuerung spezieller Verzeichniseigenschaften zulässig sind.

AllowOverride Limit legt fest, dass in einer .htaccess-Datei Zugriffe von bestimmten Hosts erlaubt oder untersagt werden können.

AllowOverride Indexes legt fest, dass in einer .htaccess-Datei Anweisungen zur Steuerung von Verzeichnisindizes zulässig sind.

AllowOverride FileInfo legt fest, dass in einer .htaccess-Datei Anweisungen zur Akzeptanz bestimmter Dokumenttypen zulässig sind - beispielsweie, um Individuelle Fehlermeldungen ausgeben zu können.

AllowOverride AuthConfig legt fest, dass in einer .htaccess-Datei Autorisierungsanweisungen stehen dürfen - das betrifft beispielsweise Regelungen zum Passwortschutz.

Diese Werte können auch miteinander kombiniert werden. All ist der mächtigste Parameter, mit dem alles das zugelassen wird, was die anderen Parameter steuern.
[...]

--------------------------------------------------------------------------

Es kann also durchaus Sinn machen, den 1&1 Support zu kontaktieren, um zu erfragen, welchen Einschränkungen eine vom User angelegte .htaccess Datei unterliegt...

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓