Wordpress 存储用户身份验证数据的方式背后有哪些细节?

2024-03-07

首先,让我定义最终目标:

我想要 Wordpress(版本 2.8)来管理网站的身份验证数据/凭据和访问控制。该网站的大部分内容将使用 WordPress,但某些页面将在 Wordpress 环境之外构建。这些页面应该能够使用Wordpress数据库中存储的用户身份验证数据作为参考来做出自己的访问决策。

那么,问题是:

WordPress 究竟如何在其数据库中存储用户身份验证数据?


这个答案的第一部分很简单,在 Wordpress 数据库中,有一个表保存主要用户数据。我相信该表的默认名称是“wp_users”,但这可以根据 WordPress 的设置方式进行更改。该表包含字段“user_login”和“user_pass”,分别保存用户名和密码数据。

“user_login”只是一个纯文本字段,因此很容易访问,但密码经过加盐和散列处理。这导致仍然需要确定的第一件事:Wordpress 用于生成存储在“user_pass”中的字符串的加盐和哈希过程是什么?

另一个尚未解决的部分是 Wordpress 存储其“角色”的位置/方式。在我的安装中,这些角色默认为:管理员、编辑者、作者、贡献者和订阅者。我没有看到这些角色如何与个人用户关联。另外,这些角色可以改变吗?


因此,回顾一下,真正的问题分为三个部分:

1)Wordpress使用什么具体方法将用户的纯文本密码转置为存储在“wp_users”数据库表的“user_pass”列中的字符串?

2) 个人用户和他们各自的Wordpress“角色”之间的链接存储在哪里?

3)可以修改Wordpress中的“角色”来更改其名称和/或添加/删除它们吗?


注意:我意识到另一种方法是让非 WordPress 页面检查 WordPress cookie 以确定访问权限。我将沿着这些思路创建另一个问题,但就这个问题而言,重点是非 WordPress 页面如何利用实际的 Wordpress 数据库来做出访问控制决策。


  1. WordPress 使用便携式 PHP 密码哈希框架 http://www.openwall.com/phpass/。另请参阅这个问题:WordPress 使用什么类型的哈希? https://stackoverflow.com/questions/1045988/what-type-of-hash-does-wordpress-use
  2. 默认情况下,该关联位于wp_usermeta表下的wp_user_level key
  3. 不能没有插件(或没有编辑编辑Wordpress的代码或数据库)

您可能想查看以下代码bbPress http://bbpress.org/因为它将共享 Wordpress 的用户数据库。

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

Wordpress 存储用户身份验证数据的方式背后有哪些细节? 的相关文章

  • C# 中的密码恢复工具不起作用

    嗨 我对此还很陌生 我创建了一个门户 用户可以登录并在其中查看我制作的其他程序 问题是密码恢复似乎不起作用 我没有收到任何错误消息 我只是收到消息 我们无法访问您的信息 请重试 我已经正确设置了 ASP NET 配置 并使用不同的用户和权限
  • MVC Owin Identity 2 CheckPasswordAsync() 将不会执行

    我有两个问题似乎彼此相关 并且 stackoverflow 中的其他重复项都不能回答我的问题 First当 的时候PasswordSignInAsync方法执行它永远不会停止或抛出任何异常它只是继续执行 var result await S
  • 使用自己的 Web 应用程序 API - 使用 OAuth2 进行身份验证过程

    Overview 我目前正在为图像共享应用程序创建 API 该应用程序将在网络上运行 将来在移动设备上运行 我了解 API 构建的逻辑部分 但我仍然在努力满足我自己对身份验证部分的要求 因此 我的 API 必须可供全世界访问 具有访客访问权
  • 通过服务删除 Windows 登录屏幕

    我正在尝试从服务启动的可执行文件中删除 Windows 登录屏幕 winlogon 该服务将随 Windows 自动启动 并等待来自另一台计算机的命令 当它收到命令时 它将启动一个 exe 该 exe 将在特定用户名下启动 cmd exe
  • WordPress Symfony 共存

    我们有一个在 Symfony 上运行的网站 它是由比我更有能力的人开发的 不过 我对 WordPress 非常熟悉 并将在该网站上安装一个博客 目前 该网站的根运行在 Symfony 上 但我希望 WordPress 能够接管 而不必触及
  • 在 Woocommerce 商店页面中显示可变产品的默认变化价格

    I m wondering how I can display the product price on the shop page Right now my variable products are shown with their p
  • 在订单项目视图中显示自定义产品数据

    我在添加到购物车时遇到问题 我有一个具有不同定制条件的产品可供选择 当客户选择特定选项时 它添加到购物车 当客户选择另一种选择并添加时 它显示为购物车中的第二件商品 这没关系 但付款后 订单在第 1 项和第 2 项下均显示自定义选项 但没有
  • 尝试使用 SQL 身份验证登录失败

    我正在尝试使用 sa 用户名及其密码连接到 SQL Server 2008 在 SQL Server 日志文件中我看到以下错误 用户 sa 登录失败 原因 尝试使用 SQL 登录 认证失败 服务器配置为 Windows 身份验证 仅有的 当
  • 在浏览器上验证 JWT

    我一直在读关于JWT https jwt io 我知道它分为三个部分 即header payload and signature 我将哈希算法保留在标头中 将基本信息保留在有效负载中例如 姓名 年龄 职务 有效期等在有效负载中 然后这两个都
  • 如何向 WordPress.com 上托管的 WordPress 博客添加语法突出显示?

    我希望为我的 WordPress 博客提供一个好的语法荧光笔 我有哪些选择 我经常看到它具有颜色鲜艳的语法突出显示和复制到剪贴板的选项 有谁知道这是什么工具吗 在 wordpress com 上 您无法安装插件 因此您必须使用 Wordpr
  • 内部注册 vs. OpenID vs. Google Friend Connect vs. Facebook Connect vs.(等等)

    我正在尝试决定如何允许用户注册我的网站 有 openID clickpass facebook connect googlefriendconnect 等 或者是老式的内部 输入用户名 电子邮件 密码等 简要地看一下如何设置 OpenID
  • 根据 WooCommerce 中的特定付款方式添加费用

    在 WooCommerce 中 我需要为特定支付网关申请自定义手续费 我这里有这段代码 如何向 WooCommerce Checkout 添加手续费 http www endocreative com add handling fee wo
  • 使用单个查询和每用户密码盐进行用户登录

    我决定使用存储在数据库中的每用户盐来实现用户登录 盐作为密码的前缀 该密码使用 SHA 进行哈希处理并存储在数据库中 过去 当我不使用盐时 我会使用典型的方法 使用用户输入的用户名和密码来计算查询返回的行数 然而 对于每个用户的盐 您需要先
  • Symfony 5.4 Security Bundle,注册后无法登录

    我在 5 4 版本上构建空的新项目 我使用这些命令来构建项目 composer create project symfony skeleton 5 4 testapp54 cd testapp54 composer require weba
  • 单击文件下载后,成功后使用 AJAX 重定向到另一个页面

    In my WordPress project my Download button containing a zip file which onClick should be downloaded So the HTML producin
  • WordPress WooCommerce - 使用 WC_Cart 类将可变产品添加到购物车

    我正在尝试将可变产品添加到 WordPress 插件 WooCommerce 的购物车中 到目前为止 我已经能够添加单一 简单的产品 woocommerce gt cart gt add to cart product id quantit
  • Firebase Auth - 最近登录多长时间

    我有一个个人资料选项卡 用户可以在其中按编辑并编辑他们的个人资料 我只想在必要时才需要他们的密码 所以想知道用户登录的时间是多少毫秒 这使得它不是最近登录 其中firebase会抛出错误 auth requires recent login
  • 多文件上传字段的重力形式预览缩略图

    我们使用重力形式将多个图像附加到图库自定义字段并创建新帖子 我们不知道如何在 HTML5 导入字段下显示图像缩略图 而不仅仅是在提交表单之前显示文件名 之前的答案仅涵盖单个文件上传 图片上传重力形式预览 https stackoverflo
  • 我的设置未保存在 WordPress 主题选项页面中

    我正在尝试创建一个基于 WordPress 设置 API 的主题选项页面 当我在浏览器中检查 options php 页面时 例如http mysite com wordpress wp admin options php http mys
  • 如何查找连接到 AF_INET 套接字的客户端的 UID?

    有什么方法或类似的东西ucred for AF UNIX如果是AF INET插座 TCP在我的例子中 找出连接到我的套接字的客户端的UID 还有 proc net tcp但它显示了UID of the creator插座的而不是连接的cli

随机推荐

  • C# 错误 - 并非所有代码路径都返回值

    我知道还有其他类似的帖子 但其他帖子并没有帮助我找到问题的解决方案 我有 1 个表格和 4 个带有方法的类 并且在名为 成本 的类中出现问题 将所有其他 3 个类放入其中 我将在这里发布四个课程 头等舱 Alimenta ao using
  • SQL 查询 - 返回连接表的前两条记录的连接

    我有两张桌子 Patient pk患者ID 名 Surname 患者状态 pkPatientStatusId fk患者 ID 状态码 开始日期 EndDate Patient gt 患者状态是一对多的关系 我想知道是否可以在 SQL 中进行
  • 替换 Swift 2.2 中的 _stdlib_getDemangledTypeName()

    最新版本的 Swift 2 2 删除了 stdlib getDemangledTypeName 我有什么选择来替代它 我目前正在这样的调试消息中使用 let debugStr stdlib getDemangledTypeName self
  • 在 Magento 中操作多个购物车规则

    上次我遇到困难时 我曾询问过如何操纵购物车规则本文 https stackoverflow com questions 18401781 manipulating shopping cart rules 现在 我在购物车规则中添加了更多条件
  • 如何在 postgres 中对结果执行按位运算符?

    如果我有几行 并且我想对结果执行按位或 我该如何在 Postgres 9 x 中执行此操作 例如 我的表包含 Name col1 col2 John 1 2 Walter 1 1 Ron 1 2 我知道想要执行 select 语句 以便从列
  • 如何向非超链接 HTML 标记添加工具提示

    是否有办法向非超链接添加工具提示 IE 我希望当鼠标滑过文本时将鼠标悬停在工具提示上 我希望有一个不基于超链接的工具提示的工作示例 Thanks 如果您所说的工具提示是指title属性 您可以将其应用于许多不同的 HTML 元素 例如spa
  • 任何 Apache HttpClient 4.4 信任自签名证书的示例

    我变了HttpClient版本从旧版本到新版本4 4 并得到了许多已弃用的方法和类 原始代码可以信任自签名证书 我想替换为新方法和类 任何人都可以给我一个如何替换的指南或任何示例代码吗 谢谢 感谢您的回复 我找到了示例代码如下 SSLCon
  • Shinydashboard 标签框高度

    我正在尝试创建一个tabBox横跨整个mainPanel 我能够获得跨越整个屏幕的宽度 但无法获得同样的高度 我不希望使用像素 或其他单位 的绝对值 因为我希望该应用程序能够在不同的屏幕上使用 我玩了这个例子和example http rs
  • 用于图形的 Java 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 用于操作图形 特别是用于社交网络分析 的最佳 Java 库是什么 我见过荣格 但我想知道你是否知道更好的
  • Shadowbox - 打开内联元素

    我正在使用 Shadowbox 和 jQuery 我可以在页面加载时打开它 我想做的是 打开影子框并显示一个表单 用户可以在其中输入他们的电子邮件地址 然后我想通过ajax提交所述表单 我将表单转储到包含在隐藏 div 中的页面上 其 id
  • Apache RewriteRule 将整个 URL 作为参数传递

    目前我的阿帕奇RewriteRule仅将原始 URL 的路径作为查询参数传递给重写的 URL 如何将整个 URL 包括方案和权限等 作为参数发送到重写的 URL I know REQUEST URI 只传递路径 我看不到任何传递整个 URL
  • Asp.Net MVC 4 使用 oAuth2 进行谷歌

    我们正在尝试为现有的 asp net MVC 4 项目启用 使用 google 登录 但现在google已经宣布弃用OpenID 2 0并建议使用OAuth2 我们发现了这个link http www asp net mvc tutoria
  • Aurelia 使可绑定的行为在对象属性上可观察

    在 Aurelia 绑定中 如果在组件中我们对属性使用可观察装饰 并且如果该属性是一个对象 那么我们将订阅该对象的所有属性 例如 import observable from aurelia framework export class C
  • 在 Rust 中,“as”是一个运算符吗?

    Rust 参考目前说了以下内容the as操作员 https doc rust lang org reference html type cast expressions 7 2 12 5 类型转换表达式 类型转换表达式用二元运算符表示as
  • 将开源 CMS 框架集成到现有的 MVC3 / MVC4 站点中 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的任务是寻找一个可以慢慢集成到一组现有网站中的开源 CMS 通过这种方式 页面可以一页一页地传送到
  • 替换 uiimage 中的特定颜色

    假设我只想更改给定 UIImageView 中的特定颜色 每个像素 如何使用以下代码将所有白色像素更改为 darkGray UIImage changeColorForImage UIImage image toColor UIColor
  • 将 pandas df 写入 csv 时出现 Unicode 编码错误

    我清理了 400 个 Excel 文件 并使用 pandas 将它们读入 python 并将所有原始数据附加到一个大 df 中 然后当我尝试将其导出到 csv 时 df to csv path header True index False
  • 在 Python 2.7 中将 print 语句分配给函数中的变量

    我正在尝试将 print 语句分配给函数中的变量 def namer fn ln Smith return value default value r print Your name is fn ln return r 但是当我运行该模块时
  • 对于 common_type,T declval() 而不是 T && declval()

    使用不是更好吗std declval声明形式 template lt class T gt T declval 1 然后是当前的 template lt class T gt T declval 2 for std common type
  • Wordpress 存储用户身份验证数据的方式背后有哪些细节?

    首先 让我定义最终目标 我想要 Wordpress 版本 2 8 来管理网站的身份验证数据 凭据和访问控制 该网站的大部分内容将使用 WordPress 但某些页面将在 Wordpress 环境之外构建 这些页面应该能够使用Wordpres