gpt4 book ai didi

带有 phpMyAdmin 的 WordPress - 404 无处不在

转载 作者:行者123 更新时间:2023-12-02 23:21:15 27 4
gpt4 key购买 nike

因此,我一直在尝试对自定义 WordPress 主题进行一些更改,该主题引入了对仪表板的全面检修。我一直发现我需要修复的原始主题的小问题(导入新帖子时未正确检查重复帖子,未正确存储帖子元数据,未将帖子分类到正确类别等)

当我一直在处理这个问题时,我需要无数次地查看和修改数据库,以查看主题对数据库所做的事情或修复它搞砸的事情。不幸的是,我无法安装 phpMyAdmin,所以我一直在通过直接输入 SQL 并将其插入主题中适当的位置进行更改,然后使用脚本 die()所以我可以看到我的 SQL 的输出。

突然间,我发现我可以找到一个将 phpMyAdmin 功能集成到 WordPress 中的插件。所以我安装了 wp-phpMyAdmin。

一切似乎都很顺利,直到我真正尝试 任何事物。我可以查看表格、查看行并查看所有内容。但是当我尝试编辑一行或删除一行时,我被重定向到 404 错误,说我碰巧访问的 phpMyAdmin 的任何部分(例如,tbl_row_action.php)都不存在。如果我直接进入这些页面而不提交表单来编辑或删除一行,那么它们就可以正常工作,并且我会收到一条错误消息,指出我的 SQL 查询是空白的。

有没有其他人经历过这个?我真的无法弄清楚它发送 404 的确切原因或位置。这绝对是荒谬的。

编辑 - 更多信息:

我了解到我 仅限 phpMyAdmin 调用 sql.php 时出现 404 错误与 sql_query参数集

编辑(再次) - 进一步更新:

当 sql_query 包含有效查询时,我只会收到 404 错误。浏览 sql.php (请注意,我没有花太多时间寻找)我注意到它似乎解析了查询并确定您是否是 SELECT荷兰国际集团,DROP荷兰国际集团,DELETE ing 等,以便他们可以检查您的用户权限。可能和这个解析代码有关。

以下查询没有给我 404:

test
SELECT test
SELECT test FROM test
SELECT test FROM post_meta
DELETE
DROP
DROP test

以下给了我一个404:
SELECT * FROM test
SELECT * FROM post_meta
DELETE FROM
DELETE FROM test
DELETE FROM post_meta
DROP TABLE
DROP TABLE test

更多编辑 -

所以在 sql.php 的最顶部,我放置了这行代码:
die("Test");

当我进行上面列出的错误查询时,它不会死。它直接进入 404 消息。显然这与 WordPress 的重定向脚本有关,与 phpMyAdmin 无关

最终编辑——

我做了更多的研究,并且一直在研究 WordPress。

我高度怀疑我遇到了这个问题是因为一些新的 WordPress 安全功能。旧版本的 WordPress 显然曾经允许将 SQL 输入到 URL 中,这带来了巨大的安全风险。因此,他们现在不允许通过 URL 传递 SQL 是可以理解的。就在模板之前 is_404() 的值被设置为真。它被设置在 WP::parse_request() 内(由 WP::main() 调用,由 wp() 调用,在 wp-blog-header.php 内调用)

任何时候都有可疑的 SQL 查询 任何地方在请求的 URI 中,我被踢到了 404 页面。我想改变这种行为,同时尽可能少地修改 WordPress 核心。我需要一个非常擅长 WordPress 的人来帮助我。我认为存在一个涉及 $wp_rewrite 变量的答案,该变量包含许多 URL 重写规则。

问题终于发现了——

对于任何有兴趣找到这篇文章或正在关注它或只是遇到类似问题的人,我终于找到了 404 错误的来源。它根本不在于 WordPress。问题落到了 mod_security 上,这是一个 Apache 模块,它可以防止任何看起来可疑的请求(包括请求 URI 中带有 SQL 的请求)

永远记得正确设置你的 mod_security 设置。

最佳答案

WordPress 不应该干扰 phpMyAdmin,因为插件会将其加载到隔离的 iframe 中。

As one of his specifications for the project he wants ONLY WordPress installed on his server...



尽管如此,该插件仍然是 phpMyAdmin(尽管“包装”在 WordPress UI 中)。换句话说,您已经安装了它;)

...to avoid the hassle of updating and maintaining other software...



在谈论网络应用程序时,“软件”可能是一个危险的术语——这并不是说根本不使用它,但对于某些人来说,它可能会让人联想到蓝屏和运行时错误;)

换句话说,只需强调 PMA 只是服务器上的文件集合——它没有自己的数据库,它实际上是无状态的,删除就像 RMD /phpmyadmin 一样简单。 .

...he wants to be able to make all necessary administrative changes from the WordPress Dashboard



尽管我已经提出了一些观点,但如果仪表板中有数据库管理访问绝对必要,我将编写一个使用 phpMiniAdmin 的快速替代方案。相反(这就是我奇怪地偶然发现这个问题的方式!),我很乐意分享给你尝试。

关于带有 phpMyAdmin 的 WordPress - 404 无处不在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169170/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com