这可以通过任何 HTTP 服务器来实现,但是由于您在问题中提到了 Node,我们将使用该技术解决问题。我也假设 Express 框架。
首先,您只需将 PDF 作为静态文件托管在您的服务器上。然后,您将注册一些检测 PDF 请求的中间件。如果请求的主机名与“已批准”域列表不匹配,则您将错误返回给客户端。如果域获得批准,您将提供 PDF。这与 Apache 中限制域/IP 访问的 .htaccess 文件或 Nginx 配置中的“允许”块没有什么不同。这是中间件功能的快速浏览...
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,但这些是您可以自行决定的语义)