2016-04-30 12 views
0

Ich hoffe, jemand kann Rat oder Tipps geben, bevor dies geschlossen wird, weil ich gewarnt wurde, dass dies eine subjektive Frage ist.können Sie gehackt werden, indem Sie die HTML-Codes speichern, die von Texteditoren wie tinyMCE, QuillJS usw. erzeugt werden?

Ich habe mein eigenes PHP + SQL-Framework aus Slim und Eloquent und plane, ein Forum darin zu integrieren, und um es benutzerfreundlicher zu machen, plane ich, freie Texteditoren im Forumbook hinzuzufügen.

Anscheinend senden diese Texteditoren die HTML-Codes per POST, und mit diesen plane ich, sie in einer MySQL-Datenbank zu speichern. Und da es eloquent ist, verstehe ich, dass es bereits die vorbereitete Aussage verarbeitet, um eine Injektion zu vermeiden. Aber ich bin nicht sicher genug, ob das sicher genug ist, ich habe phpBB durchgesehen und sie haben bis heute keinen hübschen Texteditor (oder müssen noch für 3.2 entwickelt werden) und ich habe durchsucht, dass sie sich Sorgen um Sicherheit machen, und ich Nervös geworden, seit sie dort Veteran sind.

Können Sie über diese einfachen HTML-Codes injiziert werden? Welche anderen Angriffe können gegen mein System verwendet werden?

Danke!

+1

Die meisten Rich-Text-Editoren sollten dies für Sie erledigen. aber Sie sollten die Dokumentation für den bestimmten, den Sie verwenden möchten, lesen –

+1

@Dagon Umm, nicht wirklich. Selbst wenn sie das getan haben, * müssen * Sie die Eingabe-Server-Seite bereinigen. Das von Benutzern bereitgestellte HTML zu akzeptieren und zu bereinigen ist ein sehr schwieriges Geschäft. Viele Web-Apps tun dies nicht und verwenden stattdessen Abschriften. –

+1

er sagte, dass hes bereits vorbereitete aussagen verwendet .. so ist es nicht an diesem punkt ein problem - naja die art wie ich die frage lese. –

Antwort

1

Solange Sie escape alles vor dem Einfügen in SQL-Abfragen, wird die Datenbank sicher sein ... von der einfachsten Form der SQL-Injektion.

Zum Schutz vor JavaScript-Injection müssen Sie das Markup auf der Serverseite bereinigen, bevor Sie es in die Datenbank einfügen, indem Sie <script> Tags entfernen. Sie können auch iframe, link entfernen und Tags erstellen.

Sie müssen auch die Inhaltsfilterung auf der Client-Seite konfigurieren. Zum Beispiel hat TinyMCE invalid_elements option, wo Sie die zu entfernenden Tags auflisten können.

Je mehr Funktionen ein System unterstützt, desto mehr ist das Risiko offensichtlich. Zum Beispiel kann der Hacker eine Datei mit einem Namen hochladen, der einen Shell-Ausdruck wie $(rm -rf /www/).png enthält. So wird der Server gehackt, wenn jemand auf dem Server versehentlich einen eval auf solch einen Dateinamen ausführt. Ein anderes Beispiel ist das Hochladen eines Skripts, das wie ein Bild aussieht.

Ich denke, es hat keinen Sinn mehr Möglichkeiten aufzulisten, das System zu hacken. Die Antwort auf Ihre Frage lautet: Ja, das System kann mit den beliebten Web-Editoren gehackt werden. Daher würde ich empfehlen, die Anzahl der dem Benutzer zur Verfügung gestellten Funktionen zu minimieren und die Benutzereingabe insbesondere auf der Serverseite gründlich zu bereinigen.

+0

Vielen Dank, das gibt mir Schwung. –