php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 03-04-2008, 15:55
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
1207227974
Also muss der User diese Zahl als gültiges PW angeben?
Zitat:
In der check_access.txt steht wie folgt nur das Passwort, dass aus Time Generiert wird
Dann ist das also ein Timestamp?
Wenn ja hast du geprüft dass diese alle innerhalb 2h von der aktuellen Zeit aus liegen?

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #17 (permalink)  
Alt 03-04-2008, 16:15
23isall
 Newbie
Links : Onlinestatus : 23isall ist offline
Registriert seit: Apr 2008
Ort: siegen
Beiträge: 60
23isall ist zur Zeit noch ein unbeschriebenes Blatt
23isall eine Nachricht über ICQ schicken
Standard

Zu Frage 1:
Ja genau.

Zu Frage 2:
Mal ein Codeschnipsel wie der Timestamp eingetragen wird:
PHP-Code:
$time time();
$handle fopen ("check_access.txt""a+");
fwrite($handle$time);
fwrite($handle"\r\n");
fclose($handle); 
Nach diesem Eintrag bekommt der User die Mail zugeschickt, in der das Passwort ist. Ab diesem zeitpunkt hat er 2 Stunden zugang.
Mit Zitat antworten
  #18 (permalink)  
Alt 03-04-2008, 16:28
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und was ist denn jetzt noch dein Problem? Der Vergleich scheint zu funzen, sonst wäre $bool nicht auf einmal true gewesen...
Aber mal ehrlich, warum kann der User nicht einfach das Passwort auswählen wie er will? In die Datei könntest du dann folgendes schreiben
Code:
//Username Passwort Zeit
anton;totalGeheim;12305444
beat;nichtSoGeheim;1230544
am besten dazu die Passworte als md5-Hashes speichern und nicht im Klartext
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #19 (permalink)  
Alt 03-04-2008, 16:43
23isall
 Newbie
Links : Onlinestatus : 23isall ist offline
Registriert seit: Apr 2008
Ort: siegen
Beiträge: 60
23isall ist zur Zeit noch ein unbeschriebenes Blatt
23isall eine Nachricht über ICQ schicken
Standard

Nehmen wir mal an: Ein User holt sich ein Passwort, dann ist dieses 2 Stunden gültig. In dieser Zeit wo das Passwort gültig ist, holt sich ein anderer User ein Passwort für 2 Stunden, dann wird das vorige Passwort nicht von dem Script erkannt, es Akzeptiert nur das Letzte gültige Passwort in der Liste.

MfG Micha ;-)
Mit Zitat antworten
  #20 (permalink)  
Alt 03-04-2008, 16:54
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Jetzt überlegen wir mal was in deinem beschriebenen Fall passiert:
Der User gibt sein PW ein (das zweitletzte). Das Script prüft und beim zweitletzten Eintrag wird die Var auf true gesetzt. Bei letzten Eintrag aber dürfte wieder ein false daraus werden.
Vorschlag:
Sofort nach dem ersten true die Schleife abbrechen und weiterleiten. Auf ein weiteres PW zu prüfen macht keinen Sinn weil es keines geben kann. Denn der Wert, den der User eingegeben hat bleibt konstant und ändert sich nicht. Also wird er wohl kein zweites Mal vorkommen.
dumpe mal die Werte von $bool am Ende der Schleife
PHP-Code:
foreach (file($handle) as $wert)
{
  
$wert trim($wert);
  if (
$wert $time && isset($_POST['user']) && $_POST['user'] == 'benutzer' 
&& (isset($_POST['passwd']) && $_POST['passwd'] == $wert)) {
    
$bool TRUE;
   }else {
      
$bool FALSE;
   }
  }
var_dump($bool);
echo 
'<br />';

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #21 (permalink)  
Alt 03-04-2008, 17:09
23isall
 Newbie
Links : Onlinestatus : 23isall ist offline
Registriert seit: Apr 2008
Ort: siegen
Beiträge: 60
23isall ist zur Zeit noch ein unbeschriebenes Blatt
23isall eine Nachricht über ICQ schicken
Standard

Wenn doch nach dem Ersten TRUE weiter Geleitet wird, wird doch das nächste Passwort ignoriert?

Beispiel:
1207225603 < ungültig
1207227889 < gültig
1207227974 < gültig

Es soll beim zweiten oder dritten Passwort weitergeleitet werden.
Oder verstehe ich dich jetzt falsch?

MfG Micha ;-)
Mit Zitat antworten
  #22 (permalink)  
Alt 03-04-2008, 17:14
23isall
 Newbie
Links : Onlinestatus : 23isall ist offline
Registriert seit: Apr 2008
Ort: siegen
Beiträge: 60
23isall ist zur Zeit noch ein unbeschriebenes Blatt
23isall eine Nachricht über ICQ schicken
Standard

Ops, hab noch die Ausgabe von var_dump($bool); vergessen:

bei 1207225603 kommt bool(false) (ungültig)
bei 1207227889 kommt bool(false) (gültig)
bei 1207227974 kommt bool(true) (gültig)
Mit Zitat antworten
  #23 (permalink)  
Alt 03-04-2008, 17:17
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja so ist doch die Anforderung, Du hast nirgends beschrieben wlcher Nutzer genau welches Passwort kennen soll. Der Nutzer kennt ein Passwort aus einer Reihe von gueltigen Moeglichkeiten.

das erste das erkannt wird öffnet die Tür.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #24 (permalink)  
Alt 03-04-2008, 17:27
23isall
 Newbie
Links : Onlinestatus : 23isall ist offline
Registriert seit: Apr 2008
Ort: siegen
Beiträge: 60
23isall ist zur Zeit noch ein unbeschriebenes Blatt
23isall eine Nachricht über ICQ schicken
Standard

Also habe ich mich falsch ausgedrückt, sorry.
Ein User fordert ein Temporäres Passwort an, dass ihm über E-Mail zugeschickt wird, was auch nur für ihn Gültig sein sollte, es sei denn er schickt es weiter.
Was dann auch für den anderen Logischerweise gültig ist.
Ein anderer User fordert ebenfalls ein Passwort an, dann hat er nur noch Zugang auf den Geschützen Bereich und der andere mit Passwort, was ja eigentlich noch gültig ist, guckt in die Röhre.
Das möchte ich aber gern verhindern, alle gültigen Passwörter sollen vom Script akzeptiert werden und den Zugriff gewähren.
Mit Zitat antworten
  #25 (permalink)  
Alt 03-04-2008, 17:33
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also ich glaube langsam Du verstehst den Ansatz überhaupt nicht denn die vorgeschlagene Lösung macht genau das.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #26 (permalink)  
Alt 03-04-2008, 17:46
23isall
 Newbie
Links : Onlinestatus : 23isall ist offline
Registriert seit: Apr 2008
Ort: siegen
Beiträge: 60
23isall ist zur Zeit noch ein unbeschriebenes Blatt
23isall eine Nachricht über ICQ schicken
Standard

Macht es eben nicht, ich habe es ja getestet, es wird nur das letzte Passwort akzeptiert.

Beispiel:
Ich gebe 1207225603 ein, was abgelaufen ist, habe ich keinen Zugriff.
Ich gebe 1207227889 ein, was ja noch gültig ist, habe ich keinen Zugriff, warum?
Gebe ich aber 1207227974 ein, habe ich Zugriff.
Vielleicht ist es aber auch besser, die abgelaufenen Passwörter zu löschen, lässt sich das mit einbaun?
Mit Zitat antworten
  #27 (permalink)  
Alt 03-04-2008, 18:01
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also nehmen wir an dass Du das hast:
1207225603 < ungültig
1207227889 < gültig
1207227890 < gültig
1207227974 < gültig

Ich gebe ein benutzer und als passwort 1207227890
Dann werde ich wenn ich jetzt die Datei einlese und folgendes mache dann bekomme ich logischerweise Zugriff:

Code:
$file = file($datei);
$time = mktime(0,0,0,date('m'),date('d')-4*7,date('Y')); // ich gehe davon aus dass in der Datei timestamps stehen
foreach($file as $zeile){
  if(trim($zeile) == $pwd && $zeile > $time){
    Header('Location: /index.php?access=granted');
    exit;
  }
}
Header('Location: /index.php?access=denied');
exit;
das sollte logisch funktionieren...
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #28 (permalink)  
Alt 03-04-2008, 20:07
23isall
 Newbie
Links : Onlinestatus : 23isall ist offline
Registriert seit: Apr 2008
Ort: siegen
Beiträge: 60
23isall ist zur Zeit noch ein unbeschriebenes Blatt
23isall eine Nachricht über ICQ schicken
Standard

Danke @ MelloPie,

Es funktioniert nach dem Anpassen nun genauso wie ich es wollte:
PHP-Code:
<?php
$handle 
'check_access.txt';
$file file($handle);
$time time()-2*60*60;
strip_tags($_POST['passwd'], $_POST['user']);
foreach(
$file as $zeile){
    if(isset(
$_POST['passwd']) && $_POST['passwd'] == trim($zeile) && $zeile $time &&
    isset(
$_POST['user']) && $_POST['user'] == 'benutzer'){
        
ini_set('session.use_cookies''0');
        
session_name('sid');
        
session_start();
        
$_SESSION['user'] = isset($_POST['user']);
        
$_SESSION['VERIFIED'] = TRUE;
        
$_SESSION['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];
        
Header('Location: /data.php?sid='.session_id());
        exit;
    }
}
Header('Location: /index.php?access=denied');
exit;
?>

Gruss Micha ;-)
Mit Zitat antworten
  #29 (permalink)  
Alt 04-04-2008, 09:00
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

na dann hoffe ich mal dass Du jetzt auch weisst warum das funktioniert :-)
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #30 (permalink)  
Alt 04-04-2008, 12:38
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Ein User fordert ein Temporäres Passwort an, dass ihm über E-Mail zugeschickt wird, was auch nur für ihn Gültig sein sollte, es sei denn er schickt es weiter.
Darum mein Vorschlag in der Textdatei eine Zuordnung zwischen Benutzernamen und PW herzustellen. Dann ist für den Benutzer nur eines gültig.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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