Unsichtbare Links
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
allianz
beitrag
benutzer
datei
daten
formular
gegner
knack
login
mafia
methode
mitglied
mglichkeit
pawort
quelltext
schutz
sitte
verteidigung
weiterleitung
zugreifen
-
Ich habe folgendes Problem:
für meinen Clan brauche ich nen System, was automatisch nach klick auf den jeweiligen Namen sich in den Account zum Sitten einloggt. dieses ist zwar auch in Html möglich, aber dort habe ich das problem, dass jeder, der sich en Quellcode der seite anschaut, die passwörter kennt. Was soll ich also machen, damit das nicht möglich ist. zur ansicht liegt ein quellcodeausschnitt an, um den es geht:
<td><form action="URL DER BETREFFENDEN SEITE" method="post">
<label>
<input name="action" id="action" value="login" type="hidden">
<input name="nickname" id="NICKNAME DES USERS" value="NICKNAME DES USERS(2.MAL)" type="hidden">
<input name="passwort" id="PASSWORT DES USERS" value="PASSWORT DES USERS(2.MAL)" type="hidden">
<input name="Submit" value="LogIn !" type="submit">
</label>
</form></td>
<td> </td>
</tr>
<tr>
</tr><tr>
kann man das in php umschreiben, sodass es nicht mehr möglich ist, das passwort zu sehen?
Beitrag geaendert: 3.4.2007 20:20:38 von pppp -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Kannst du mal bitte genauer erklären was du meinst?
-
Was du machen kannst :
Schreib ein PHP Script mit z.b einem Suchfeld der benutzer gibt ein "Franz"
der User Franz wird dann in der db gesucht und es wird sein pw mitgelesen und
in eie Var. geschirben z.b ($pw_nick)
2 Möglichkeiten:
a) Du gibst die Daten aus
Nick : $nick
Passwort: $pw_nick
b) Du logst den user direkt ein
da du jetzt die Daten in Varablen hast ist das ja kein Proplem
wenn du das zeugst verschlüsseln willst benütze einfach ne md5 verschlüsselung ^^
aber beachte das auch MD5 Hashes entschlüsselt werden können.
EDIT:
Sende das Formular daher mit POST und NICHT mit GET da man sonst die Hash oder PWs auslesen kann
Beitrag geaendert: 3.4.2007 20:32:33 von warhiro
Beitrag geaendert: 3.4.2007 20:35:05 von warhiro -
Mein Problem ist, dass ich das mit HTML nicht schützen kann, d.h, dass alle im Quelltext die PWs herausfinden könnten, deshalb PHP, jedoch kann ich es kaum, also hab ih diesen Tread geschrieben.
-
ich hab doch oben dir eh eine Möglichkeit geschriebn
den Code kannst ja selber schreiben
(Statt dem "Suchfeld halt der Link)
sende das Formular einfach mit POST dann kann man die PWs nicht auslesen
außerdem kannst du ganz am Anfang der Datei prüfen ob der Benutzer der Seite Admin Rechte hat -
Also auf direktem Weg kannst du es mit PHP nicht machen:
Wenn man auf den Link klickt, wird kein PHP mehr vom Server ausgeführt. Man wird direkt weitergeleitet.
So wies aussieht hast du Angst vor Zugriff von ungewollten Gästen. Du hast doch sicher ein Login. Sonst hat dein "System" (?) ja keine Chance, zu unterscheiden, wer das sich einloggen kann (?). Dann generiest du die Datei erst, wenn man sich eingeloggt hat.
Andere Möglichkeit, deine ungenaue Beschreibung zu verstehen: Die Leute sollen sich irgendwo einloggen können, ohne das PW zu kennen. Da stellt sich die Frage: Wo sollen sich die einloggen? Ein Browser-Game? Dann kann man davon ausgehen, das der Betreiber von dem Ding verhindert, dass man sich so einloggen kann.
Deutsch gesagt, sesch hat recht: Du musst genauer sagen, was du willst. -
Es geht darum, dass sich die Mitglieder gegenseitig die Zeit, in der sie nicht online (im Browsergame) sind, sitten, d.h. auf Angriffe von
anderen aufpassen und Verteidigungseinheiten stellen, es gibt im Spiel die Möglichkeit sogenannte Sitterpaswörter zu generieren, mit dem nur
das stellen der Verteidigungseinheiten möglich ist. Dieses können dann die anderen User im Forum (der Allianz, das selbstverständlich im geschützten Bereich untergebracht ist) anklicken und dann die Verteidigung stellen.
dieses PW kann natürlich auch weitergegeben werden, indem man das PW einfach anderen sagt(z.B. als Spion Gegnern), wenn man aber auf einen Link klickt und
das pw nicht herausfinden kann, so kann man es auch nicht weitergeben. Das wollte ich damit erreichen.
Kurzum soll es den Mitgliedern der Allianz möglich sein, anderen zu helfen, aber so, dass sie diese Möglichkeit nicht missbrauchen können. -
Ist es dein eigenes Browsergame?
-
nein
-
Also das System? Besteht das aus noch mehr, als aus dem Forum. Wo schreibst du diesen Link hin? Im spiel kannst du kein php einbauen. Wenn du dich aber von ausserhalb eiloggen willst, wird das vermutlich verhindert. Wie heisst das Spiel? Ich seh mal nach.
-
Mafia 1930 ist das BG,
mit dem Script in HTML ist das einloggen auch problemlos möglich, das damit verbundene Problem hab ich ja schon geschildert. Im Spiel wollte ich es auch nicht einbauen, verhindert wird das einloggen vom Beitreiber nicht. -
Also wenn es mit dem HTML-Link klappt ist schon mal gut.
Aber mir fällt kein Weg für eine Weiterleitung ohne HTML oder Javascript ein.
Vielleicht könntest du eine Weiterleitung mit Javascript machen, die dann das Passwort per AJAX lädt. Aber ich hatte bis jetzt noch keine Zeit für AJAX.
Vielleicht könnte man es irgendwie mit md5() machen. Dann kann man zwar das PW auslesen, aber es ist verschlüsselt. Die meisten PWs sind sowieso verschlüsselt ind der Datenbank gespeichert. Aber dann dürfte die Mafia-Seite es nicht nochmals verschlüsseln, was nur der Admin von der Seite machen könnte.
Tut mir sehr leid, aber ich habe keine gute Lösung. -
http://www.php-faq.de/q/q-code-post.html
Das sollte dir helfen.
Du machst einfach einen Link, der als Get-Variable den Nick des Users hat o.ä. Dann liest du aus eurer DB das Passwort zum Einloggen aus und sendest das per POST via PostToHost an die Login-Datei des Browsergames und schon sollte man eingeloggt sein.
Hoffentlich habe ich dein Problem nicht missverstanden, aber diese Methode funktioniert ganz ohne Javascript und sogar ohne HTML, da quasi die Eingabe der Daten in das Login-Formular simuliert wird. Natürlich musst du die Variablen an das Formular des BG anpassen. Folgender Link hilft dir dabei vielleicht noch zusätzlich.
http://www.masterportal24.com/forum/viewtopic.php?p=14803 -
ist doch total unsicher mit nehm einfachen link oder ?
mach doch einfach das der user ein sitterpw anlegen kannund aas kann erdann jeden X-Belibigem Spielr geben der Sitte soll
nur hat der Sitter halt nicht voolen zugriff z.b Emails aändern etc.
ist doch am einfachsten und sichersten oder ? -
@i-spacke: danke für die Links, die haben sehr geholfen,
und die PWs sind dann auch im Quelltext nicht sichbar? -
Aber mir fällt kein Weg für eine Weiterleitung ohne HTML oder Javascript ein.
Vielleicht könntest du eine Weiterleitung mit Javascript machen, die dann das Passwort per AJAX lädt. Aber ich hatte bis jetzt noch keine Zeit für AJAX.
Geht aufgrund der Same-Origin-Policy schonmal nicht.
pppp schrieb:
@i-spacke: danke für die Links, die haben sehr geholfen,
und die PWs sind dann auch im Quelltext nicht sichbar?
Richtig. Das liegt aber dadran, dass der Server dann sich einloggt und nicht der Sitter! Der Server sendet dann die Daten von Browsergame-Server an den Sitter, der dann entscheidetet, wie es weitergehen soll.
Jedoch muss der Sitter die ganze Zeit über über diesen PHP-Proxy gehen, weil eine Manipulation der IP(-->Übergabe der Session an Sitter) eigentlich nicht möglich sein dürfte, wenn dein Browsergame vernünftig programmiert wurde.
Dies ist jedoch die einzig sinnvolle Möglichkeit, da es weitaus mehr Möglichkeiten gibt, ein Passwort auszuspähen, als im HTML Quelltext.
Mit einem Packet-Sniffer könnte man problemlos das zugesendete Passwort auslesen. Daher sollten die Sitter nie das Passwort zugeschickt bekommen. -
Das BG verwendet SessionIDs, d.h., dass eine Übergabe von PC zu PC möglich ist.
-
<input name="passwort" id="PASSWORT DES USERS" value="PASSWORT DES USERS(2.MAL)" type="hidden">
kann man das in php umschreiben, sodass es nicht mehr möglich ist, das passwort zu sehen?
Prüfe nicht die Passwörter an sich, sondern die MD5 Hashes.
Den kannst du in PHP mit dem Befehl crypt($Passwort) generieren.
So ist es nicht möglich das Passwort direkt auszulesen. Zwar ist es immernoch möglich das ganze mit gewissen methoden zu knacken, aber vor den Methoden kannst du dich eh nie schützen.
Die MD5 Hashes kannst du z.B. in einer Datenbank oder einem File hinterlegen.
@Wahiro:
Nur so als kleine Warnung am rande:
Auch POST Variablen lassen sich ohne weiteres auslesen und Manipulieren.
Beitrag geaendert: 4.4.2007 10:52:28 von keiax -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage