0

読み取り専用 (保存やダウンロードなし) の PDF 埋め込みを 1 つのドメインのみに許可する方法またはサービスはありますか? Scribd や Slideshare などのサービスがあることは知っていますが、問題は、それらにはプライベート オプションがあるものの、私が知る限り、埋め込みをホワイトリストに登録することを許可するサービスがないことです (たとえば、特定のドメインでのみ埋め込みを許可する)。Vimeo ではこれを行うことができますこのサービスにお金を払っても構いません。何か案は?

PDFJSも調べたところ、NodeJS実装があるようですので、PDFJSがサーバー側のサーバーからPDFを取得し、元のPDF URLを公開せずにクライアントにストリーミングできるのではないかと考えていました。しかし、PDFJS に関する適切なドキュメントが見つかりませんでした。

どんな助けでも大歓迎です。

4

1 に答える 1

1

これは任意の HTTP サーバーで実現できますが、質問で Node について言及されているため、その技術で問題を解決します。Express Frameworkも想定しています。

まず、サーバー上で PDF を静的ファイルとしてホストするだけです。次に、PDF の要求を検出するミドルウェアを登録します。要求しているホスト名が「承認済み」ドメインのリストと一致しない場合、クライアントにエラーを返します。ドメインが承認されると、PDF が提供されます。これは、ドメイン/IP または Nginx 構成の「許可」ブロックによってアクセスを制限する Apache の .htaccess ファイルと同じです。ミドルウェア機能を簡単に見てみましょう...

var approved = []; // Add your approved domains here.

// Make sure this middleware comes before app.use(express.static)
app.use(function(req, res, next){
    if(req.url == '/path/to/PDF') {
        if(approved.indexOf(req.headers.host) {
            next();
        } else {
            next(new Error('Nu uh uh!')); 
        }
    } else {
        next();
    }
});

このように、埋め込みコードをコピーしても、サーバーからエラーが返されます (おそらく 403 のはずですが、これらは自分で決めることができるセマンティクスです)。

于 2012-11-15T17:21:12.177 に答える