Joomla重定向任何以正确的itemId开头的URL


Joomla redirects any URL that starts with a correct itemId

我的Joomla网站在12月被黑客入侵。这使得谷歌将其标记为危险网站。不好。

我清理了它并向谷歌报告我已经这样做了。

黑客/扳手放置了一些像"1_junk_shopping_blah.html"这样的文件,并在编辑我的htaccess文件后将它们索引到谷歌上,使其直接重定向到它们。

修复所有内容后,我注意到 www.example.com/1_junk_shopping_blah.html 重定向到 itemId 1 的文章。Joomla显然会去除前导数字之后的所有内容,并将其用作有效的URL。谷歌认为我仍然在网上收到垃圾邮件,我的网站仍然被标记为恶意。

我试图将类似的网址放在另一个未被黑客入侵的 Joomla 网站上,并且它以相同的方式重定向,因此这似乎不是黑客攻击导致的问题,而更多的是 Joomla 设置方式的问题。

为什么 Joomla 会重定向不正确的网址?我该如何解决这个问题?如有必要,我可以编辑 Joomla 的核心,但我需要一些指示,以免弄乱它而不是修复它。或者我可以在我的.htaccess中放一些东西吗?

谢谢!

我用模板中的一些 PHP 代码"解决"了这个问题,我把 solve 放在引号里,因为它并不完美。它将阻止具有前导数字的有效 URL。我们的一个客户实际上有一个以数字 5 开头的文章标题,所以在他们的情况下,这是行不通的。但是在另一个被标记为恶意的网站上,它运行良好,因为它们的所有标题一开始都是按字母顺序排列的。

在您的模板中,受限访问行下方(所有好的模板都应该有这个).. 以下代码将检测 url 是否以前斜杠开头并后跟一个数字,如果是,则设置 404 标题并重定向到我知道不存在的实际页面以显示 404 页面。

正如您可能想象的那样,如果您有一个以"4"开头的自定义 404,这可能会导致无限循环,所以它又不完美了。我写这篇文章只是为了解决他们的直接问题。

if (preg_match("#^/[0-9]#", $_SERVER['REQUEST_URI'])) {
    header("HTTP/1.0 404 Not Found");
    header("Location: /page-not-found");
}

通过执行以下步骤检查您网站上的恶意软件

  1. 按 sucuri.net 进行现场检查
  2. 而不是尝试在Joomla文件中查找所有未经授权的修改。在(或更好的之前!)从可疑代码中清除网站之后,更改所有密码,无论是用于FTP, MySQL, SMTP身份验证 (Site -> Configuration -> Server -> Mail)和行政部门面板!

用于从网址中移除 ID

  1. https://joomla.stackexchange.com/questions/988/remove-article-id-from-joomla-3-url
  2. 从URL中删除ID(类别和文章)(Joomla 3.3/3.4/3.5)

我建议使用第三方扩展,因为它可以更轻松地防止丑陋的 URL。