开发者社区 问答 正文

云存储防盗链是否支持特殊字符

目前有refer信息如下
xxx.com/demo/m/activeView.html?id=2

对于这样的refer信息 我设置xxx.com/*是否可行?

展开
收起
jdtest 2016-04-12 16:36:31 2581 分享 版权
阿里云 AI 助理回答

对于您提到的Referer信息 xxx.com/demo/m/activeView.html?id=2,如果您希望设置Referer防盗链规则以匹配该请求,以下是详细的分析和配置建议:


1. Referer匹配规则

根据知识库中的Referer配置规范,OSS支持以下匹配规则: - 通配符星号(*):用于匹配任意长度的字符串。 - 通配符问号(?):用于匹配单个字符。 - 带端口的域名或IP地址:可以精确匹配特定端口的域名或IP。

在您的场景中,xxx.com/* 的配置是否可行,取决于以下几点:


2. QueryString的影响

OSS在解析Referer时,默认会忽略QueryString部分。例如: - 请求URL为 http://xxx.com/demo/m/activeView.html?id=2 - 如果Referer白名单设置为 http://xxx.com/demo/m/activeView.html,则匹配成功。

因此,xxx.com/* 的配置可以匹配到 xxx.com/demo/m/activeView.html 部分,而忽略 ?id=2 的QueryString。


3. 推荐配置方式

为了确保Referer防盗链规则能够正确匹配您的需求,您可以按照以下方式进行配置: - 使用通配符星号(*): - 设置为 http://xxx.com/*https://xxx.com/*,可以匹配所有以 xxx.com/ 开头的请求路径。 - 这种配置适用于您希望允许 xxx.com 下的所有子路径访问资源的场景。 - 精确匹配路径前缀: - 如果仅希望允许特定路径前缀,例如 /demo/m/,可以设置为 http://xxx.com/demo/m/*。 - 这种配置更加严格,仅允许匹配指定路径前缀的请求。


4. 注意事项

  • 协议类型:确保Referer白名单中包含正确的协议(httphttps)。如果请求可能来自两种协议,则需要同时配置。
  • 空Referer处理:如果存在直接通过浏览器地址栏访问的情况(即Referer为空),需要在配置中启用“允许空Referer”选项。
  • 测试验证:配置完成后,建议使用 curl 命令进行测试,验证防盗链规则是否生效。例如:
    curl -e "http://xxx.com/demo/m/activeView.html?id=2" http://example****.oss-cn-hangzhou.aliyuncs.com/demo.txt
    

5. 结论

对于 xxx.com/demo/m/activeView.html?id=2 的Referer信息,设置 xxx.com/* 是可行的,因为OSS会忽略QueryString部分并匹配路径前缀。如果需要更严格的控制,可以使用 xxx.com/demo/m/* 来限制匹配范围。

如有进一步问题,请随时联系!

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: