Page 4 of 6

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Wed Apr 21, 2021 10:07 pm
by cmb
Vorab: ich bin kein Jurist, so dass das folgende eine Laienmeinung ist, die möglicherweise komplett falsch ist.

Soweit ich es verstehe geht es bei der ganzen Cookie-Geschichte im Wesentlichen nur darum zu verhindern, dass User Webseiten-übergreifend getrackt werden. Paradebeispiel für das was verhindert werden soll, ist dass FB und Co. genau wissen, was einen User interessiert. Ein Cookie, das speichert, welches Bild einer Galerie auf einer bestimmten Website zuletzt angesehen wurde, sollte eigentlich völlig unbedenklich sein.

Aber trotzdem ist es natürlich sinnvoll, so weit wie möglich auf Cookies zu verzichten (auch aus technischer Sicht).
knollsen wrote:
Wed Apr 21, 2021 7:26 pm
Viele Firmen lasen sich was entwickeln (z.Bsp. Virtuelle Rundgänge ...) die dann auf anderen Servern gehostet werden und der Kunde bekommt dann nur den Link mittels iFrame. Und schon muss man Datenschutz, Cookies und alles was dazu gehört einpflegen.
Ja, das ist knifflig. Auch wenn alle vor allem über Cookies reden, geht es hier doch schon damit los, dass die 3rd-Party den Seitenzugriff mitbekommt (zumindest mitbekommen kann), und das halte ich bereits für nicht unproblematisch.
knollsen wrote:
Wed Apr 21, 2021 7:26 pm
Also was mach ich!??? Privacy_XH verändern? Switch, Buttons und Seiten einbauen die manche Cookies erlauben manche nicht...
Im besten Fall machst du ein alles oder nichts. Mal ehrlich: wer wuselt sich denn durch lange (und doch unverständliche) Erklärungen, welchen Dingen man nun zustimmt oder nicht. Also, zunächst einmal möglichst wenig Cookies "anbieten", und dann fragen, ob es okay ist alle diese Cookies zu setzen. Und dann dennoch möglichst viel Inhalt anzubieten, auch wenn keine Cookies erwünscht werden.

Wenn du wirklich ein detaillierteres Handling brauchst, dann wirst du wohl "basteln" müssen. Ich habe zumindest zur Zeit keine Pläne, da bei Privacy_XH nachzubessern. Das Plugin kann ohnehin nicht zaubern, und andere Plugins können es (sicher oft unbeabsichtigt) umgehen, und Webmastern ist kaum zuzumuten, das alles genau zu prüfen. Und ich möchte eigentlich auch nicht aktiv mithelfen, das Web kaputt zu machen – ich habe mir gerade mal die Homepage einer großen deutschen Zeitung diesbezüglich angeschaut, und hatte dann ohne zu irgendwelchen Cookies zugestimmt zu haben (ja, Leute, man kann JS auch einfach mal zwischenzeitlich deaktivieren, und das ist, soweit ich weiß, nicht verboten), mehr als 600 Cookies bekommen. Denn sie wissen nicht, was sie tun.

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Thu Apr 22, 2021 1:36 pm
by knollsen
Vielen Dank für Dein Feedback! OK, da weis ich wenigstens Bescheid!
Bin Deiner Meinung, kann manchmal reden was ich will, aber wenn das tief drinnen sitzt und die Firmen noch einen externen Datenschutzbeauftragen haben der alles besser weis, dann habe ich null Chancen.
(Das muss so werden, wie die und die Seite ....) grrrr
Aber egal, da muss ich ran.
Danke Dir

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Sun May 02, 2021 9:07 am
by knollsen
@cmb
Hab mir das mal angeschaut, da ich mir das Plugin mit Auswahl etc. umbaue. und es ist echt kein Akt - haste schön gemacht.
Ne Frage habe ich,

Code: Select all

{{{privacy_guard('func', 1, 2, 3, 4, 5)}}}
ruft in der index.php

Code: Select all

function Privacy_guard($func)
{
    if (!privacy_agreed()) {
        return '';
    }
    $args = func_get_args();
    $func = array_shift($args);
    return call_user_func_array($func, $args);
}
call_user_func_array iss ja geil - nie gebraucht
frag mich aber warum man nicht gleich die Funktion übergibt da ja return sofort den pluginCal auslöst.
z.Bsp: für

Code: Select all

{{{hoverbox("start1");}}}
mit privacy

Code: Select all

{{{privacy_guard(hoverbox("start1"),"D")}}}
Aufruf dann (privacy_guard klein schreiben)

Code: Select all

function privacy_guard($func,$whatCookie='')
{
    if (!privacy_agreed($whatCookie)) {
        return '';
    }
    return $func;
}
denn ich brauch einen 2. separaten Parameter.
Dafür spricht doch nix!?? Und geht einfacher umzusetzen. Oder?

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Mon May 03, 2021 9:33 pm
by cmb
knollsen wrote:
Sun May 02, 2021 9:07 am
call_user_func_array iss ja geil - nie gebraucht
Sei froh! call_user_func() und call_user_func_array() sollten besser nicht verwendet werden, und zumindest ab PHP 5.6.0 ist auch letzteres nicht mehr nötig.
knollsen wrote:
Sun May 02, 2021 9:07 am
frag mich aber warum man nicht gleich die Funktion übergibt da ja return sofort den pluginCal auslöst.
z.Bsp: für

Code: Select all

{{{hoverbox("start1");}}}
mit privacy

Code: Select all

{{{privacy_guard(hoverbox("start1"),"D")}}}
Aufruf dann (privacy_guard klein schreiben)

Code: Select all

function privacy_guard($func,$whatCookie='')
{
    if (!privacy_agreed($whatCookie)) {
        return '';
    }
    return $func;
}
denn ich brauch einen 2. separaten Parameter.
Dafür spricht doch nix!?? Und geht einfacher umzusetzen. Oder?
Wenn du den Funktionsaufruf als Argument übergibst, dann wird die Funktion noch vor privacy_guard() aufgerufen, und tatsächlich der Rückgabewert des Funktionsaufrufs an privacy_guard() übergeben (eager evaluation). Hier braucht man lazy evaluation, und das lässt sich mit dieser Notation (callable als Zeichenkette) für CMSimple_XH ganz gut nutzen.

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Tue May 04, 2021 12:45 am
by knollsen
Danke für die Rückmeldung! Funktioniert nämlich gut - als Alternative hätte ich einen String übergeben und bei return den Pluginaufruf zusammen gebastelt. Ist nur Schade das sowas

Code: Select all

<div>{{{privacy_guard(<iframe src="//www...org/gt.html?...amp;frameborder="0"></iframe>,"C")}}}</div>
nicht geht :(

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Tue May 04, 2021 7:36 am
by knollsen
knollsen wrote:
Tue May 04, 2021 12:45 am
.... Ist nur Schade das sowas

Code: Select all

<div>{{{privacy_guard(<iframe src="//www...org/gt.html?...amp;frameborder="0"></iframe>,"C")}}}</div>
nicht geht :(
Doch geht auch, muss ihn als String übergeben!

Code: Select all

<div>{{{privacy_guard('<iframe src="//www...org/gt.html?...amp;frameborder="0"></iframe>',"C")}}}</div>
Man muss nur auf das Anführungszeichen aufpassen :)

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Fri May 07, 2021 10:15 pm
by cmb
knollsen wrote:
Tue May 04, 2021 12:45 am
Funktioniert nämlich gut - […]
Du meinst so:

Code: Select all

function privacy_guard($func,$whatCookie='')
{
    if (!privacy_agreed($whatCookie)) {
        return '';
    }
    return $func;
}
Mit Pluginaufruf:

Code: Select all

{{{privacy_guard(hoverbox("start1"),"D")}}}
Was wenn:

Code: Select all

function hoverbox($foo) {
    setcookie(…);
}
Dann wird doch der Cookie-Header gesendet, egal was privacy_guard() macht (es sei denn es terminiert das Skript, oder entfernt den Cookie-Header). Um das zu vermeiden, nutzt Privacy_XH eben lazy Evaluation.

Klar, man könnte auch den Pluginaufruf als String übergeben, und durch eval() jagen, aber da bringt der Endanwender leicht das Escaping durcheinander, z.B.

Code: Select all

{{{privacy_guard("hoverbox("start1", "D")"}}}
Ginge (sollte tatsächlich funktionieren) per anonymer Funkion:

Code: Select all

{{{privacy_guard(function () {return hoverbox("start1", "D");})}}}
Aber das finde ich sehr unübersichtlich. Okay mit Arrow-Functions (ab PHP 8.0) ist's wohl lesbar:

Code: Select all

{{{privacy_guard(fn () => hoverbox("start1", "D"))}}}
Aber auch das müsste schon jetzt funktionieren.

Und so sieht es jetzt aus:

Code: Select all

{{{privacy_guard('hoverbox', 'start1', 'D')}}}
Halte ich für recht unproblematisch.

PS: was ich eigentlich sagen wollte: wenn die aufzurufende Funktion Nebenwirkungen hat, dann muss lazy ausgewertet werden.

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Sat May 08, 2021 9:32 pm
by knollsen
Dann wird doch der Cookie-Header gesendet, egal was privacy_guard() macht (es sei denn es terminiert das Skript, oder entfernt den Cookie-Header). Um das zu vermeiden, nutzt Privacy_XH eben lazy Evaluation.
Nein das tut es eben nicht und das ist ja das Gute am Pluginaufruf von CMSimple. So könnte ich das nie in php umsetzen. Für den Endanwender ist das auch leicht verständlich, als die Funktion auseinander zu pflücken.
Wenn privacy_guard nichts zurück wirft wird auch nichts ausgegeben, ist wie ne function ohne Code und wirft die function ein Funktionsaufruf zurück, steht das immer noch in den Plugin-Aufruf der dann erst verarbeitet wird!
Schau hier meine Testseite!
Um zu testen, musst halt immer die Cookies löschen. Bevor Du YouTube aktivierst, kannst ja mal schauen ob du da einen Aufruf findest?

Code: Select all

{{{privacy_guard('hoverbox', 'start1', 'D')}}}
Das sieht zwar gut aus, aber man könnte denken das Variable "D" zu hoverbox gehört - tut es aber net, da dies zu privacy gehört und hoverbox hat mehr als nur ein Parameter.
Hoverbox ist nur ein Beispiel! Auf meiner Testseite habe ichs mit Deinem Calendar-Plugin gemacht. :)

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Sat May 08, 2021 9:56 pm
by cmb
knollsen wrote:
Sat May 08, 2021 9:32 pm
Wenn privacy_guard nichts zurück wirft wird auch nichts ausgegeben, ist wie ne function ohne Code und wirft die function ein Funktionsaufruf zurück, steht das immer noch in den Plugin-Aufruf der dann erst verarbeitet wird!
Schau hier meine Testseite!
Ja, der Rückgabewert wird tatsächlich ignoriert, aber keine Nebenwirkungen, wie z.B. das Setzen eines Cookie-Headers, da das eben nichts mit dem Rückgabewert der Funktion zu tun hat (daher Nebenwirkung).

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Posted: Mon Nov 08, 2021 9:54 am
by frase
Nochmal 'ne Frage zu den vorherigen Posts.

Auf einer Website wird auf der Seite "Kontakt" auch ein Bereich mit einer Google-Map angezeigt.
Ungefähr so:

Code: Select all

<h2>So finden Sie uns:</h2>
<iframe src='https://www.google.com/maps/ ..."></iframe>
Ich möchte (bzw. muss) die Anzeige des gesamten Blocks (h2 + iframe) davon abhängig machen, ob den Cookies zugestimmt wurde.
Wenn ich auf der Seite schreibe:

Code: Select all

<div>{{{privacy_guard('<h2>So finden Sie uns:</h2><iframe src="https://www.google.com/maps/ ..."></iframe>')}}}</div>
... dann zerhaut mit der Editor die ganze Sache.
Wie müsste der Code in privacy_guard() aussehen?