|
|
|
|
|
|
|||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
|
|
LinkBack | Themen-Optionen | Thema bewerten |
|
|
#1 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 05.09.2004
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Hallo,
ich erlaube in meiner Software das Erstellen von eigenen BB-Codes, z.B. könnte ein Nutzer den BB-Code [bgcolor=#ff9900]Oranger Text[/bgcolor] haben wollen. Der Code den der Administrator dann anlegt, sieht in etwa so aus: [bgcolor={option}]{param}[/bgcolor]. Alles soweit kein Problem und auch bereits längere Zeit implementiert. Hier ein Ausschnitt aus dem Parser: PHP-Code:
Mein Vorschlag wäre dieser: Anstatt der Platzhalter {option} und {param} erstelle ich Platzhalter wie {hex:1}, {text:1}, {number:1}, {url:2} und von mir aus auch {[a-z;0-9_]+:5}. Der Teil vor dem Doppelpunkt würde dann dem Typ der Validierung entsprechen und der Teil danach der eindeutigen Zahl des Parameters (damit später exakt bekannt ist, was mit was ersetzt wird). Ob ich nun reguläre Ausdrücke zulasse, ist dabei ein weiterer Diskussionspunkt. Ich sehe dabei nur das Problem, dass ich (ohne reguläre Ausdrücke) kaum oder nur schwer alle möglichen bzw. gewünschten Muster abbilden kann. Außerdem würde sich natürlich die Spezifikation zur Erstellung von solchen BB-Codes ändern, d.h. alle vorher erstellten Codes werden ungültig, was jetzt natürlich das kleinere Elend wäre. Was meint ihr dazu und/oder habt ihr bessere Vorschläge? Würde mich über Antworten freuen. Mit freundlichen Grüßen MaMo |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Moderator und Wett-König
|
Hallo,
an dieser Stelle würde ich aus Sicherheitsgründen nur definierte Codes (z.B. [orange]...[/orange]) zulassen. Das erleichtert dir zum einen die Implementierung, zum anderen ist es der Sicherheit dientlich. Weiterer Vorteil ist, dass die Definition sehr einfach gestaltet werden kann. Die RegExps sind einfacher bzw. kann man sogar ohne RegExps und mit strpos() + substr() arbeiten.
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
#3 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 05.09.2004
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Implementiert wird es auf jeden Fall, vB, phpBB und Co. schaffen das schließlich auch. phpBB macht es auch ähnlich dem Vorschlag oben. Keine weiteren Ideen und Vorschläge vorhanden?
|
|
|
|
|
|
#4 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 05.09.2007
Beiträge: 5.044
![]() |
Soll es auf jeden Fall bei der Signatur
Code:
function customBB ($text) {
Ich denke da insbesondere an callbacks, die für Tags aufgerufen werden, die nicht von Deiner Syntax abgedeckt werden. Du musst Dich ja nicht unbedingt für die "einer in einer Million"-Fälle krumm machen |
|
|
|
|
|
#5 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 05.09.2004
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Hi,
also gegeben ist auf jeden Fall ein String und es muss auch ein String zurückgegeben werden, was dazwischen passiert ist im Grund egal. Wieso fragst Du? An was dachtest Du? MfG MaMo |
|
|
|
|
|
#6 (permalink) |
|
Benutzer
Registriert seit: 20.09.2008
Beiträge: 84
PHP-Kenntnisse: Anfänger ![]() |
Wie wär's denn damit, eine Whitelist anzulegen, in der nur jene Attribute enthalten sind, die Du genehmigen willst? Kenne mich zwar noch nicht so sehr damit aus, beschäftige mich aber gerade intensiv mit dem Thema Whitelists, etc.
( Whitelists und Verifikation ) Gruß l. |
|
|
|
|
|
#8 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 05.09.2004
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Hi,
tut mir leid, dass ich mich so lange nicht gemeldet habe. Hatte leider auf der Arbeit viel zu tun. Nun zurück zu meiner Anfrage und euren Antworten. Vielen Dank erstmal dafür. Callbacks sind natürlich möglich, allerdings sehe ich im Moment keinen Vorteil, da Du auch nicht genau schreibst, was in den Callbacks ablaufen soll. Wie soll ich da dann feststellen, ob die Daten "sicher" sind? Whitelists sind leider zu restriktiv, da man ja auch dort nur wieder nur bestimmte Fälle eingeben kann und nur diese dann möglich sind. Das Problem ist halt, dass es nach Möglichkeit noch flexibel sein soll und ich kann schlecht alle möglichen Einsatzfälle in einer Whitelist ablegen. Ich habe mir nun mal das Vorgehen der anderen Forensysteme angesehen. Viscacha: siehe Themenstart MyBB: Benutzer spezifiziert reguläre Ausdrücke + Ersetzung phpBB 3: Benutzt eine Variante die meinem Alternativvorschlag sehr ähnelt, siehe Themenstart IPB: Gleiche Vorgehensweise wie Viscacha, inklusive der o.g. "Problematik" vBulletin: Gleiche Vorgehensweise wie Viscacha, inklusive der o.g. "Problematik" Nicht unterstützt: DeluxeBB, UseBB, Quicksilver Forums, punBB, IceBB, SMF Ergo scheint es drei Alternativen zu geben: 1. Die simple, bereits implementierte Variante 2. Die Nutzung von Platzhaltern mit bestimmten Filtern, anstatt der ungefilterten Platzhaltern (der o.g. Vorschlag) 3. Eingabe von kompletten regulären Ausdrücken Welche Variante würdet ihr bevorzugen? Einmal aus Sicht des Software-Entwicklers, einmal aus Sicht des Forum-Admins... Danke und Gruß MaMo Geändert von MaMo-Net (12.01.2009 um 22:40 Uhr). |
|
|
|
|
|
#10 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 05.09.2004
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Da ist nur das Problem, dass die Oberfläche zum erstellen an normale Foren-Administratoren gerichtet ist und nicht an Programmierer, dann bräuchte ich die Oberfläche gar nicht. Im Endeffekt wird es wohl eine Mischung aus Variante 2 und 3, aber das muss ich nochmal genauer konzipieren...
|
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| lesen ohne codes | clemo | PHP Tipps 2008 | 4 | 06.12.2008 16:33 |
| BACKLINK CHECK und SICHERHEIT von zentraler CSV-Datei | ff-webdesigner.de | PHP-Fortgeschrittene | 16 | 27.11.2008 20:25 |
| Sessions und die Sicherheit. Verständnisfrage. | litterauspirna | PHP Tipps 2008 | 7 | 30.10.2008 09:39 |
| sicherheit | SteiniKeule | PHP Tipps 2008 | 9 | 20.10.2008 06:48 |
| [Erledigt] Sessions und Sicherheit | Wolla | PHP Tipps 2008 | 16 | 01.08.2008 19:33 |
| Sicherheit in PHP | robydog | PHP Tipps 2008 | 52 | 10.05.2008 13:09 |
| HTML erlauben, php nicht? | BartTheDevil89 | PHP Tipps 2007 | 4 | 22.07.2007 03:42 |
| Codes umwandeln | stani | PHP Tipps 2006 | 1 | 11.11.2006 14:30 |
| Erfahrung mit Sessions ( Sicherheit ) | GELight | PHP Tipps 2006 | 6 | 11.08.2006 17:55 |
| mal eine Kleine frage zu dem ! in PHP Codes | imported_DJ Nuno | PHP Tipps 2005-2 | 2 | 23.10.2005 15:55 |
| Sicherheit.... | renzo | PHP Tipps 2005-2 | 1 | 27.06.2005 15:53 |
| Code's | tomtaz | HTML, Usability und Barrierefreiheit | 3 | 09.06.2005 20:56 |
| Sicherheit von Klartext-Passwörtern | PHP Tipps 2005 | 14 | 30.03.2005 15:22 | |
| Thema Sicherheit? | PHP-Fortgeschrittene | 5 | 05.11.2004 05:43 | |
| Sicherheit bei URL-Übergabe | pcschröda | PHP-Fortgeschrittene | 25 | 28.06.2004 16:44 |