ste*_*esu 5 wordpress plugins phpmyadmin http-status-code-404
因此,我一直在尝试对自定义WordPress主题进行一些更改,该主题引入了仪表板的整个大修.我一直在寻找我需要解决的原始主题的小问题(在导入新帖子时没有正确检查重复的帖子,发布的元数据没有正确存储,帖子没有被分类到正确的类别等等)
正如我一直在使用这个,我需要无数次地查看和修改数据库,以查看主题对数据库的作用或修复它搞砸了的东西.不幸的是我无法安装phpMyAdmin所以我一直在进行更改,直接输入SQL并将其插入适当位置的主题中,然后使用脚本die()以便我可以看到我的SQL输出.
突然间,我发现我可以找到一个将phpMyAdmin功能集成到WordPress中的插件.所以我安装了wp-phpMyAdmin.
一切似乎很顺利,直到我试图实际上DO什么.我可以查看表格,查看行,并查看所有内容.但是当我尝试编辑一行或删除一行时,我被重定向到404错误,说我碰巧访问的phpMyAdmin中的任何一部分(例如tbl_row_action.php)都不存在.如果我直接转到这些页面而不提交表单来编辑或删除一行,那么它们工作得很好,我收到一条错误消息,我的SQL查询是空白的.
还有其他人经历过这个吗?我真的无法弄清楚它为什么或在哪里发送404.这绝对是荒谬的.
编辑 - 更多信息:
我已经了解到,当phpMyAdmin 使用参数集调用时,我只会收到404错误sql.phpsql_query
编辑(再次) - 进一步更新:
当sql_query包含有效查询时,我只收到404错误.通过看sql.php(我没有花太多的时间看,你要知道)我注意到,它似乎解析查询,并确定如果你正在SELECT荷兰国际集团,DROP荷兰国际集团,DELETE荷兰国际集团等,这样他们就可以检查您的用户权限.它可能与此解析代码有关.
以下查询没有给我404:
test
SELECT test
SELECT test FROM test
SELECT test FROM post_meta
DELETE
DROP
DROP test
Run Code Online (Sandbox Code Playgroud)
以下给了我一个404:
SELECT * FROM test
SELECT * FROM post_meta
DELETE FROM
DELETE FROM test
DELETE FROM post_meta
DROP TABLE
DROP TABLE test
Run Code Online (Sandbox Code Playgroud)
更多编辑 -
所以在sql.php的最顶层我放置了这行代码:
die("Test");
Run Code Online (Sandbox Code Playgroud)
当我做出上面列出的错误查询时,它不会消失.它直接转到404消息.显然,这与WordPress的重定向脚本有关,而不是与phpMyAdmin有关
最终编辑 -
我已经做了很多研究,并且一直在喋喋不休地说出WordPress.
由于一些新的WordPress安全功能,我非常怀疑我遇到了这个问题.较旧版本的WordPress显然用于允许将SQL输入到URL中,这会带来巨大的安全风险.因此,可以理解他们现在不允许SQL通过URL传递.在模板之前,值is_404()被设置为true.它被中设置WP::parse_request()(这是由所谓的WP::main()这是由所谓的wp()被称为内wp-blog-header.php)
任何时候,有一个可疑的SQL查询ANYWHERE在请求的URI,我给踢了一个404页.我想在尽可能少地修改WordPress核心的同时改变这种行为.我需要一个非常善于使用WordPress的人来帮助我.我假设存在一个涉及$ wp_rewrite变量的答案,该变量包含大量的URL重写规则.
问题最终被发现 -
对于任何有兴趣发现这篇文章或正在关注它或者只是遇到类似问题的人,我终于找到了404错误的来源.它根本不在于WordPress.问题出现在mod_security上,这是一个Apache模块,它可以防止任何看起来可疑的请求(包括请求URI中带有SQL的请求)
始终记得正确设置mod_security设置.
WordPress 不应该干扰 phpMyAdmin,因为该插件将其加载到独立的 iframe 中。
作为该项目的规格之一,他希望在他的服务器上只安装 WordPress...
尽管如此,该插件仍然是phpMyAdmin(尽管“包装”在 WordPress UI 中)。换句话说,您已经安装了它;)
...避免更新和维护其他软件的麻烦...
在谈论网络应用程序时,“软件”可能是一个危险的术语 - 这并不是说根本不使用它,但对于某些人来说,它可能会让人联想到蓝屏和运行时错误;)
换句话说,只需强调 PMA 只是服务器上文件的集合 - 它没有自己的数据库,它实际上是无状态的,并且删除就像RMD /phpmyadmin.
...他希望能够从 WordPress 仪表板进行所有必要的管理更改
尽管我已经提出了这些观点,但如果仪表板中存在数据库管理访问绝对必要,我将编写一个使用phpMiniAdmin 的快速替代方案(这就是我奇怪地偶然发现这个问题的原因!),并且我很乐意分享给您尝试。
| 归档时间: |
|
| 查看次数: |
1435 次 |
| 最近记录: |