【问题标题】:How to whitelist subdomains in apache or in symfony2如何在 apache 或 symfony2 中将子域列入白名单
【发布时间】:2016-09-13 03:36:52
【问题描述】:

假设有两个域,一个是 my.example.comxyz.example.comxyz.example.com 无效,访问时应重定向到 404。my.example.com 有效,应重定向到登录页面

现在让我们说它不仅仅是两个子域,它的子域数量不受限制,example.com 上允许使用 * wildcard 字符

我如何将某些子域“列入白名单”以显示登录页面(当然在用户注册子域后将其放入白名单)和其余未列入白名单的子域以显示 404 页面。

这可以通过一些 apache 配置来完成吗?一些apache模块? 或者如果这可以通过 symfony2.8 无需数据库交互来实现,这将对我的 Web 应用程序大有裨益

当我说白名单时,我只是用这个词来表达我的观点,我愿意接受任何一种良好实践的解决方案

【问题讨论】:

  • 如果不在数据库中,您如何/在哪里将域存储到白名单?
  • 我隐约记得 apache 中的 config.xml 文件处理允许的子域列表,所以我的想法是在用户注册子域后立即写入该 config.xml 文件,所以apache 可以根据其有效性重定向用户
  • 从 PHP 修改 Apache 配置绝对不是正确的方法。
  • @dragoste true...legit true...我现在该怎么办?
  • 我建议使用数据库+缓存(memecached 或 redis)并在 PHP 中处理。

标签: php apache .htaccess symfony


【解决方案1】:

您可以使用 apachesymfony

阿帕奇:

两种选择:

1.在创建虚拟主机时将其(在虚拟主机配置文件中)指向 404 页面

2. 在您的 .htaccess 文件中使用 mod_rewrite 规则检查 HOST,如果它与模式匹配,则将其指向 404 文件

Symfony:

为所有请求注册一个监听器并检查请求的主机(在 $_SERVER 或 $request->server 中)以及它是否匹配模式 -> 将其指向 404 文件

【讨论】:

  • 问题是,它没有模式,所有子域都是有效的,因为我使用通配符,需要有一种方法来检查子域是否已注册,所以我们需要在某种列表中查找子域,如果它当前重定向到登录,则重定向到 404 页面
  • 然后使用 Symfony 方式。您可以从 parameter.yml 中读取注册的子域(或者 config.yml 更好)
猜你喜欢
  • 2023-01-11
  • 1970-01-01
  • 1970-01-01
  • 2015-08-23
  • 2015-01-04
  • 2020-04-08
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多