腾讯云服务器优惠活动华纳云香港服务器

WordPress函数esc_url_raw和sanitize_url,清理URL以供数据库查询或重定向或HTTP请求使用

WordPress主题推荐

我们在前端输出URL时,可以使用esc_url函数删除一些无效字符和危险字符,不过在数据库查询、重定向、HTTP请求中就需要使用esc_url_raw函数或sanitize_url函数来清理了。

一、esc_url_raw函数

esc_url_raw( string $url, string[] $protocols = null ): string

清理URL以供数据库或重定向使用。

1、参数

  • $url(string):必填,要清理的URL;
  • $protocols(string[]):选填,一系列可接受的协议,默认返回值 wp_allowed_protocols(),默认值:null。

2、返回值

  • 返回清理后的URL

3、示例

$url = 'http://wordpress.org';
$response = wp_remote_get( esc_url_raw( $url ) ); // no need to escape entities
if ( ! is_wp_error( $response ) ) {
echo wp_remote_retrieve_body( $response );
}

二、sanitize_url函数

sanitize_url( string $url, string[] $protocols = null ): string

清理URL以供数据库或重定向使用。

1、参数

  • $url(string):必填,要清理的URL;
  • $protocols(string[]):选填,一系列可接受的协议,默认返回值 wp_allowed_protocols(),默认值:null。

2、返回值

  • 返回清理后的URL

3、示例

$new_input = sanitize_url( $input, array( 'http', 'https' ) );

特别说明

1、esc_url_raw函数不会替换用于显示的实体,用于前端显示URL不安全,请改用esc_url()函数

2、esc_url_raw函数生成的URL可以安全地用于数据库查询和重定向,不过请不要将此函数用作HTTP请求的唯一清理程序,因为此函数无法针对SSRF等安全攻击进行清理,建议使用sanitize_url函数。

3、esc_url_raw()是(即它只是调用)sanitize_url()的别名,因此,esc_url_raw(‘URL’)等同于sanitize_url(‘URL’)。尽管esc_url_raw()仍然存在(即未弃用),但建议直接调用sanitize_url(),而不是esc_url_raw()包装器。

也就是说,在前端输出URL的,建议使用esc_url()函数;在数据库查询、重定向、HTTP请求使用URL的,建议使用sanitize_url()函数。

本文地址:https://boke112.com/post/6416.html

赞 (4) 打赏
版权声明:本文内容来源于互联网资源,由 boke112百科 整理汇总!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu