php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.02.2012, 14:37  
luigiano
Gast
 
Beiträge: n/a
Standard Loginscript ohne MySQL um Passwort-ändern Funktion erweitern

Also nach dieser Anleitung habe ich bei mir den Login gemacht:
http://www.vbdesigns.de/php-scripte/...ysql-7802.html jetzt wollte ich mal fragen wie man dafür ein "Passwort ändern Feld" erstellen kann. Lösungsansätze hat ja schon einer geschrieben weiter unten auf der seite aber nie ohne fehler gepostet. ( http://forum.bplaced.net/viewtopic.php?f=10&t=5708 ) Wo liegt der Fehler?
Ich hab es mal so probiert:

PHP-Code:
<?php
if(isset($_POST['username']) && isset($_POST['pass']) && isset($_POST['newpass']) && $_POST['pass'] != $_POST['newpass'] ) {
    
$user_array = array();
    
$i 0;
    
$username $_POST['username'];
    
$passwort $_POST['pass'];
    
$newpasswort $_POST['newpass'];
    
$userdatei explode("\n",file_get_contents("user.txt"));
    foreach(
$userdatei as $user)  {
        
$user_array[$i] = $user
        
$userdata explode("|"$user); 
        if (
$userdata[0]==$username and $passwort==trim($userdata[1]))  { 
            
$user_array[$i] = $username.'|'.$newpasswort;
            echo 
'Passwort ge&auml;ndert';
        } 
        
$i++;
    }
    
$user_array array_unique($user_array);
    
file_put_contents("user.txt",implode("\n",$user_array));

 }
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<fieldset>
<legend>Neues Passwort</legend>
    <label for="username">Benutzer</label><input id="username" type="text" name="username" /><br />
    <label for="pass">Altes Passwort</label><input id="pass" type="text" name="pass" /><br />
    <label for="newpass">Neues Passwort</label><input id="newpass" type="text" name="newpass" /><br />
    <input type="submit" value="speichern" /><br />
</fieldset>
</form>

Geändert von luigiano (12.02.2012 um 15:42 Uhr).
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.02.2012, 14:51  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Dein Script bringt das Sicherheitsloch "passwörter öffentlich auslesbar" mit.

Nutz besser stattdessen arrays worin du speicherst und schieb sie zum speichern per var_export über file_put_contents in eine .php-datei, die du zum auslesen einfach includierst.

Zum rest: Wir reparieren nix. Fragen wie "Wie muss das lauten das es funktioniert?" enden hier meist im Trash Bin.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 12.02.2012, 15:07  
luigiano
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
Zum rest: Wir reparieren nix. Fragen wie "Wie muss das lauten das es funktioniert?" enden hier meist im Trash Bin.
Ok aber wenigstens sagen wo der Fehler liegt, das wäre eine große Hilfe!
  Mit Zitat antworten
Alt 12.02.2012, 16:04  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Die Fehler:
- Dein PHP-Code ist weit weg von Sicher
- Mit dem Formularfeld des neuen Passworts ist man in der Lage beliebig viele User deiner Textdatei hinzuzufügen
- Mit dem Formularfeld des neuen Passworts ist man in der Lage deinen Webspace mit mehreren Terabyte Daten volllaufen zu lassen.
- Du behandelst keine Ausnahmefälle:
--- Neues Passwort enthält gültige Zeichen
--- Neues Passwort hat gültige Länge
--- Neues Passwort nicht gesetzt -> Benutzer wird dumm sterben gelassen
--- Neues Passwort ist identisch mit altem Passwort
--- ...
- Du erzeugst einen Index neben einem existierenden Index ( siehe foreach im handbuch, $i is sinnlos )
- Du prüfst nicht auf existenz des Formulars ( bspw. per Submit-Feld )

Nutze den von mir angebrachten Vorschlag mit var_export im Vorpost, dann kannst du dir das ganze Gebimsel mit explode() und join() sparen, und keiner kann dir deine Nutzerdatenbank vom Webspace runterladen. Nutz einfach den Key des Array-Eintrags als Username ( von mir aus als base64-string ) und speicher grundsätzlich nur einen hash des passworts ( SHA256 z.b. ), unzwar als Value des entsprechenden Eintrags.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 12.02.2012, 19:08  
luigiano
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
- Dein PHP-Code ist weit weg von Sicher
- Mit dem Formularfeld des neuen Passworts ist man in der Lage beliebig viele User deiner Textdatei hinzuzufügen
--- Neues Passwort nicht gesetzt -> Benutzer wird dumm sterben gelassen
--- Neues Passwort ist identisch mit altem Passwort
Ok das hört sich nicht gut an
Und wie kann ich die oben gennanten Fehler beheben?
Da ich noch ein ziemlicher Anfäger in php bin bitte ausführlicher schreiben ich blick sonst überhaupt nicht durch
  Mit Zitat antworten
Alt 12.02.2012, 19:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zum rest: Wir reparieren nix. Fragen wie "Wie muss das lauten das es funktioniert?" enden hier meist im Trash Bin.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 12.02.2012, 19:38  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von luigiano Beitrag anzeigen
Ok das hört sich nicht gut an
Und wie kann ich die oben gennanten Fehler beheben?
Da ich noch ein ziemlicher Anfäger in php bin bitte ausführlicher schreiben ich blick sonst überhaupt nicht durch
Befass dich mit Grundlagen ( Siehe Forennavigationsleiste ), dann kriegst du das spielend hin. Fang mit dem Quake(net)-PHP Tutorial an und schau auch mal bei Schattenbaum vorbei.

Bis zum nächsten Wochenende kriegst du mit Sicherheit ein Paar Grundlagen-Tutorials durch, als das du die oben genannten Dinge umsetzen kannst. Der Rest ist dann Logik, Logik und nochmals Logik.

Ein Loch das nicht zugemacht wird, ist halt ein Loch, das immer Offen ist.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Passwort vergessen Funktion Extremefall PHP Tipps 2010 12 22.01.2010 21:52
[Erledigt] MySQL Passwort | Ausgesperrt | XAMPP Capfly Datenbanken 7 04.11.2009 21:05
Passwort vergessen Funktion Gravenstein PHP Tipps 2009 17 18.08.2009 09:43
Warenverfügbarkeitslink inkl. User & Passwort mit MySQL & PHP solvero PHP Tipps 2008 11 21.08.2008 11:12
Funktion erweitern funnx PHP Tipps 2008 2 29.07.2008 20:10
Daten selber per Browser ändern (MYSQL) Minimi PHP Tipps 2008 9 31.12.2007 13:21
Datum hinzufügen: PHP oder MySQL Funktion Lloyd Larkin PHP Tipps 2006 5 10.12.2006 15:30
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] root passwort ändern Datenbanken 1 09.03.2005 07:50
[Erledigt] passwort ändern PHP Tipps 2004-2 7 27.12.2004 16:23
aendern funktion in mysql?! Jinonidi Datenbanken 2 06.12.2004 19:25
[Erledigt] mysql 4.1.x - passwort problem Datenbanken 1 06.12.2004 13:57
[Erledigt] Passwort der DB ändern? Datenbanken 2 12.11.2004 14:39
bin ich blöd???? Mysql Datenbank Passwort becks123 Datenbanken 3 29.10.2004 14:11
Wie heist in MySQL die funktion "Variance" von Ora Datenbanken 3 11.08.2004 12:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
script zum passwort ändern, php login script ohne datenbank, mysql login script um verzeichnis zu speichern, loginscript php 5.x ohne mysql, login script php ohne mysql, passwort änder funktion php, einlogg script php als function, script passwort vergessen ohne mysql, passwort script ohne mysql, user registrieren php einfach ohne mysql, startseite nach login ändern mit php ohne mysql, mysql passwort per skript ändern, php login script without mysql password change

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum