Apache mod_dbd框架,指令上下文

时间:2018-06-13 16:44:34

标签: apache authentication module authorization

我一直在使用Apache 2.4和mod_dbd框架进行身份验证和授权。我有点沮丧的是mod_dbd和诸如mod_authn_dbd和mod_authz_dbd之类的模块竭尽全力限制可以访问的数据库,主要是通过DBDParams指令只允许整个服务器或单个虚拟主机的单个数据库配置。此外,似乎所有内容都面向静态配置,其中准备好的SQL语句和要保护的目录是固定的,并且在服务器启动时始终是已知的。目前还不清楚为什么大多数DBD指令不能用于" .htaccess"文件,这将在需要的时间和地点为认证和授权增加一些灵活性和动态性。

据我所知,固定配置通过连接池增加了安全性和速度,并且还在Apache操作的prefork和其他MPM模式下高效运行,但是具有许多虚拟主机和动态更改目录和文件的服务器需要灵活性,只需定制安全模块似乎能够提供。

我认为通过利用为虚拟主机的根目录定义的全局DBD身份验证配置,我想出了灵活的虚拟主机身份验证和授权解决方案,而无需在根目录级别进行登录,然后使用&#34 ; htaccess的"具有特定目标目录的用户和组要求的文件。此授权方案有效,但Apache为所有目录的服务器上的每个文件的每次访问准备并执行身份验证SQL查询,即使未请求基本身份验证也是如此。这似乎非常低效。

我也怀疑mod_dbd在prefork操作期间的效率,我正在测试,因为我的数据库查询日志显示我的测试Apache服务器不断重新运行每个分叉子项的所有DBD配置查询,即使对于准备好的标记SQL语句定义在服务器级别,我认为只需要在服务器启动期间执行一次,效率很高。

我想如果我可以回答一个问题,如果管理员不知道哪些目录和位置需要提前保护,那么更改身份验证和授权的首选方法是什么?#34; conf& #34;文件并重新启动Apache。我意识到这可以在应用程序级别而不是Web服务器级别使用URL和会话来完成,但我想在Web服务器级别讨论这个问题。

0 个答案:

没有答案