WP是否已经处理了这种情况,脚本将永远不会执行,因为函数the_search_query()
将返回其转义输出。
在实际搜索之前对其进行转义将中断代码中的搜索。如果你在博客上写关于脚本注入的内容,你的访问者应该能够搜索到。
更新这里是我的一个旧插件。它支持在转义代码中搜索,并中断对未转义代码的搜索<
, &
或>
. 不幸的是,当它与Relevansi或search Unleased等搜索插件一起使用时,会产生一些副作用。
<?php # -*- coding: utf-8 -*-
/**
* Plugin Name: T5 Search escaped characters
* Description: Enable to search for escaped <, > and &.
* Plugin URI:
* Version: 2012.08.25
* Author: Thomas Scholz
* Author URI: http://toscho.de
* License: MIT
* License URI: http://www.opensource.org/licenses/mit-license.php
*/
add_filter( \'posts_search\', \'t5_search_escaped_characters\', 10, 2 );
function t5_search_escaped_characters( $search, $obj = NULL )
{
if ( $obj->is_search and empty ( $search ) and is_main_query() )
{
remove_filter( current_filter(), __FUNCTION__ );
return \' AND 1 = 2 \';
}
$s = $obj->query_vars[\'s\'];
// Double-encoding FALSE in case another plugin did that already.
$esc = htmlspecialchars( $s, ENT_NOQUOTES, \'utf-8\', FALSE );
return str_replace( "%$s%", "%$esc%", $search ) . \' \';
}
如果您想尽早接触搜索字符串,这可能是一个开始。