«

PDF文件通过网页链接直接预览和其它页面嵌套预览的访问控制方案

时间:2025-3-14 22:55     作者:Anglei     分类: WEB应用


本人使用的是IIS服务器软件,网站是一个PDF文件分享网站,有个需求就是不能让用于下载PDF文件,只能在线观看,我已经实现了PDF分块读取,今天发现直接访问PDF文件网址也能下载,这让我有点慌了,于是乎,查了一些资料,终于解决了这个问题,直接访问PDF则报403错误,如果本站其他网页嵌套访问的话,则可以正常预览,这正是我想要的,下面分享给大家

在 IIS 中实现 Referer 验证,可以通过 URL 重写 模块 配合条件规则来实现。以下是具体步骤:


步骤 1:打开 IIS, 选择网站,点击URL重写模块,配置 Referer 验证规则

场景需求

配置方法

添加新的 入站规则,配置如下:

设置项
规则名称 BlockDirectPDFAccess
匹配 URL 模式:.*\.pdf$(匹配所有 PDF 文件)
条件 添加以下条件:
条件输入{HTTP_REFERER}
检查是否:与模式不匹配
模式^https?://([a-z0-9-]+\.)*your-website\.com(/.*)?$
操作 类型:自定义响应
状态码:403
子状态码:0
原因:Direct access forbidden

关键配置详解

1. 正则表达式模式

2. 规则逻辑


步骤 2:最终效果,来验证下

直接访问 PDF 链接(无 Referer 或 Referer 不匹配):

  # 示例,打开浏览器,输入
  https://your-website.com/pdfs/document.pdf
  # 返回 403 Forbidden

通过网站页面内嵌访问

  <!-- 网站页面中内嵌 PDF -->
  <iframe src="https://your-website.com/pdfs/document.pdf"></iframe>

增强方案(可选)

IP 白名单限制

仅允许服务器自身 IP 访问 PDF(适用于内嵌场景):

<rule name="AllowLocalEmbed">
  <conditions>
    <add input="{HTTP_REFERER}" pattern="your-website.com" />
    <add input="{REMOTE_ADDR}" pattern="^192\.168\.1\.100$" /> <!-- 服务器 IP -->
  </conditions>
</rule>

以上配置已在实际 IIS 环境中验证通过,可满足基础防护需求。

本文完结,相关标签: IIS pdf 预览 控制

 版权所有:Anglei
 文章标题:PDF文件通过网页链接直接预览和其它页面嵌套预览的访问控制方案
 除非注明,本站文章如未特殊说明均为 MAXADA社区知识库 原创,且版权所有,请勿用于任何商业用途。

推荐阅读:

看完后感想如何?

路过(0)

雷人(0)

握手(1)

鲜花(0)

鸡蛋(0)
分享到: