Apache mod-auth-mysql 与 phpass 加密密码 (Wordpress)

2024-01-10

我需要对 WordPress 主站点之外的某些网页进行密码保护。用户更愿意使用他们在 WordPress 中已有的用户名和密码。

显而易见的解决方案似乎是使用 Apace 模块进行基于 Mysql 的身份验证:mod-auth-mysql。

然而这似乎不可能,因为Wordpress使用Phpass密码加密,而mod-auth-mysql不支持这种加密。

  • http://modauthmysql.sourceforge.net/CONFIGURE http://modauthmysql.sourceforge.net/CONFIGURE
  • http://www.openwall.com/phpass/ http://www.openwall.com/phpass/
  • https://wordpress.stackexchange.com/questions/32004/how-to-validate-wordpress- generated-password-in-db-using-php https://wordpress.stackexchange.com/questions/32004/how-to-validate-wordpress-generated-password-in-db-using-php

有什么办法可以绕过这个限制吗?


您可以使用 mod-auth-mysql 的修补版本来接受 Phpass 加密密码。我将提供有关如何在 ubuntu 和 debian 中执行此操作的说明。

原始补丁文件可以在这里找到 https://pelam.fi/published_sources/mod-auth-mysql-phpass/patch.diff

在 Ubuntu/Debian 中修补 Mod-auth-mysql 以支持 Phpass

这些指令已在 Ubuntu 10.4、12.04 和 14.04.5 中进行了测试,但只需进行最小的更改即可在许多其他基于 Debian 的平台上运行。

创建用于构建修补的 .deb 包的工作目录

mkdir mod-auth-mysql-phpass
cd mod-auth-mysql-phpass

获取构建包和包源所需的依赖项。

sudo apt-get build-dep mod-auth-mysql fakeroot
apt-get source mod-auth-mysql

转到新创建的源文件夹。

cd mod-auth-mysql-4.3.9

使用 Debian 工具创建正确的 Debian 格式补丁 (.dpatch)。首先检查当前的补丁列表。

cat debian/patches/00list

最后一个官方补丁将位于列表的末尾。使用最后一个补丁的名称 作为下面 dpatch-edit-patch 命令的最后一个参数。还为新 phpass 补丁的名称选择一个更大的数字。 就我而言,列表中的最后一个补丁是 017-doc_persistent_conn.dpatch,phpass 补丁的名称是 018-phpass。

dpatch-edit-patch patch 018-phpass 017-doc_persistent_conn.dpatch

dpatch-edit-patch 将在一个特殊文件夹中启动一个新的 shell,该文件夹 它将用于构建自定义 Debian 格式的补丁。

下载原始补丁

wget https://pelam.fi/published_sources/mod-auth-mysql-phpass/patch.diff

应用原始补丁并将其删除。

patch < patch.diff
rm patch.diff

告诉 dpatch-edit-patch 我们的自定义补丁可以生成。

exit

对您新的正确 Debian 格式的补丁感到好奇。你也应该 如果您关心安全性,请查看此非官方补丁所做的更改:)

cat debian/patches/018-phpass.dpatch 

将新补丁添加到构建 .deb 包时要应用的补丁列表中。

echo 018-phpass.dpatch >> debian/patches/00list 

构建补丁包

dpkg-buildpackage -b -uc

现在您可以安装自定义构建的 .deb 软件包(构建的软件包名称可能会根据您的系统而有所不同)。

sudo dpkg --install ../libapache2-mod-auth-mysql_4.3.9-13.1ubuntu3_amd64.deb

配置 Mod-auth-mysql 以使用 Phpass 对 Wordpress 进行身份验证

启用 mod-auth-mysql:

sudo a2enmod auth_mysql

重启apache使新模块生效:

sudo service apache2 restart

可以使用例如查看文档(现在包括 Phpass)。更少的命令

zless /usr/share/doc/libapache2-mod-auth-mysql/DIRECTIVES.gz

以下是仅允许 Wordpress 管理员访问的示例 .htaccess 文件:

AuthType Basic
AuthName "Give Wordpress Administrator username and password"

Auth_MySQL_User YOUR_MYSQL_USER_HERE
Auth_MySQL_Password YOUR_MYSQL_PASSWORD_HERE
Auth_MySQL_Host YOUR_MYSQL_SERVER_HERE

AuthBasicAuthoritative Off
# I don't know a better way to disable the default password file authentication
AuthUserFile /dev/null
Auth_MySQL on
Auth_MySQL_DB YOUR_WORDPRESS_MYSQL_SCHEMA_NAME_HERE
Auth_MySQL_Password_Table wp_users
Auth_MySQL_Username_Field wp_users.user_login
Auth_MySQL_Password_Field wp_users.user_pass
Auth_MySQL_Encryption_Types PHPass PHP_MD5

Auth_MySQL_Group_Table "wp_users, wp_usermeta"
Auth_MySQL_Group_Clause "AND wp_users.ID = wp_usermeta.user_id AND wp_usermeta.meta_key='wp-capabilities' and m.meta_value like '%s:13:\"administrator\"%'"
Auth_MySQL_Persistent On
Auth_MySQL_Authoritative Off
Auth_MySQL_CharacterSet utf8

Require valid-user
Order allow,deny
Allow from all
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache mod-auth-mysql 与 phpass 加密密码 (Wordpress) 的相关文章

  • 更改 WooCommerce 购物车和结帐页面中的“运输”文本:[重复]

    这个问题在这里已经有答案了 我正在将 WooCommerce 与 Storefront 主题一起使用 并且我正在尝试更改这个词 船运 在带有总计的购物篮页面上 我在这里找到了一些建议 https kriesi at support topi
  • 绕过带index.php和不带index.php的url的htpasswd身份验证

    我已经使用 htaccess 文件添加了 htpasswd 保护进行身份验证 现在我想绕过身份验证www website com and www website com index php其中两个 url 都在访问 index php 文件
  • 通过 WooCommerce 中的管理员编辑订单自动添加或更新自定义费用

    我们有一个特殊情况 我们会在收到订单后向客户开具付款发票 而不是让他们在结账时付款 运费是手动计算的并添加到订单中 然后我们在总额中添加 3 的信用卡费用 为了自动化此过程 我创建了一个脚本 一旦通过后端设置了运费 该脚本就会计算 3 的费
  • htaccess 正则表达式目录到变量

    我需要对某些 URL 从目录到变量进行 301 重定向 EXAMPLE http domain com es stackoverflow gt http domain com stackoverflow lang es http domai
  • 严格标准:在 wordpress/wp-includes/class-oembed.php 第 116 行中,仅应通过引用传递变量

    我已经查看了很多类似的问题 但关于我的代码 我没有得到它 错误 Strict Standards Only variables should be passed by reference in wordpress wp includes c
  • 如何获取每个类别(例如 WooCommerce 后端)的产品数量?

    我正在建立一个新网站 我对 Woocommerce 非常满意 我只需要一个快速技巧来获取每个类别中的产品数量 我已经调出了每个产品的类别 但无法弄清楚如何从该类别中获取产品数量 我有一个适合我的产品的列表样式 实际上是活动网站的活动 查看图
  • .htaccess 中的“hash”url 重写

    我想重写http example com articles html first article with http example com articles first article 可以重写吗 我尝试使用以下但对我不起作用 Rewri
  • WP 用户注册 - 也可以立即选择他/她的密码

    这是一个非常简短的前端注册指南 但我在密码方面遇到了一个小问题 我禁用了用户注册时发送的带有密码生成的电子邮件 Don t Send Notification Email To Registered User if function exi
  • 在 WooCommerce 订单和电子邮件中添加并显示自定义购物车项目数据

    我有一个名为彩票的自定义 woocommerce 产品类型 我需要在其上添加一个自定义选择字段 因为它不是可变产品 所以我添加了一个 一切工作正常 我在购物车和结帐中也获得了价值 但我无法在管理订单或订单邮件 客户和管理员 中获得价值 这是
  • WordPress .htaccess www。不强迫

    我正在尝试强迫www 在我网站的所有页面上 我将 WordPress 安装在我的主站点 blog 上的一个文件夹中 在 blog 文件夹中有一个 htaccess 文件 其中包含以下内容
  • 仅当未找到文件时才重定向请求?

    我希望有一种方法可以使用 mod rewrite 和 Apache 来做到这一点 但也许还有另一种方法可以考虑 在我的网站上 我为客户的网站重新设计版本设置了目录 如果网络根目录是 home blah www 客户端目录将是 home bl
  • WordPress Symfony 共存

    我们有一个在 Symfony 上运行的网站 它是由比我更有能力的人开发的 不过 我对 WordPress 非常熟悉 并将在该网站上安装一个博客 目前 该网站的根运行在 Symfony 上 但我希望 WordPress 能够接管 而不必触及
  • htaccess - XAMPP 上的互联网服务器错误 500 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我尝试在 XAMPP 上运行脚本 但收到 互联网服务器错误 500 在实时服务器上运行时效果很好 我认为这是一个 htaccess 错误 htacce
  • 使用 Wordpress 验证 Flask API

    我有两个网站 一个托管大部分内容的 WordPress 博客 我还用 Flask 编写了一个 API 我想在 Wordpress 受密码保护的页面 中使用 API 但我需要在 Flask 响应之前验证请求是否经过身份验证 当我收到对 Fla
  • htaccess重写和auth冲突

    我有 2 个目录 每个目录都有一个 htaccess 文件 html htaccess 该文件进行了重写 将几乎所有内容发送到 url php RewriteCond REQUEST URI exported php gif jpe g p
  • 如何在 .htaccess 文件中创建一个包罗万象的处理程序?

    我想在 htaccess 文件末尾创建一条规则 捕获在此之前未能匹配的所有内容 我怎样才能做到这一点 附 我已经尝试过一切 实际上 我没有 但看起来确实如此 Update 有些人的回复是RewriteRule 或同等内容 这不行 它将匹配一
  • 替代 header("Content-type: text/xml");

    是否存在与以下内容等效的内容 header Content type text xml 我将 Google 地图与 Wordpress 一起使用 但收到 标头已发送 错误 我已经检查了所有文件并删除了所有空白 但错误仍然出现 所以只是想知道
  • 为 foreach() 提供的参数无效..Wordpress

    突然开始出现以下代码的错误 img src title 有时分类 贷款俱乐部 是空的 这可能是问题所在吗 如果是这样 有人可以指出我正确的代码吗 Add if之前的情况foreach
  • Paypal 付款标准默认输入卡详细信息

    我确信这个主题已经在这里了 但我刚刚与 Paypal 通电话 试图查明他们的帐户上是否有一个设置 可以让客户看到 输入卡详细信息区域 而不是自动 默认设置 引导您登录 注册您的 PayPal 帐户 Paypal 表示没有一个设置可以在他们这
  • mod_rewrite GUI?

    任何人都有用于开发 mod rewrite 规则的图形工具 理想情况下 它会显示重写管道 然后当给定 uri 实例时 会显示应用时的转换 让它们正确设置总是很痛苦 因此任何使其变得更容易的方法都会有所帮助 对于 htaccess 阅读 mo

随机推荐