2012-03-06 14 views
0

DOMPDFを使用して、Webアプリケーションのユーザーが完全に制御できるHTMLテンプレートに基づいてPDF請求書を作成できるようにしています。dompdf + file_get_contentsは安全に使用できますか?

私たちはサーバー上でfile_get_contents()を無効にしましたが、必要に応じて有効にすることができます。

私の質問は、DOMPDFによるレンダリング(およびリモートまたはローカルの画像読み込み)を可能にするためにfile_get_contents()を使用することができますか?

セキュリティ上の落とし穴は何ですか?

答えて

1

あなたのシステムでfile_get_contents()を有効にするかどうかを確実に判断するには、ここで十分な情報がありません。そのためには、他のPHPアプリケーションがシステム上にあるか、その関数が他の場所や方法で使用されているかを知る必要があります。

言われているように、あなたはDOMPDF自体がどのようにfile_get_contents()を使用するかを考慮すれば、心配する必要はありません。 DOMPDFはこの関数を使用して、外部参照ファイル(つまりCSSまたは画像)の内容を取り込みます。 DOMPDFはどのようにコンテンツを処理するかを明示的に示しているので、コンテンツがHTMLドキュメントの外部にあるという理由だけでユーザが余計な害を受けることはできません。

悪用の短所file_get_contents()私は突然DOMPDFを安全にする機能が有効になるとは思わない。典型的な懸念は、その機能が(情報漏えい攻撃のような)不自然な活動に対して脆弱になるような方法で使用されることです。これは、DOMPDFが過去に脆弱であったもので、0.5.2として扱われています(あなたが安全に設定されている限り、たとえばDOMPDF_CHROOT/に設定しないなど)。

+0

これを指摘してくれてありがとう。私たちはサーバー上でfile_get_contents()を開くことに懸念を抱いています。これは、ハッカーがあなたが言及したように情報開示攻撃を開始する方法を与えるからです。この関数を開く唯一の理由は、DOMPDFで画像を使用できることです。それ以上の情報は必要ですか? – Jorre

+0

他の場所でこの機能を使用していない場合や、dompdf 0.5.2以上を使用している場合、私はあなたが大丈夫であると信じています。 dompdf.phpを使用していない場合は、以前のバージョンのdompdfの情報開示元であったため、そのファイルを削除してセキュリティを強化することができます。 – BrianS

+0

ブライアンに感謝します。ハッカーは、PHPのシェルを使ってアクセスしようとした後に、私たちのサーバ上でこの機能を試してみることができますか?私たちは他の場所で自分自身でこの関数を使用しているわけではありませんが、一般的にマシン上で開くことを心配しています – Jorre

関連する問題