Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP]Cookies erlaubt oder nicht? (https://www.delphipraxis.net/57069-%5Bphp%5Dcookies-erlaubt-oder-nicht.html)

sniper_w 15. Nov 2005 13:01


[PHP]Cookies erlaubt oder nicht?
 
Wie kann man feststellen ob der Client (browser) Cookies erlaubt oder nicht?

Phistev 15. Nov 2005 13:43

Re: [PHP]Cookies erlaubt oder nicht?
 
Prinzip:
  1. Test-Cookie setzen
  2. per META REFRESH zweite Seite aufrufen
  3. mit zweiter PHP-Seite gucken, ob das Test-Cookie noch gesetzt ist

St.Pauli 15. Nov 2005 14:18

Re: [PHP]Cookies erlaubt oder nicht?
 
Einen Test-Cookie setzten und prüfen, ob dieser existiert.

Delphi-Quellcode:
   
   setcookie("cookietest", "blablabla");

    if(isset($_COOKIE['cookietest'])) {

     echo "Akzeptiert.";

    } else {

     echo "Nicht akzeptiert.";

    }

Flocke 15. Nov 2005 15:32

Re: [PHP]Cookies erlaubt oder nicht?
 
Zitat:

Zitat von St.Pauli
Einen Test-Cookie setzten und prüfen, ob dieser existiert.

Wetten dass bei deinem Code jeder Browser Cookies akzeptiert :wink:

St.Pauli 15. Nov 2005 15:33

Re: [PHP]Cookies erlaubt oder nicht?
 
Why? :gruebel:

malo 15. Nov 2005 15:38

Re: [PHP]Cookies erlaubt oder nicht?
 
Zitat:

Zitat von Flocke
Zitat:

Zitat von St.Pauli
Einen Test-Cookie setzten und prüfen, ob dieser existiert.

Wetten dass bei deinem Code jeder Browser Cookies akzeptiert :wink:

Nicht wirklich.
Eher anders herum. Denn, wenn du den Cookie schreibst, kannst du noch nicht damit arbeiten. Erst beim nächsten Aufruf ist der Cookie gesetzt. ;)

St.Pauli 15. Nov 2005 15:41

Re: [PHP]Cookies erlaubt oder nicht?
 
Also bei mir hatte der Code funktioniert...

sniper_w 17. Nov 2005 19:40

Re: [PHP]Cookies erlaubt oder nicht?
 
Code:
if(!isset($_GET['sec']))
{
   setcookie("cookietest", "blablabla");
   $myFile = __FILE__;
   header( "Location: $myfile?sec=yes");
}
else
{
   if ($_GET['sec']=="yes")
   {

    if(isset($_COOKIE['cookietest']))
    {

       setcookie("cookietest", "", time()-1);

       echo "Akzeptiert.";

    }
    else
    {

       echo "Nicht akzeptiert.";

    }

   }
   else
   {

      die( " WRONG Parameter 'sec' !");
     
   }
}
Und so habe ich es gelöst.

Binärbaum 18. Nov 2005 12:57

Re: [PHP]Cookies erlaubt oder nicht?
 
Im Allgemeinen würde ich von Cookies abraten. Zum einen kann es sein, dass der Benutzer Cookies in seinem Browser deaktiviert hat, also ist man ufgeschmissen, wenn das PHP-Script unbedingt Cookies braucht, damit es ordentlich funktioniert. Zum anderen kann man den Inhalt von Cookies (relativ) leicht manipulieren. Oder kurz gesagt: man kann sich nicht darauf verlassen. ;)
Statt der Cookies sollte man vielleicht Sessions verwenden.

MfG
Binärbaum

faux 18. Nov 2005 13:01

Re: [PHP]Cookies erlaubt oder nicht?
 
Zitat:

Zitat von Binärbaum
Zum einen kann es sein, dass der Benutzer Cookies in seinem Browser deaktiviert hat.

Genau das will er auch überprüfen.

Chewie 18. Nov 2005 13:28

Re: [PHP]Cookies erlaubt oder nicht?
 
Zitat:

Zitat von Binärbaum
Statt der Cookies sollte man vielleicht Sessions verwenden.


Und wie kommen die Session-IDs i.d.R. wieder zurück zum Server? Richtig, per Cookies (*).
Aber diese Session-Cookies sind meist spezielle Cookies: Ihre Lebensdauer endet mit dem Schließen des Browsers. Somit bleibt nix übrig und eine Sicherheitslücke entsteht dadurch auch nicht. Ich denke, diese Art von Cookies verbieten die wenigsten.



(*) Es gibt auch die Möglichkeit, die Session-IDs per GET an die URL zu hängen, das iat aber unkomfortrabel, da der ganze Rattenschwanz an jeden Seitenaufruf angehängt werden müss und es ist ein Sicherheitsrisiko, da bei einem Senden eines Links, der eine solche ID enthält, die ID mitübergeben wird. EIn anderer kann dann u.U. deine Session nutzen.

DGL-luke 18. Nov 2005 13:55

Re: [PHP]Cookies erlaubt oder nicht?
 
Der Rückgabewert von setcookie kann gar nichts darüber aussagen, ob Cookies erlaubt sind, da vom Browser keine Rückmeldung kommt. Setcokie gibt nur true zurück, falls es gelungen ist, den Cookie-header zu senden.

Per PHP (bzw. allgemein per server side scripting) gibt es keine Möglichkeit, das zu überprüfen. :!:
( Es sei denn, man weiss von vorherigen Aufrufen, dass da eigentlich ein Cookie sein müsste. Das kann man dann natürlich überprüfen. Aber nicht in einem einzigen Skriptaufruf!)

Wie ich auch Luckie immer sage: Es gibt keinen Rückkanal vom Browser zum Skript!

sniper_w 18. Nov 2005 14:20

Re: [PHP]Cookies erlaubt oder nicht?
 
Zitat:

Der Rückgabewert von setcookie kann gar nichts darüber aussagen, ob Cookies erlaubt sind, da vom Browser keine Rückmeldung kommt. Setcokie gibt nur true zurück, falls es gelungen ist, den Cookie-header zu senden.
Das war mir schon immer klar.

Zitat:

Das kann man dann natürlich überprüfen. Aber nicht in einem einzigen Skriptaufruf!)
Und WARUM denn nicht ? :gruebel: Ich habe das gerade oben gepostet und es funct. ( mit Opera und IE getestet ).

DGL-luke 18. Nov 2005 14:39

Re: [PHP]Cookies erlaubt oder nicht?
 
Stimmt. Deins ist genau das richtige^^ :)

Hätte ich gemeint, in einem einzigen Skript, hätte ich das auch so geschrieben. aber du machst ja zwei Aufrufe. ;)

sniper_w 18. Nov 2005 14:47

Re: [PHP]Cookies erlaubt oder nicht?
 
âh :wall: wer lesen kann, ist (wahrscheinlich) im Vorteil.... :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz