修改WordPress 搜索结果页面url 形式,安全有保障

偶然发现开源中国(OSC)的搜索功能不能在非用户登录情况下使用,据说是被攻击了,无奈之下只得关闭游客搜索功能;据说WordPress 也可以通过向搜索地址传递某些参数达到SQL 注入的目的。结合这两点,我就想着能不能通过《修改WordPress登陆文件名wp-login.php,防密码被暴力破解》一文中替换的思路,运用在WordPress 搜索结果页面url 形式上,结果还被我找到了相关代码。

默认的WordPress 搜索结果页面url 形式

使用过WordPress搜索功能的童鞋都知道,WordPress 的搜索结果页面的url 形式默认如:域名/?s=关键词,例如

http://devework.com/?s=WordPress搜索

这个url 形式在所有的WordPress 站点都是通用的,因此如果一个WordPress 站点没有提搜索框或者只提供谷歌自定义搜索(你懂得,自定义搜索常常会挂掉),那么可以直接手动添加上述参数来调用WordPress 自带的搜索功能。

为了安全,可以自定义(修改)WordPress 搜索结果页面url 形式,比如说:

http://devework.com/s/WordPress搜索

修改方法

只需要将下面代码添加到当前主题的 functions.php 文件即可:

//修改WordPress 搜索结果页面url 形式    devework.com
function redirect_search() {
	if (is_search() && !empty($_GET['s'])) {
		wp_redirect(home_url("/s/").urlencode(get_query_var('s')));
		exit();
	}
}
add_action('template_redirect', 'redirect_search' );

上诉代码来源未知,应该是从老外那里来的,注意的是这段代码要成功生效需要你的主机支持伪静态(rewrite)。

评分:
当前平均分 4.25 (83%) - 8 个投票
云左主机 广告
发表评论