Feature #7529
closedGuarantee GET/SIP 'action' played only once
0%
Description
SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - protection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action')
- Etliche Seiten werden durch einen Link mit einem 'action' GET Parameter aufgerufen um dann eine spezielle Aktion auszufuehren. Z.B. dem Senden einer Email oder verschieben von Antraegen in einen Pool.
- Ruft man dann auf der gleichen Seite ein Formular auf und schliesst es wieder, wird via Browser History die vorhergehende Seite aufgerufen, mit dem SIP Parameter in dem die Action Anweisung steht. Damit wird dann alles nochmal ausgefuehrt.
Idee: action Elemente werden via Post uebergeben (neuer POST Paramter SIP_POST, der Inhalte enthaelt). Die sind dann nicht in der Browserhistory
Related issues
Updated by Carsten Rose over 5 years ago
- Anstelle von <a href='...'>..</a> gibt es neu zusaetzlich <form action='..'><button submit></form>.
- URL Parameter die mit einem '+' beginnen, werden getrennt als zusaetzliche SIP im FORM ueberheben:
'p:{{pageAlias:T}}&grId=100&+action=sendmail|t:Sende Mail'
Updated by Carsten Rose over 5 years ago
- Target version changed from 18.12.1 to 18.12.3
Updated by Carsten Rose over 5 years ago
- Target version changed from 18.12.3 to 146
Updated by Carsten Rose over 5 years ago
Neue Idee: die SIP Parameter die mit '' beginnen (also nicht '+') koennen nur einmal aus dem SIP Store gelesen werden-. Nach dem ersten Lesen werden sie geloescht (unset). Fuer QFQ 'action' Parameter sollte das reichen. Das muesste einfach zu implementieren sein. Dann gibt es auch keine 'Browser: Reload Form' Fragen.
Weitere Variante: {{<key>:<store>:<sanatize>:<escape>:<default>}} - es gibt einen neuen Store 'wipe sip'. Wird ein Wert daraus gelesen, ist er anschliessend im SIP Store geloescht. Bsp. '{{action:W}}' - weitere Zugriffe via '{{action:S}}' liefern dann ein 'not found'.
Updated by Carsten Rose over 5 years ago
- Has duplicate Feature #6767: Link als Form 'POST' added
Updated by Carsten Rose over 5 years ago
- Subject changed from SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip to SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - rotection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action')
- Fuer SIP Parameter waere es gut, wenn man sie nach dem auslesen loeschen koennte.
- Das koennte auch fuer andere Parameter sinnvoll sein.
- Pro Store muss das unterschiedlich implementiert sein.
- STORE_SIP, STORE_USER muss in der Session loeschen
- Das koennte mit einer speziellen Sanatize Class getriggert werden.
Anwendung:
- Eine Seite wird mit action=sendmail aufgerufen.
- Nach dem senden der Mail wird 'action' geloescht (nicht nur leer, sondern vollstaendig entfernt).
- Sollte die Seite durch Back/Forward erneut aufgerufen werden, oder in einem neuen Tab aufgemacht werden, ist der action Parameter leer.
Updated by Carsten Rose about 5 years ago
- Subject changed from SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - rotection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action') to SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - protection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action')
- Target version changed from 146 to CodingDays2019
Updated by Carsten Rose about 5 years ago
- Target version changed from CodingDays2019 to next6
Updated by Carsten Rose about 5 years ago
- Status changed from New to In Progress
Updated by Carsten Rose about 5 years ago
Summary
- Variante 1: hidden Form parameter.
- Variante 2: Store wipe - Duplikat von SIP - nach dem ersten Aufruf eines Values wird dieser geloescht.
- Variante 3: Spezielle Escape/Action Class, die dafuer sorgt das der Wert aus dem angegebenen Store geloescht wird.
Es wird versucht Variante 3 zu implentieren.
Updated by Carsten Rose about 5 years ago
- Subject changed from SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - protection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action') to Guarantee GET/SIP 'action' played only once
- Description updated (diff)
Updated by Carsten Rose about 5 years ago
- Status changed from In Progress to Closed
Updated by Carsten Rose about 5 years ago
- Target version changed from next6 to 19.6.2