Vorschau für künftigen Eintrag

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Vorschau für künftigen Eintrag

Post by Timbalu »

Hi

Folgendes kleines Problem kam mir gerade unter. Ein zukünftiger Eintrag ist erstellt. Die Vorschau in der Artikelübersicht öffnet eine neue Seite mit einem Fehler:
Serendipity erstellt die Vorschau des Eintrags ...
Ihr Browser hat keinen gültigen HTTP-Referrer übermittelt. Dies kann entweder daher kommen, dass Ihr Browser/Proxy nicht korrekt konfiguriert ist, oder dass Sie Opfer einer "Cross Site Request Forgery (XSRF)" waren, mit der man Sie zu ungewollten Änderungen zwingen wollte. Die angeforderte Aktion konnte daher nicht durchgeführt werden.
Die Vorschau bei geöffnetem Artikel klappt aber ohne Probleme.

Ian
onli
Regular
Posts: 3044
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Vorschau für künftigen Eintrag

Post by onli »

Möchte den Bug bestätigen, das kommt in meinem Blog mit s9y 1.5.4 auch immer.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Vorschau für künftigen Eintrag

Post by garvinhicking »

Hi!

Hrm, das ist schwieriger zu beheben; das Backend greift für die Ansichtserzeugung auf die Frontendfunktionalität zu, die wiederum stellt per timestamps sicher das ein zukünftiger eintrag niemals eingesehen werden kann. Man müsste das für das Backend aufheben, aber ohne die Sicherheit zu verlieren.

Muss ich mir in Ruhe einmal ansehen...

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Vorschau für künftigen Eintrag

Post by Timbalu »

Warum nicht per GET serendipity['preview']=1 und mit $is_logged_in validieren?

Ian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Vorschau für künftigen Eintrag

Post by garvinhicking »

Hi!

Es gibt ja Blogs die einen Frontend-Login für Kommentatoren benötigen, bei denen würden dann derartige Einträge einsehbar sein...

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Vorschau für künftigen Eintrag

Post by Timbalu »

Hi Garvin

Tatsächlich hattest du ja jetzt massig Zeit zum nachdenken.... :wink:
Sind wir da einer Lösung schon näher, als es auch in der 1.7 Alpha noch nicht klappt?

Ich bin gerade wieder darüber gestolpert, als ich diese Ansichten in Dashboard getestet habe.
Der Fehler entsteht bei Drafts und Futures.
Villeicht könnte man statt auf das Frontend zuzugreifen lieber ein POPup Fenster mit ner einzelnen query Abfrage realisieren?
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Vorschau für künftigen Eintrag

Post by garvinhicking »

Hi!

Ich glaube die Sache ist mir zu komplex und zu wenig wichtig um hier so viel Zeit reinzustecken wie eventuell nötig wäre, und fürchte ich kann da selber nicht viel helfen. IMHO ist es wichtiger, keine "zukünftigen Einträge" an unbefugte Nutzer rauszugeben als die Vorschau direkt per Button auslösen zu können.

Ich denke daher am sinnvollsten wäre es, "zukünftigen Einträgen" keinen Vorschau-Button mitzugeben in der Übersicht, oder?

Der Frontend-Zugriff ist notwendig damit überhaupt der ganze Eintrag mit allen Hooks, Darstellungsoptionen etc. ausgeführt werden kann.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
onli
Regular
Posts: 3044
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Vorschau für künftigen Eintrag

Post by onli »

ich würde es nochmal probieren wollen. Timbalus vorschlag von oben aufgreifend: wenn man prüft, ob der nutzer die rechte zum eintrag-erstellen hat, sollte das dann nicht reichen? Wenn du da nicht direkt ein problem siehst, würde ich das nachher testen.
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Vorschau für künftigen Eintrag

Post by Timbalu »

Ich verstehe den Zusammenhang mit dem Frontend-Login für Kommentatoren noch nicht ... Heißt das diese sehen Backend Funktionalitäten im Frontend, speziell den preview link für drafts und futures?

Ansonsten müsste es doch eine Möglichkeit geben, die function serendipity_checkXSRF() für den gewünschten Fall zu verändern... auf $is_logged_in ist ja schon bei Aufruf gechecked, ggf. müsste man dieses dort nur noch auf ADMINGROUP scharf stellen.
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Vorschau für künftigen Eintrag

Post by Timbalu »

Wahrscheinlich ist das auch einfach nur ein Namenswirrwarr...

Die 'Vorschau' gibt es ja in der Entryübersicht als Backend LINK, der ins frontend verweist und dort existierende Einträge aufruft und anzeigt. Dort werden und dürfen natürlich auch nur Einträge dargestellt werden, die auch dargestellt werden können. So weit, so klar.

Ich würde mich in der Übersicht und auch im Dashboard mit dem admin 'Vorschau' iframe begnügen wollen, dass durch den input type button 'VORSCHAU' im Formfeld eines jeden Entries bereitgestellt wird. Da können natürlicherweise alle gespeicherten Einträge, also auch Drafts und Futures, dargestellt werden, ohne einen XSRF zu provozieren.

Den Link müsste man also iim Falle von Drafts und Futures so umschreiben, dass daraus das Verhalten des Input buttons 'Vorschau' wird, möglichst in einem Popup.

Kommen wir der Sache so vielleicht näher?
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Vorschau für künftigen Eintrag

Post by garvinhicking »

Hi!

Auf Eintrag erstellen Rechte zu prüfen dürfte auf jeden FAll ok sein, das ist eine gute Idee.

Nur "ob eingeloggt" reicht halt nicht, da hier auch Leute dann Artikel sehen könnten die eigentlich garkeine Rechte haben.

Grüße,
GArvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
onli
Regular
Posts: 3044
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Vorschau für künftigen Eintrag

Post by onli »

Hi
Ich glaube, das hängt gar nicht alleine mit dem Datum zusammen, sondern ist ein echter Bug. Und in einem Bereich, an den ich mich nicht einfach so rantraue. Die XSRF-Warnung kommt, weil in Zeile 2035ff von functions_config.inc.php auf Vorhandensein eines form-tokens geprüft wird:

Code: Select all

    $token = '';
    if (!empty($serendipity['POST']['token'])) {
        $token = $serendipity['POST']['token'];
    } elseif (!empty($serendipity['GET']['token'])) {
        $token = $serendipity['GET']['token'];
    }

    if (empty($token)) {
        if ($output) echo serendipity_reportXSRF('token', false);
        return false;
    }
Der token ist natürlich nicht gesetzt, da auf die Vorschau ja nicht über das Formular, sondern über den Vorschau-Link zugegriffen wird. Einfach in den Link als GET-Parameter einbauen?

Schien mir allerdings jetzt beim ersten Testen so, als ob auch unter Umgehung dieses Schutzes die Vorschau nicht geladen wird. Das wiederum kann natürlich am Datum liegen (bzw. an den fehlenden Rechten).
Gruß
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Vorschau für künftigen Eintrag

Post by garvinhicking »

Hi!

Ich kann mich an die Ecke des Codes nicht so gut erinnern, aber die Token-Schützung ist eigentlich nur dafür da, wenn eine Aktion ausgeführt wird die Daten manipuliert. Preview zeigt ja nur an, da braucht man also eigentlich auch kein Token, d.h. wir könnten den Backendworkflow so anpassen dass ein Token hier garnicht erst geprüft werden soll. Das muss aber dann per interner s9y variablenübermittlung laufen, nicht über GET- oder POST-Parameter die dann jemand faken könnte.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Vorschau für künftigen Eintrag

Post by Timbalu »

Oh ich vergaß!
Ich habe das für mich vorerst so hinbekommen:

Code: Select all

<li><a target="_blank" href="{$edraft.link}" onclick="document.forms['serendipityEntry'].elements['serendipity[preview]'].value='true';" title="{$CONST.VIEW} #{$edraft.id}" class="serendipityIconLink"><img src="{serendipity_getFile file="admin/img/zoom.png"}" alt="{$CONST.VIEW}" />{$CONST.VIEW}</a></li>
Es fehlte nur das

Code: Select all

onclick="document.forms['serendipityEntry'].elements['serendipity[preview]'].value='true';"
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Vorschau für künftigen Eintrag

Post by garvinhicking »

Hi!

Äh, wo hast Du das genau gemacht? In der Übersicht gibt's doch garkein serendipity[preview] input element, inwiefern könnte das hier helfen?

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply