2

wkhtmltopdfを使用すると、Webkit ブラウザーでブラウザー ビューのスクリーンショットを作成できます。

ログインが必要な Symfony 1.4 アプリケーションがあり、wkhtmltopdf を使用して「このページを印刷する」機能を作成したいと考えています。

これを安全に促進するにはどうすればよいですか。wkhtmltopdf がユーザーのパスワードを使用せずにログインできるようにする、印刷ボタンの各画面に 1 回限りのトークンを作成することを考えています。

これを構造化する方法について何か提案はありますか?

4

3 に答える 3

1

この問題には、組み込みの「ログイン状態を維持する」機能を使用するという結論に達しました。

于 2012-08-17T02:15:17.397 に答える
0

アプローチはすでに決定されていますが、他のユーザーがこの問題を確認するのに役立つ代替オプションをもう 1 つ追加したいと思います。

別の代替ルートは、表示されているページの現在のソースを取得し、次のようなものを使用してそれをプリンターのバックエンドにポストすることです。

$.post("/printer", document.documentElement.outerHTML);

このようにして、簡単な方法で HTML を前処理することもできます。backed は最初に HTML を保存し、次にそれを解析して、たとえば画像を変換したり、印刷時に使用されないページの一部を削除したりすることができます。

于 2012-08-17T06:10:07.137 に答える
0

別の印刷フレームワークを検討していただけますか? jquery プラグイン (例: https://github.com/ianoxley/jqueryprintpage#readme ) はどうですか? そうすれば、セッションの外から制限された領域へのアクセスを許可する必要がなくなります。

それでもwkhtmltopdfを使用したい場合は、url と user_id を受け取り、一意のトークンを作成するアクションを簡単に作成できます。このトークンを DB または Key-Value キャッシュに保存できます (システム アーキテクチャによって異なります)。 . 一意のトークンを事前に作成するつもりはありません。必要に応じて作成する方がよいと思います (ユーザーが印刷を要求している場合)。

セキュリティで保護されたアクションで印刷を有効にするには、いくつかのオプションがあります。

1) カスタム セキュリティ フィルタを作成します。フィルタでは、認証されたリクエストに加えて、URL とユーザーの正しい組み合わせで「トークン」パラメータを含むリクエストを許可する必要があります

2) アクションを unsecured に変更します。セキュリティ フィルタを変更したくない場合は、各アクションを「セキュリティで保護されていない」に変更し、リクエストが認証されているか、適切なトークン パラメータがあるかを検証する関数を作成する必要があります。

トークンを推測するのをさらに難しくするために、一度使用した後に各トークンを削除するのが賢明です。

さらに、使用されていない古いトークンをクリアする定期的なワーカーを作成することもできます。

于 2012-08-16T16:17:06.667 に答える