Statistik |
Beiträge: 144.534 (Täglich: 19,19 )
Themen: 16.701
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 132%
Ausl. d. letzten 5 Minuten: 131%
Ausl. d. letzten 15 Minuten: 152%
Aktulle Uhrzeit: 05:55
Freier Webspace: 4.04 TB
PHP-Version: 7.4.33
|
|
|
|
|
PHP-Variable in Javascript nutzen |
|
PHP-Variable in Javascript nutzen |
|
Bezüglich der Lösung dieses Problems könnte es doch eine Möglichkeit geben.
Allerdings muss ich dazu in der Datei crypt.js auf eine (zusätzliche) Variable zugreifen, die in der Datei acp/lib/options.inc.php zur Verfügung steht.
Im www habe ich u.A. dieses gefunden:
code: |
1:
|
var daten ="<?php echo $daten ?>"; |
|
nur klappt das nicht.
Auszug aus der crypt.js:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
function encryptlogin(form)
{
var status=form.crypted.value;
if(status=='true')
{
var authentificationcode = form.authentificationcode.value;
var password = form.l_password.value;
authentificationcode = SHA1(SHA1(authentificationcode)+SHA1(password));
form.l_password.value='';
form.crypted.value='true';
form.authentificationcode.value=authentificationcode;
}
return true;
}
|
|
Hier soll in Zeile 9 auf die Variable zugegriffen werden.
Kann mir da jemand auf die Sprünge helfen?
Gruß Mike
|
|
12.08.2011 07:44 |
|
|
C-Board
wBB2-User
Dabei seit: 11.05.2006
Beiträge: 457
1 Filebase-Einträge
Alter: 66 Jahre
wBB-Version: wBB2.3
Bewertung:
Level: 42 [?]
Erfahrungspunkte: 2.984.910
Nächster Level: 3.025.107
Themenstarter
|
|
Schau Dir die Login-Prozedur z.B. für das ACP mal bitte an. Sofern der Haken gesetzt ist bei "Übertragung verschlüsseln" wird das nichts ohne das Script.
Gruß Mike
|
|
12.08.2011 10:23 |
|
|
C-Board
wBB2-User
Dabei seit: 11.05.2006
Beiträge: 457
1 Filebase-Einträge
Alter: 66 Jahre
wBB-Version: wBB2.3
Bewertung:
Level: 42 [?]
Erfahrungspunkte: 2.984.910
Nächster Level: 3.025.107
Themenstarter
|
|
Das werde ich heute nachmittag mal versuchen umzusetzen.
Danke Dir.
Gruß Mike
|
|
12.08.2011 10:50 |
|
|
C-Board
wBB2-User
Dabei seit: 11.05.2006
Beiträge: 457
1 Filebase-Einträge
Alter: 66 Jahre
wBB-Version: wBB2.3
Bewertung:
Level: 42 [?]
Erfahrungspunkte: 2.984.910
Nächster Level: 3.025.107
Themenstarter
|
|
@DonManfred
Ich habe mir das während der wöchentlichen Ablage nochmal durch den Kopf gehen lassen. Das kan doch so nicht klappen. PHP läuft serverseitig. Ich habe ein PW im Webbrowser eingetippt und wenn ich [Anmelden] drücke, sende ich meine Daten an den Server.
Wie soll es denn klappen, dass das PW in meinem Webbrowser verschlüsselt wird, wenn ich eine PHP-Datei aufrufe?
Gruß Mike
|
|
12.08.2011 13:30 |
|
|
|
|
Zitat: Original von C-Board
Ich habe mir das während der wöchentlichen Ablage nochmal durch den Kopf gehen lassen. Das kan doch so nicht klappen. PHP läuft serverseitig. Ich habe ein PW im Webbrowser eingetippt und wenn ich [Anmelden] drücke, sende ich meine Daten an den Server.
Wie soll es denn klappen, dass das PW in meinem Webbrowser verschlüsselt wird, wenn ich eine PHP-Datei aufrufe?
|
|
|
Du schriebst oben:
|
Zitat: Original von C-Board
Allerdings muss ich dazu in der Datei crypt.js auf eine (zusätzliche) Variable zugreifen, die in der Datei acp/lib/options.inc.php zur Verfügung steht.
|
|
|
Und DAFÜR habe ich Dir eine Idee geliefert wie du das umsetzen kannst.
Von verschlüsseln, nem PW oder dergleichen war nicht die Rede!
Weder das PW noch der Username stehen in der options.inc.php!
Vielleicht solltest du in Zukunft besser erklären was GENAU Du erreichen willst!? ;-)
__________________ Gruss Mannes
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
|
12.08.2011 14:12 |
|
|
C-Board
wBB2-User
Dabei seit: 11.05.2006
Beiträge: 457
1 Filebase-Einträge
Alter: 66 Jahre
wBB-Version: wBB2.3
Bewertung:
Level: 42 [?]
Erfahrungspunkte: 2.984.910
Nächster Level: 3.025.107
Themenstarter
|
|
|
Zitat: Original von DonManfredVielleicht solltest du in Zukunft besser erklären was GENAU Du erreichen willst!? |
|
|
Ich dachte eigentlich, dass ich das getan habe.
|
Zitat: Bau dir eine crypt.php in der du den Inhalt von crypt.js manuell mit echo ausgibst. |
|
|
Du siehst oben ja eine Funktion aus der crypt.js. Was nützt es mir, derartigen Code in einer PHP-Datei einzubauen, wenn ich doch im Moment, in dem eben diese PHP aufgerufen wird, das PW (siehe Zeilen 8/9) - noch - gar nicht kenne?
|
Zitat: Binde anschliessen im header die PHP-Datei crypt.php anstelle der crypt.js ein. |
|
|
Dann würde die Mimik zum Verschlüsseln des PWs ja gar nicht greifen.
Gruß Mike
|
|
12.08.2011 15:07 |
|
|
C-Board
wBB2-User
Dabei seit: 11.05.2006
Beiträge: 457
1 Filebase-Einträge
Alter: 66 Jahre
wBB-Version: wBB2.3
Bewertung:
Level: 42 [?]
Erfahrungspunkte: 2.984.910
Nächster Level: 3.025.107
Themenstarter
|
|
Wir lassen das Ganze mal lieber sein.
Ich rede hier ja nicht von irgendwelchen fremdartigen Dateien, sondern schlicht und einfach von Dateien, wie sie zum Standard des 2.3.6 gehören.
Und wenn ich lese:
|
Zitat:
Bau dir eine crypt.php in der du den Inhalt von crypt.js manuell mit echo ausgibst. Includiere oben in der php die benötigte info und gebe an geeigneter Stelle die Variable "in JS-Notation" mittels echo aus.
Binde anschliessen im header die PHP-Datei crypt.php anstelle der crypt.js ein.
Fazit: Du bekommst eine "dynamische crypt.js-Ausgabe"
|
|
|
dann ist mir das nicht einleuchtend und ich weiß nicht, wie das gehen soll.
Ich denke, ich habe ganz oben genau erklärt, was ich erreichen will. Im 3.1.5 klappt es, wenn man sich dort mal einige js-Dateien anschaut. Die Variablen aus den Optionen sind dort verfügbar. IOch war in dem Glauben, dass könne man im 2.3.6 auch umsetzen -wohlgemerkt innerhalb der Datei crypt.js.
Und es mag wohl stimmen, dass ich das Sytem nicht verstanden habe.
Gruß Mike
|
|
12.08.2011 16:25 |
|
|
|
|
Zitat: Original von C-Board
Und wenn ich lese:
|
Zitat:
Bau dir eine crypt.php in der du den Inhalt von crypt.js manuell mit echo ausgibst. Includiere oben in der php die benötigte info und gebe an geeigneter Stelle die Variable "in JS-Notation" mittels echo aus.
Binde anschliessen im header die PHP-Datei crypt.php anstelle der crypt.js ein.
Fazit: Du bekommst eine "dynamische crypt.js-Ausgabe"
|
|
|
dann ist mir das nicht einleuchtend und ich weiß nicht, wie das gehen soll.
|
|
|
WELCHE Variable aus der config.inc.php möchtest du in der crypt.js benutzen?
__________________ Gruss Mannes
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
|
12.08.2011 22:47 |
|
|
C-Board
wBB2-User
Dabei seit: 11.05.2006
Beiträge: 457
1 Filebase-Einträge
Alter: 66 Jahre
wBB-Version: wBB2.3
Bewertung:
Level: 42 [?]
Erfahrungspunkte: 2.984.910
Nächster Level: 3.025.107
Themenstarter
|
|
@Viktor
Das ist natürlich eine Option, ähnlich der Variable authentificationcode (im ACP-Login).
Nur ist diese Variable dann im Seitenquelltext zu sehen und das wollte ich eigentlich vermeiden.
@DonManfred
Es handelt sich um eine neue Variable, die ich mal als "GlobalSalt" bezeichnen möchte.
Wenn ich die Anmeldeprozedur auf den wBB3.1.5-Standard umbauen möchte, dann brauche ich pro User einen Salt. Das ist auch alles fürs 2.3.6 kein Problem. Nur eben mit der Option "Übertragung verschlüsseln" kann das nicht klappen. Denn im Moment des Anmeldens müsste ich schon diesen Salt kennen, was ja nicht klappen kann.
Deshalb erstelle ich eine Variable mit einem Salt, der für alle diese Anmeldungen (für alle User) genutzt wird. Die Mimik klappt in Tests auch bereits reibungslos, allerdings nur dann, wenn ich das so mache, wie Viktor oben angeregt hat.
Vielleicht bin ich auch ein wenig paranoid. Denn meines Wissens nach kann niemand nur anhand des Salts und authentificationcode die Anmeldung umgehen. Das PW müsste man trotzdem kennen.
Und wenn ich mir die derzeitige Mimik anschaue, dann wird das PW vor dem Absenden SHA codiert.
Und das ist auch nicht sicher.
Gruß Mike
|
|
13.08.2011 09:22 |
|
|
|
Ja, korrekt. Wenn Du einen solchen salt jedoch in die Crypt übergeben willst, dann "steht der salt im JS-quelltext". Er IST also für einen Potentiellen Hacker einsehbar. Auch mit Viktors Vorschlag wäre er das.
Du könntest meine Idee nutzen aber du könntest genauso die crypt.js editieren und den Salt dort eintragen. In beiden Varianten wäre er - wenn man sich nach dem laden der Seite den seitenquelltext anschaut - ersichtlich.
Aber das ist ja nicht wirklich das Problem. Das problem ist der Zeitpunkt der Übertragung. Also der Punkt, wo die Daten von deinem Clienten zum Server übertragen werden. HIER setzen potentieller Hacker ein um den "Datenstrom" zu loggen. Je mehr der verschlüsselt ist desto weniger finden die so raus. Sicherste Variante ist halt SSL wo JEGLICHE Requests an den Server verschlüsselt sind.
Wenn 100 Requests übertragen werden (jedes Bild ist z.B. ein Request) und alles ist verschlüsselt dann ist es für einen Angreifer schwer herauszufinden in welchem Request nun dein PW sein könnte.
Ist NUR der Request zum Login "Pseudoverschlüsselt" so wäre es nur EIN Request mit teilweise verschlüsselten Daten. Dieser Request ist an sich nicht verschlüsselt (weil kein SSL); nur ein Teil des Datenpaketes ist verschlüsselt (Stichwort SHA in der crypt.js). Für einen Potentiellen Angreifer dürfte also relativ schnell klar sein: HIER DAS PAKET muss ich versuchen zu entschlüsseln. Er findet "die Stelle" also schnell raus.
Und das ist es was mit der "vorgetäuschten Sicherheit" gemeint ist.
__________________ Gruss Mannes
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
|
13.08.2011 11:00 |
|
|
C-Board
wBB2-User
Dabei seit: 11.05.2006
Beiträge: 457
1 Filebase-Einträge
Alter: 66 Jahre
wBB-Version: wBB2.3
Bewertung:
Level: 42 [?]
Erfahrungspunkte: 2.984.910
Nächster Level: 3.025.107
Themenstarter
|
|
Fassen wir mal eben kurz zusammen.
In einem Standard-wBB2.3.6 gibt es zwei Möglichkeiten des Logins.
Die eine ist die, wie sie hier bei Viktor einem User angeboten wird - mit dem gesetzten Haken bei "Übertragung verschlüsseln" eben die Browser-Eingabe des Passworts verschlüsselt nach folgendem Code an den Server zu übermitteln (Code ist zu finden in der Datei js/crypt.js:
code: |
1:
|
authentificationcode = SHA1(SHA1(authentificationcode)+SHA1(password)); |
|
Die andere Möglichkeit des Logins ist die ohne die verschlüsselte Übertragung. Entweder, weil der Forenbetreiber die Option im ACP generell deaktiviert hat, oder weil der User den Haken entfernt.
Hierbei wird beim Absenden das Passwort in Klarschrift an den Server geschickt.
Fakt ist doch, dass die zweite Variante eindeutig die unsichere ist, oder?
Soweit zum 2.3.6. Nun habe ich das so interpretiert, dass im 3.1.x der User überhaupt nicht die Möglichkeit angeboten bekommt, die Übertragung zu verschlüsseln und WoltLab als einzige Alternative SSL empfiehlt.
Mein Bestreben ist, die Passwörter im 2.3.6 nicht länger mit md5 oder sha1 codiert in der Datenbank zu hinterlegen, sondern "doublesalted". Unter Anderem will ich die Mimik auch für die verschlüsselte Übertragung nutzen.
Das heißt aber, dass ich das 2.3.6 keinesfalls unsicherer machen will. Ich kann aber auch nicht davon ausgehen, dass jeder Forenbetreiber, der seinen Usern 100%ige Sicherheit bieten will, sich ein SSL-Zertifikat zulegt. Hast Du schon mal ein Forum gesehen, in dem das Login über https:// abläuft?
Und selbst wenn, dann kommt nur das Login infrage, denn was Viktor in meinem anderen Beitrag geschrieben hat ist nicht von der Hand zu weisen - das Forum wird "langsamer".
|
Zitat: Du könntest meine Idee nutzen aber du könntest genauso die crypt.js editieren und den Salt dort eintragen. |
|
|
Und genau das ist es ja, was ich vermeiden wollte. In dem Code soll die Variable angegeben werden, nicht deren Inhalt. Mache ich einen Denkfehler? Denn dann kann ich im Seitenquelltext und auch wenn ich mir die Javascripts anschaue nicht den "GlobalSalt" sehen.
Gruß Mike
|
|
13.08.2011 12:55 |
|
|
|
|
|
|