Privacy_XH 1.0beta3 steht zum Testen bereit

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
cmb
Posts: 13675
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by cmb » Wed Apr 21, 2021 10:07 pm

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.
Christoph M. Becker – Plugins for CMSimple_XH

knollsen
Posts: 364
Joined: Wed Nov 06, 2013 2:28 pm

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by knollsen » Thu Apr 22, 2021 1:36 pm

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

knollsen
Posts: 364
Joined: Wed Nov 06, 2013 2:28 pm

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by knollsen » Sun May 02, 2021 9:07 am

@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?

cmb
Posts: 13675
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by cmb » Mon May 03, 2021 9:33 pm

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.
Christoph M. Becker – Plugins for CMSimple_XH

knollsen
Posts: 364
Joined: Wed Nov 06, 2013 2:28 pm

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by knollsen » Tue May 04, 2021 12:45 am

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 :(

knollsen
Posts: 364
Joined: Wed Nov 06, 2013 2:28 pm

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by knollsen » Tue May 04, 2021 7:36 am

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 :)

cmb
Posts: 13675
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by cmb » Fri May 07, 2021 10:15 pm

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.
Christoph M. Becker – Plugins for CMSimple_XH

knollsen
Posts: 364
Joined: Wed Nov 06, 2013 2:28 pm

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by knollsen » Sat May 08, 2021 9:32 pm

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. :)

cmb
Posts: 13675
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Privacy_XH 1.0beta3 steht zum Testen bereit

Post by cmb » Sat May 08, 2021 9:56 pm

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).
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply