it-swarm.com.de

Welche Schritte sollten unternommen werden, um vom Benutzer eingegebene Inhalte auf einem CMS zu schützen?

Angenommen, Sie erstellen ein kugelsicheres CMS für Ihr Unternehmen. Kosten, Zeit und Technologie spielen keine Rolle. Sie haben Entwickler, die mit dem Wissen und der Erfahrung arbeiten, um herausragenden Code zu entwickeln.

Nun müssen Sie die uralte CMS-Frage beantworten: Welche Schritte müssen Sie unternehmen, um sicherzustellen, dass der vom Benutzer in das CMS eingegebene Code für Ihre Site akzeptabel ist? Ich denke nicht nur daran, einen String technisch zu entziehen, damit er in eine Datenbank aufgenommen werden kann - es gibt Überlegungen zu w3-Standards, zum Filtern nach unangemessenen Inhalten, zur Rechtschreibung und zu Problemen wie Microsoft Word-Code-Scrubbing. Sicher gibt es Bedenken, die ich verpasst habe ...

3
bpeterson76

Ich denke die Frage hier ist:

"Wie bekomme ich von meinen Benutzern genau das, was ich will, indem ich ihnen die Eingabe absurd einfach mache?"

Der einzige Fall, in dem ich sehe, dass Benutzer HTML in irgendeiner Form der Eingabe tatsächlich direkt verwenden müssen, ist, wenn/wenn sie Tabellendaten formatieren. In diesem Fall ist es jedoch viel einfacher, ihnen ein Formular zuzuweisen, mit dem sie dasselbe tun können, oder eines der in verschiedenen Bibliotheken verfügbaren beliebten Raster.

Ich denke, die goldene Regel ist, zumindest für mich, ein Markup-System zu verwenden, das nicht HTML ist, und das Ihre Formular-Handler dann verwenden können, um schönes, standardkonformes und semantisch korrektes HTML zu erstellen.

Scanner von Drittanbietern können (normalerweise) die meisten Probleme mit hochgeladenen Dateien erkennen. Ich persönlich mag ClamAV, das sowohl für * nix als auch für Windows verfügbar ist.

Das löst das Problem, sicherzustellen, dass alles schön angeordnet und korrekt formatiert ist und keine unerwünschten Inhalte an die Besucher ausgegeben werden, oder?

Die andere Sache, die Sie tun müssen, ist, alle Inhalte zu überprüfen, die sie einreichen, ein Mensch muss einen Teil davon haben oder Dinge werden vermisst. Ist das Bild angemessen? Führt dieser Link zu Malware oder etwas anderem, auf das Sie lieber keinen Link setzen möchten? Usw.

Das Bereitstellen eines Markierungsmechanismus hilft, ist jedoch immer nicht effektiv. Wenn Sie beispielsweise auf stackoverflow.com eine Antwort auf eine zwei Jahre alte Frage geben, wird die Frage sofort auf die Startseite weitergeleitet, auf der die Community mit Sicherheit überprüft, was gerade hinzugefügt wurde. Nicht alle Systeme sind auf diese Art von Schutz ausgelegt.

Wenn Sie in Bezug auf von Nutzern bereitgestellte Inhalte eine erhebliche Menge an Volumen haben, ist es wahrscheinlich Ihre Zeit wert, sich mit Auftragnehmern zu befassen, die nur die Beiträge überprüfen, um sicherzustellen, dass unangemessene Medien/Links schnell verworfen werden. Oder Sie können die Hilfe Ihrer Benutzergemeinschaft (falls vorhanden) in Anspruch nehmen, um das Gleiche zu tun, und dafür spezielle Privilegien oder zusätzliche Vergünstigungen zu erhalten, die normale Benutzer nicht genießen.

1
Tim Post

Ich würde darauf antworten, indem ich es eher in "Welche Tools muss ich implementieren" umsetze, da Sie anfangen können, über eine Reihe von Dienstprogrammen, Tools und Plugins nachzudenken, mit denen Sie die Sicherheitsmaßnahmen implementieren können.

Zum Beispiel TinyMCE für komplexe Eingaben, da es eine Funktion zum Einfügen aus Word enthält, die sich ideal zum Beseitigen vieler Probleme mit Word-Zeichen eignet.

Mir ist aufgefallen, dass Sie "Der in das CMS eingegebene Code" sagen. Sprechen wir also eher über den tatsächlichen Code als über den Inhalt? Da würde sich meiner Meinung nach die Landschaft der Anwendung ziemlich verändern.

Ansonsten stimme ich dem Kommentar von jessegavin zu, es könnte sehr viele Antworten auf diese Frage geben. Ich muss zugeben, ich verstehe die Frage in der jetzigen Form nicht ganz. Als Entwickler selbst sind diese Sicherheitsmaßnahmen Dinge, die ich ohnehin beim Erstellen des CMS codieren würde.

Obwohl ich denke, dass viele der Sicherheitsvorkehrungen in der Entwicklungsphase des Anwendungsfalls abgedeckt werden könnten.

0
David Yell

Nun, wenn ich ein CMS bauen würde (und das habe ich auch getan), wäre es mir egal, welche Inhalte darin eingegeben wurden, solange diese Inhalte gespeichert und abgerufen werden können. Es ist nicht die Aufgabe eines Content-Management-Systems, zu überdenken, was akzeptabel ist und was nicht, da es je nach Verwendung unterschiedlich ist.

Alles, was Sie tun müssen, ist sicherzustellen, dass der Inhalt moderiert ist (dh einen Workflow-Genehmigungsprozess durchläuft). Aus diesem Grund haben Sie Inhaltseditoren, deren Aufgabe es ist, eingegebene Inhalte zu überprüfen und dann zu entscheiden, was veröffentlicht werden soll, was abgelehnt werden soll und was aufgeräumt werden muss. Während es relativ einfach ist, WYSIWYG-Inhalte programmgesteuert aufzuräumen, muss ein Mensch wirklich entscheiden, ob Inhalte zur Veröffentlichung geeignet sind.

Lassen Sie niemals zu, dass Benutzer Inhalte direkt auf Ihrer Website eingeben - überprüfen Sie sie immer.

0
Dan Diplo