John Dowe: Daten in Variablen löschen

Hallo Forum,

ich "spiele" gerade mit php und habe da ein Verständigkeitsproblem.

Auf einer htm Seite gibt es die Möglichkeit mit einem einfachen Passwortschutz (php, wird nicht in einer Datenbank gespeichert !!) auf eine neue htm Seite zu kommen (um sich diese zum beispiel anzuschauen).

Diese "neue" Seite sieht genauso aus wie die "alte" (nur halt neuer kontent) aber auch auf dieser Seite habe ich die Möglichkeit mein Passwort einzugeben (Da ich nicht mit Frames arbeite, lade ich natürlich die Passwortoption wieder neu)

Das Passwort wird per method="post" an eine php Seite geschickt dort geprüft und mit if-else auf die Seiten "passwortrichtig.htm" oder "passwortfalsch.htm" weitergeleitet. So weit so gut ?!

Aber jetzt:

Wenn ich z.b. auf der passwortfalsch.htm bin und mein Passwort wieder eingeben will lande ich immer wieder auf der passwortfalsch.htm (obwohl das Passwort RICHTIG ist ).....

..... auch wenn ich auf der passwortrichtig.htm bin und erneut das Passwort eingeben will lande ich immer wieder auf der passwortfalsch.htm !!

Da das übersendete Passwort in der Variablen "pass" übergeben wird, gehe ich davon aus das dieses Passwort "gecacht" ist und deshalb sich mit jeder neuen Passworteingabe "beisst" !? Ist das so ?

Gibt es eine Möglichkeit bei Aufruf einer Seite die Variable "pass" erst zu löschen (Wert=leer) damit ich mein Problem meistern kann ?

Lange Rede kurzer Sinn: HILFE

Danke an alle die helfen wollen

J.D.

  1. Hallo,

    Da das übersendete Passwort in der Variablen "pass" übergeben wird, gehe ich davon aus das dieses Passwort "gecacht" ist und deshalb sich mit jeder neuen Passworteingabe "beisst" !? Ist das so ?

    Nein. Normalerweise nicht.
    Hast Du irgend ein Hidden Field im Formular?

    Gibt es eine Möglichkeit bei Aufruf einer Seite die Variable "pass" erst zu löschen (Wert=leer) damit ich mein Problem meistern kann ?

    Eine HTML-Seite hat keine Variablen.
    Hoechstens Werte in Formularfeldern oder in Links mit angehaengten Paramtern.

    In PHP-Skripten kannst Du ja selbst den Variablen Werte zuordnen.
    Daneben gibt es noch unset()
    http://www.php.net/manual/de/function.unset.php

    Aber ich habe den Eindruck, dass Du nicht sehr sauber arbeitest bzw. keine Ahnung
    hast, was Du tust und wo die Variablen ihre Werte herhaben.

    Du solltest unterscheiden zwischen "boesen" Variablen, die von aussen kommen
    und somit manipulierbar sind ($_GET, $_POST, $_COOKIE, $_REQUEST),
    und skript-internen Variablen, die _Du_ im Verlauf des Skripts definierst.

    Gruesse,

    Thomas

    1. Hallo,

      Hast Du irgend ein Hidden Field im Formular?

      Nein habe ich nicht, da du mir nicht sagst wofür kann ich dir auch nicht sagen warum ich keins habe...

      Eine HTML-Seite hat keine Variablen.
      Hoechstens Werte in Formularfeldern oder in Links mit angehaengten Paramtern.

      Hättest Du dir mein Beitrag durchgelesen, hättest Du gewusst das ich genau das meine.

      In PHP-Skripten kannst Du ja selbst den Variablen Werte zuordnen.
      Daneben gibt es noch unset()
      http://www.php.net/manual/de/function.unset.php

      Das schaue ich mir gelich an.

      Aber ich habe den Eindruck, dass Du nicht sehr sauber arbeitest bzw. keine Ahnung
      hast, was Du tust und wo die Variablen ihre Werte herhaben.

      Nochmal, hättest Du meinen Beitrag gelesen, hättest Du gewust das ich ein zitat: Verständikkeitsproblem habe(Ich würde sagen , dass könnte heissen ich habe keine Ahnung!). Aber nochmals vielen Dank für dn Tipp!

      Du solltest unterscheiden zwischen "boesen" Variablen, die von aussen kommen
      und somit manipulierbar sind ($_GET, $_POST, $_COOKIE, $_REQUEST),
      und skript-internen Variablen, die _Du_ im Verlauf des Skripts definierst.

      Und wenn ich mir das hier so durchlese habe ich den Eindruck das Du mir gar nicht helfen willst (wie kann mann den so ein Mist von "boesen" Varablen schreiben, wenn mann davonausgeht das der Andere keine Ahnung hat ??)

      Ok, ein Versuch wars wert,ich kann mit Deinen Äusserungen aber nichts anfangen!

      Danke Dir trotzdem

      Gruesse,

      Thomas

      J.D.

      1. Hallo,

        Eine HTML-Seite hat keine Variablen.
        Hoechstens Werte in Formularfeldern oder in Links mit angehaengten Paramtern.

        Hättest Du dir mein Beitrag durchgelesen, hättest Du gewusst das ich genau das meine.

        Was jetzt?
        GET oder POST?

        Ich _habe_ Deinen Beitrag durchgelesen.
        Ich verstand es so:
        Du hast auf der ersten Seite ein Eintipp-Formularfeld mit dem Namen "pass".
        Du schickst das Formular (mit der POST-Methode) an ein PHP-Skript (wie heisst dieses?).

        Im Skript ist der Inhalt des Feldes, also das eingetippte Passwort, verfuegbar
        in den Variablen $_POST["pass"] oder $_REQUEST["pass"].
        Bei gewissen alten (oder "tolerant" konfigurierten) PHP-Versionen ist
        die Variable auch mit $pass direkt verwendbar.

        Du hast nicht geschrieben, wie Du von dort "weiterleitest" auf die Seiten
        "passwortrichtig.htm" oder "passwortfalsch.htm". Ohne weitere Angaben
        gehe ich davon aus, dass es sich bei diesen beiden Seiten um _statische_
        HTML-Seiten handelt.
        Dann gibt es keinen ersichtlichen Grund, warum in diesen Seiten
        irgendwo noch eine Spur des Passwortes vorhanden sein sollte.

        Gemaess dem ersten Posting verstehe ich es so, dass Du in der
        "passwortfalsch.htm" wieder ein Formular mit einem Eintipp-Feld
        fuer das Passwort hast.
        Wohin schickst Du dieses Formular? (Was steht im ACTION-Attribut im FORM-Tag?)

        Du solltest unterscheiden zwischen "boesen" Variablen, die von aussen kommen
        und somit manipulierbar sind ($_GET, $_POST, $_COOKIE, $_REQUEST),
        und skript-internen Variablen, die _Du_ im Verlauf des Skripts definierst.

        Und wenn ich mir das hier so durchlese habe ich den Eindruck das Du mir gar nicht helfen willst (wie kann mann den so ein Mist von "boesen" Varablen schreiben, wenn mann davonausgeht das der Andere keine Ahnung hat ??)

        Ich empfehle Dir dringend, mal die dclp-FAQ anzuschauen (gibt's auch als Download-Version).
        http://www.dclp-faq.de/
        insbesondere den Abschnitt "Sicheres Programmieren in PHP"
        http://www.dclp-faq.de/ch/ch-security.html
        und speziell "Wie unterscheide ich böse Variablen von guten?"
        http://www.dclp-faq.de/q/q-security-variablen.html

        Die "superglobalen" Variablen $_REQUEST u.s.w. sind hier beschrieben:
        http://www.php.net/manual/en/reserved.variables.php
        (die deutsche Uebersetzug ist noch nicht soweit)

        Ok, ein Versuch wars wert,ich kann mit Deinen Äusserungen aber nichts anfangen!

        _Was_ war nicht klar?

        Ich _will_ Dir helfen.

        Ich haette Dir auch so antworten koennen:
        * "geheime" URLs sind ein untauglicher Schutz, siehe </archiv/>
        * nimm stattdessen .htaccess
        * RTFM.

        Gruesse,

        Thomas

        1. Hallo,

          Hallo,

          Wie schon gesagt, dass Problem ist gelöst lag an meiner unsauberen Arbeit [pref:t=60982&m=343522m=6841&t=1092]

          Ich haette Dir auch so antworten koennen:
          * "geheime" URLs sind ein untauglicher Schutz, siehe </archiv/>
          * nimm stattdessen .htaccess
          * RTFM.

          Du wirst es nicht glauben, aber auch damit hätte ich was anfangen können, hätte aber genausowenig (wie auch Deine erste Antwort) dazubeigetragen mein Problem zu lösen !! (bis auf das mit dem unsauberen Arbeiten :-))

          Ist nicht schlimm ;-) Du hast mir ja geholfen...

          Gruesse,

          Thomas

          Gruss

          J.D.

          1. [pref:t=60982&m=343522]

        2. Was jetzt?
          GET oder POST?

          Auf was beziehts Du diese Fragen ??

          Ich _habe_ Deinen Beitrag durchgelesen.

          Glaube ich immer noch nicht !! Denn...

          Du hast nicht geschrieben, wie Du von dort "weiterleitest" auf die Seiten
          "passwortrichtig.htm" oder "passwortfalsch.htm". Ohne weitere Angaben
          gehe ich davon aus, dass es sich bei diesen beiden Seiten um _statische_
          HTML-Seiten handelt.

          Hier die gemachten Angaben laut meienm ersten Posting : Das Passwort wird per method="post" an eine php Seite geschickt dort geprüft und mit if-else auf die Seiten "passwortrichtig.htm" oder "passwortfalsch.htm" weitergeleitet

          Gemaess dem ersten Posting verstehe ich es so, dass Du in der
          "passwortfalsch.htm" wieder ein Formular mit einem Eintipp-Feld
          fuer das Passwort hast.
          Wohin schickst Du dieses Formular? (Was steht im ACTION-Attribut im FORM-Tag?)

          Sie weiter höher, aber wofür ist das für Dich relevant ??

          Ich empfehle Dir dringend, mal die dclp-FAQ anzuschauen (gibt's auch als Download-Version).
          http://www.dclp-faq.de/
          insbesondere den Abschnitt "Sicheres Programmieren in PHP"
          http://www.dclp-faq.de/ch/ch-security.html
          und speziell "Wie unterscheide ich böse Variablen von guten?"
          http://www.dclp-faq.de/q/q-security-variablen.html

          Die "superglobalen" Variablen $_REQUEST u.s.w. sind hier beschrieben:
          http://www.php.net/manual/en/reserved.variables.php
          (die deutsche Uebersetzug ist noch nicht soweit)

          Sowas habe ich schon als Antwort auf mein erstes Posing erwartet !

          _Was_ war nicht klar?

          Ich _will_ Dir helfen.

          Du hast zwar versucht mir igdendwas über böse Variablen zu erzählen aber nicht auf meine Frage geantwortet (ausser dass mit unset() )

          Ich haette Dir auch so antworten koennen:
          * "geheime" URLs sind ein untauglicher Schutz, siehe </archiv/>
          * nimm stattdessen .htaccess
          * RTFM.

          Hättest Du, währe aber auch keine Antwort auf meine Frage. Sehe ich eher als "getue" um zu zeigen wie toll man ist !

          Gruesse,

          Thomas

          Aber wie gesagt Du hattest recht, ich habe unsauber gearbeitet.

          Danke für dieses Tipp

          J.D.

          1. Hallo,

            Langsam artet es zu einer "Meta-Diskussion" aus, also zu einer Diskussion
            darueber, wie wir einander (miss)verstehen.
            Da das eigentliche "Problem" ja offenbar geloest ist, geht es mir in diesem Posting
            eigentlich nur noch darum, meinen Antwortstil zu rechtfertigen.

            Es tut mir leid, dass meine erste Antwort fuer Dich arrogant geklungen hat.
            Ich will nicht arrogant sein, sondern helfen.

            Die Problembeschreibung war mir nicht genug klar und ausfuehrlich (siehe unten),
            und ich konnte ja nicht wissen, wie viel Ahnung Du von HTML, Formularen
            und PHP hast.

            Der einzig konkrete Tip in [pref:t=60982&m=343480] war denn auch unlink(),
            und der bezog sich u.a. auf die Frage im Titel Deines Postings.

            Was jetzt? GET oder POST?
            Auf was beziehts Du diese Fragen ??

            Ich hatte wie folgt zitiert:
            -------

            Hoechstens Werte in Formularfeldern oder in Links mit angehaengten Paramtern.
            Hättest Du dir mein Beitrag durchgelesen, hättest Du gewusst das ich genau das meine.

            Was jetzt? GET oder POST?
            -------

            Ich verstand nicht, was Du mit "genau das" meintest.
            Und ich hatte deshalb die Befuerchtung, dass Du im gleichen Formular
            sowohl Formularfelder als auch angehaengte Parameter verwendest.
            Um es klarzustellen:
            Du darfst nicht GET und POST mischen.
            <form action="script.php?pass=blabla" method="POST">
            waere falsch.

            Hier die gemachten Angaben laut meienm ersten Posting : Das Passwort wird per method="post" an eine php Seite geschickt dort geprüft und mit if-else auf die Seiten "passwortrichtig.htm" oder "passwortfalsch.htm" weitergeleitet

            Weder im ersten Posting, noch in obiger Copy-Paste-Wiedergabe steht:

            1. _Wie_ Du weiterleitest. Es gibt viele Moeglichkeiten, z.B.
               a) header("Location: http://www.example.com/passwortrichtig.htm")
               (Das verstehe _ich_ z.B. unter "Weiterleitung").
               b) META-Redirection
               c) <a href="passwortrichtig.htm">Du darfst rein. Klick hier:-)</a>
               Bei allen Varianten koennte man einen Parameter an die URL dranhaengen:
               http://www.example.com/passwortrichtig.htm?pass=blabla
               Somit wuerde der Paramter dieser Seite also mit GET uebergeben...
               Und beider Varianten sind "unsicher", weil die URL sichtbar wird.

            2. Ob die Seiten "passwortrichtig.htm" und "passwortfalsch.htm"
               a) statische HTML-Seiten sind, oder Du sie
               b) mit PHP generierst,
               c) mit dem "Entscheider"-PHP-Skript inkludierst (include)/durchschleust (fpassthru)
                   und dabei ggf. noch gewisse Dinge veraenderst...

            Es gibt zahlreiche andere Moeglichkeiten.
            Und somit viele Fehlerquellen, wo der unerklaerliche Wert der Variable herkommen koennte...

            [SNIP Meine Links auf dclp-FAQ und Manual]
            Sowas habe ich schon als Antwort auf mein erstes Posing erwartet !

            Ja, ich haette wohl aufgrund der unklaren Fragestellung erraten sollen,
            wo Deine Wissensluecken in bezug auf HTML, Formulare und PHP sind...

            Noch eine letzte moralinsaure Botschaft:
            Du schreibst im ersten Posting:

            ich "spiele" gerade mit php

            Mit PHP sollte man nicht spielen, sondern man sollte wissen, was man tut.
            Die Sicherheit sollte an erster Stelle stehen.
            Alles andere ist gefaehrlich.

            Ich hoffe, dass meine Links und Hinweise Dir trotz allem weitergeholfen haben,
            und bin dafuer, diesen Thread jetzt zu schliessen.

            Freundliche Gruesse,

            Thomas

            1. Hallo,

              Na aber Hallo,

              Noch eine letzte moralinsaure Botschaft:

              Na da habe ich doch gleich auch noch eine :-)

              Du schreibst im ersten Posting:

              ich "spiele" gerade mit php
              Mit PHP sollte man nicht spielen, sondern man sollte wissen, was man tut.
              Die Sicherheit sollte an erster Stelle stehen.
              Alles andere ist gefaehrlich.

              Ich hoffe, dass meine Links und Hinweise Dir trotz allem weitergeholfen haben,
              und bin dafuer, diesen Thread jetzt zu schliessen.

              Du hast diesen Thread nicht eröffet, wieso solltest Du also diesen Thread schliesenn oder dafür sein diesen zu schliessen.

              Ich würde sagen dieses Widerspricht dem Gedanken diese Forums und ich habe hier noch nie gehört das ein Tread hier jemals geschlossen wurde?

              Mehr dazu hier:

              http://forum.de.selfhtml.org/archiv/2003/8/54536/#m306479

              Aber ich muss gestehen, ich sehen auch keinen (richtigen) Grund mehr diesen Tread mit meinen "Weisheiten" zu bestücken und werde mich hier an dieser Stelle nicht mehr beteildigen.

              Freundliche Gruesse,

              Thomas

              Aber jetzt mal im Erst: Vielen Dank für Deine Mühe !!!

              Ich habe so das Gefühl, wier werden uns hier wiedersehen ;-o)

              CU

              D.J.

    2. Hallo,

      Hallo Thomas,

      das Du mir nicht helfen konntest , nehme ich hiermit zurück . Asche über mein Haupt !

      Nachdem ich mir Deinen Beitrag nochmal durchgelesen habe ....

      Aber ich habe den Eindruck, dass Du nicht sehr sauber arbeitest bzw. keine Ahnung<<

      ... habe ich gemerkt : " Ja, Du hast recht,ich habe unsauber gearbeitet !"

      Ich vergass im Formular das Atribut (ich hoffe es ist ein Atribut, wenn nicht auch egal) "name=pass" . Das geht so natürlich nicht!

      Also recht vielen Dank

      J.D.