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