1


0

どのように私はpythonでウェブブラウザに電子メールからHTMLを安全に表示させることができますか?

表示されているときは、いかなる外部参照もたどるべきではありません。 言い換えれば、表示されるすべてのコンテンツは電子メールから来るべきであり、インターネットからのものではありません。

スパム以外の電子メールは、作家が意図しているのと同じくらいできるだけ近くに表示されるべきです。

私はこれを自分でコーディングしないようにしたいと思います。

最新のブラウザ(Firefox)バージョンを必要とする解決策もまた受け入れ可能です。

3 Answer


1


http://code.google.com/p/html5lib/[html5lib]には、HTML CSSサニタイザーが含まれています。 現在は多すぎますが、ユースケースに合わせて変更するのはそれほど難しくありません。
http://jacobian.org/writing/untrusted-users-and-html/[here]から見つけました。


1


私があなたが「安全」と正確に何を意味するのかについては私はあまり明確ではない。 それはかなり大きな話題です…​ しかし、それは価値があるもののために:

私の意見では、ActiveState Cookbookの strippers parserは最も簡単な解決策の1つです。 クラスをコピー/貼り付けして使い始めることができます。

同様にコメントを見てください。 最後のものは、それがもう動かないと述べていますが、私はこれもどこかのアプリケーションで実行していて、それはうまく機能します。 仕事から、そのボックスにアクセスできないので、週末に調べなければなりません。


0


HTMLparserモジュールを使用するか、BeautifulSoupをインストールし、それらを使用してHTMLを解析してタグを無効にするか削除します。 リンクテキストがあってもそこに残りますが、Webブラウザコンポーネントで表示しているため、強調表示されず、クリックすることもできません。

「」を「」に置き換え、リンクがどこにあったかを示すためにテキスト装飾を変更することにより、何が行われたかを明確にすることができます。 通常とは異なる青の濃淡と、壊れていることを示すために破線の下線が使用されているかもしれません。 そうすれば、実際にはクリックできないものをクリックするように誤解させることなく、意図したとおりに表示することができます。 Javascriptまたはhttp://psacake.com/web/jl.asp[pure CSS]にホバーを追加しても、ツールチップの説明が表示されるそのリンクはセキュリティ上の理由から無効になっています。

ページレイアウトが元のレイアウトに近いことを確認するために、空の長方形で置き換えるなど、「++」タグを使用して同様のことを行うことができます。

私はhttp://www.crummy.com/software/BeautifulSoup/[Beautiful Soup]を使ってこのようなことをしましたが、HTMLparserはPythonに含まれています。 古いPythonディストリビューションでは、現在は推奨されていないhtmllibがありました。 電子メールメッセージのHTMLは完全には正しくないかもしれないので、壊れたHTMLを理解するのが得意であるBeautiful Soup 3.0.7aを使ってください。