我正在运行Prestashop网站(从有错误的Joomla移动),并且有很多可疑/不良/恶意软件尝试来检查我的页面安全性 ->找不到页面统计信息页面。有很多Joomla和Wordpress文件/目录尝试。
我有手动重定向器,例如
<?php
$redir_maps = array(
'/administrator' => '/',
'/wp-admin' => '/',
);
if(in_array(@$_SERVER['REQUEST_URI'], array_keys($redir_maps))){
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$redir_maps[@$_SERVER['REQUEST_URI']]);
exit;
}
?>
而且效果很好!但是如何扩展它以捕获所有变量
/index.php?option=com_???某种正则表达式? (Joomla Component)要防止此类链接并将其重定向到/,请执行以下操作:
/index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&method=form&cid=20&6bc427c8a7981f4fe1f5ac65c1246b5f=cf6dd3cf1923c950586d0dd595c8e20b
您没有使用 SEF 链接?这将损害您在搜索引擎中的排名。您当前的重定向脚本不会捕获访问管理页面的所有尝试 - 例如in_array()
不会匹配/administrator/index.php
,因为匹配必须是精确的($_SERVER['REQUEST_URI']
返回路径、查询和片段)。
您可以使用 JURI::getQuery()
获取选项查询,然后进行测试以查看它是否与您网站上的组件匹配以允许它。或者,如果您使用的是 Apache,请在您的.htaccess
中执行正则表达式,它将通过 Web 服务器使用系统上更少的资源,因此恶意方不会耗尽您的资源。
在 # ~~start~~ 之前将此添加到您的 .htaccess 中 不要删除此注释
RewriteEngine on
RewriteRule ^wp-admin/.+$ index.php [L,R=301]
RewriteRule ^administrator/.+$ index.php [L,R=301]
RewriteRule ^.+?.*option=com_.+$ index.php [L,R=301]