我可以信任wp_reDirect()中的用户输入吗?

时间:2016-08-02 作者:Magnetic_dud

我正在做一个小插件,可以做到这一点:

$Path=$_SERVER[\'REQUEST_URI\'];
wp_redirect( \'http://old.example.com\'.$Path );
exit;
我认为这是安全的,即使函数中有用户输入(请求uri),无论如何,它应该等同于直接键入old。实例com/恶意url,对吗?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

您永远不能信任用户输入。始终准备要在自己的代码中使用的值。示例:

$path = filter_input( INPUT_SERVER, \'REQUEST_URI\', FILTER_SANITIZE_URL );

if ( $path )
{
    $url         = \'http://old.example.com\' . $path;
    $url_escaped = esc_url( $url );
    $status      = 301;
    $message     = "Moved to <a href=\'$url_escaped\'>$url_escaped</a>.";

    wp_redirect( \'http://old.example.com\'. $path, $status );
    wp_die( $message, \'Moved\', $status );
}

相关推荐