我们都知道,WordPress搜索结果页面的默认链接是这样的:domain/?s=[search query],例如

这样的链接实在是有些混乱,你可以将它修改为:

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

首先,技术宅为什么要进行搜索结果的链接样式更换呢?主要是因为某扫描平台扫描出技术宅存在跨站脚本漏洞!

漏洞详情

漏洞信息

扫描时间:2019-06-01 00:19:59
关联域名/IP:jszbug.com
文件位置:https://jszbug.com/?s=angelina+%3Cimg+src%3D1+onerror%3Dalert%281559320955%29%3E
问题归属:应用服务相关
问题类型:跨站脚本
问题等级:低危

问题详情

XSS(Cross-site scripting,跨站脚本攻击)是一种web安全漏洞攻击,恶意用户利用该漏洞将Javascript代码注入到网页上,其他用户在浏览网页时就会受到攻击,或导致挂马,钓鱼,Cookies等敏感信息被窃取的危害。XSS漏洞产生的主要原因是没有对数据进行正确的转义,而绝大多数转义都是HTML转义。

解决方案

1.假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。 2.不要仅仅验证数据的类型,还要验证其格式、长度、范围和内容。 3.不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。 4.对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。 5.在网站发布之前建议测试所有已知的威胁。

不得不说百度云加速不行那,这么简单的漏洞都没有给我防护好!还不如360网站安全卫士!哈哈!

于是我就有了把搜索链接更换样式的想法,简单粗暴,不需要深层次的技术!

链接更改出现的错误

链接成功更改,漏洞也自然而然的修复了!但是出现了如图所示的错误!

在搜索结果页面!中文搜索乱码!我测试了下COSY最新版,搜索结果链接更换后搜索页面中文正常!于是想到了肯定是代码问题!果然在archive.php中发现了问题!

将源码中第二行的.wp_query->query['s']更改为.get_search_query()即可修复问题!

这里技术宅简单的记录下!主题函数还需要熟悉熟悉!有同样问题的童鞋可以研究下!