Wenn HTML in Google App Engine mit der Absicht hochgeladen wird, in einem iframe bearbeitet zu werden, was ist der beste Weg, um es zu bereinigen (z. B. Entfernen von Skripten und anderen bösartigen HTML)?Wie helfe ich HTML-Blob-Uploads in Python in Google App Engine?
Ich denke an
reader = blobstore.BlobReader(binfo.key())
value = reader.read()
newHtml = lxml.html.clean.Cleaner().clean_html (value)
#save newHtml as the blob in google cloud store to be served.
Ich frage mich, ob es einen besseren Weg, dies und jede Hilfe zu tun, ist sehr geschätzt.
NB: Es wird auch toll sein, wenn es eine Möglichkeit gibt, Anker zu entfernen oder Anker (oder Quellen) nicht-relative und sichere http, etc .. zu machen (oder einfach komplett zu verbieten).
Vielen Dank. Ich benutze lxml.clean und es entfernt viel davon und scheint ein beliebter Desinfektionsmittel zu sein .. Aber ich werde auch die anderen auschecken, die du erwähnt hast. Übrigens, wenn du 'iframe breakout' sagst, was meinst du? Ich denke auch an 'sandbox'ing the iframe - wird das in solchen Fällen generell empfohlen? – user1055761
Ja, [sandboxed iframes] (https://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/) sollte Ihnen die Möglichkeit geben, die Dinge ein wenig mehr zu sperren. Sie können auch die Einstellung ['X-Frame-Optionen'] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) in Erwägung ziehen, falls diese für Ihre Zwecke geeignet sind -Fall. Hier sind einige weitere Informationen: * [Clickjacking Defense Cheat Sheet] (https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet) * [Aktuelle SO Thread über Frame-Busting] (https: // stackoverflow. com/fragen/958997/frame-buster-buster-buster-code-benötigt) – erichiggins