2016-04-30 8 views
0

私はこれが主観的な質問であると警告されたので、誰かがアドバイスやヒントを提供することができます。tinyMCE、QuillJSなどのテキストエディタで生成されたHTMLコードを保存して、ハッキングすることはできますか?

SlimとEloquentで独自のPHP + SQLフレームワークを作成し、フォーラムを統合してより使いやすくするため、フォーラムの投稿にフリーテキストエディタを追加する予定です。

明らかに、これらのテキストエディタはPOSTを介してHTMLコードを送信し、これらを使用してMySQLデータベースに保存する予定です。そして、その雄弁なことから、注射を避けるために既に準備された声明を処理していることはかなり理解しています。しかし、私がphpBBをブラウズしていて、今日までテキストエディタを持っていない(またはまだ3.2のために開発されていない)と私は彼らがセキュリティに懸念していると尋ねました。彼らはそこに退役軍人であるので、より神経質になった。

これらの簡単なHTMLコードで注入することはできますか?私のシステムには他にどんな攻撃がありますか?

ありがとうございます!

+1

ほとんどのリッチテキストエディタがこれを担当します。しかしあなたはあなたが使用しようとしている特定のもののドキュメントを読むべきです。 –

+1

@Dagon Umm、そうではありません。たとえそれがあったとしても、入力側のサーバサイドをサニタイズする必要があります。ユーザーが提供するHTMLを受け入れて消毒することは、非常にトリッキーなビジネスです。多くのウェブアプリはそうではなく、代わりにマークダウンのようなものを使います。 –

+1

彼はすでに準備文を使っていると言っています。その時点では問題はありません。 –

答えて

1

escapeあなたがSQLクエリに挿入する前のすべてのものは、SQLインジェクションの最も単純な形式からデータベースが安全になります。

JavaScriptインジェクションから保護するには、<script>タグを削除してデータベースに挿入する前に、サーバーサイドでマークアップをクリーンアップする必要があります。 iframelink、フォームタグを削除することもできます。

また、クライアント側でコンテンツフィルタを設定する必要があります。たとえば、TinyMCEにはinvalid_elements optionがあります。削除するタグを一覧表示できます。

システムがサポートする機能が多くなればなるほど、明らかにリスクは大きくなります。例えば、ハッカーは、$(rm -rf /www/).pngのようなシェル式を含む名前のファイルをアップロードしてもよい。したがって、サーバ上の誰かがこの種のファイル名でevalを誤って実行した場合、サーバはハッキングされます。別の例は、likeとimageのようなスクリプトをアップロードすることです。

私は、システムをハックする可能性のある方法をさらに列挙することは何のポイントもないと思います。あなたの質問に対する答えは:はい、一般的なWebエディタを使ってシステムをハックすることができます。だから私は、ユーザーに公開されている機能の数を最小限に抑え、特にサーバー側でのユーザー入力を完全に消毒することをお勧めします。

+0

これは私に勢いを与える非常にありがとうございます。 –

関連する問題