余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

如何修改wp_safe_redirect()允许的域名列表

xiyangw 2023-09-28 15:28 27 浏览 0 评论

这个问题几乎不会有人回去考虑,毕竟这个函数使用的人可能都比较少,那么这个函数是干什么的?

wp_safe_redirect() 函数介绍

  • 函数用法
  • wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )Performs a safe (local) redirect, using wp_redirect().
  • 功能介绍
  • Checks whether the $location is using an allowed host, if it has an absolute path. A plugin can therefore set or remove allowed host(s) to or from the list.If the host is not allowed, then the redirect defaults to wp-admin on the siteurl instead. This prevents malicious redirects which redirect to another host, but only used in a few places.Note: wp_safe_redirect() does not exit automatically, and should almost always be followed by a call to exit;:wp_safe_redirect( $url ); exit;Exiting can also be selectively manipulated by using wp_safe_redirect() as a conditional
    in conjunction with the ‘wp_redirect’ and ‘wp_redirect_location’ filters:if ( wp_safe_redirect( $url ) ) { exit; }
  • 参数介绍
  • $location(string)
    (Required)
    The path or URL to redirect to.$status(int)
    (Optional)
    HTTP response status code to use. Default '302' (Moved Temporarily).Default value: 302$x_redirect_by(string)
    (Optional)
    The application doing the redirect.Default value: 'WordPress'
  • 返回值
  • (bool) False if the redirect was cancelled, true otherwise.

    通过上面的介绍,我们基本知道了这个函数的作用是进行重定向跳转,不过除了该函数以外,wp_redirect()函数也具备重定向跳转功能,二者之间存在什么差别呢?

    下方是wp_safe_redirect()源码:

    通过源码我们可以看到该函数经过了wp_validate_redirect()函数处理之后最终通过wp_redirect()函数输出,那么关键就是wp_validate_redirect()函数做了什么内容:

    通过该函数的源码我们了解到,该函数经过一个过滤器,而这个而这个过滤器则是本文功能实现的关键:allowed_redirect_hosts

    简单的看看allowed_redirect_hosts的介绍:

    allowed_redirect_hosts 函数介绍

  • 函数用法
  • apply_filters( 'allowed_redirect_hosts', string[] $hosts, string $host )Filters the list of allowed hosts to redirect to.
  • 功能介绍
  • 暂无数据
  • 参数介绍
  • $hosts(string[])
    An array of allowed host names.$host(string)
    The host name of the redirect destination; empty string if not set.
  • 返回值
  • 暂无数据
  • 简单的理解就是提供一个数组,在这些数组里面的域名是可以认定为安全并且可以跳转的,否则直接跳转到/wp-admin界面,这个也是wp_redirect()和wp_safe_redirect()的最大区别之一即后者提供了一个跳转安全跳转地址范围集合,前者则无视

    了解了allowed_redirect_hosts过滤器之后,我们需要做的就是将自己提供的一个安全地址数组和系统自带的数组进行合并后返回:

    function my_allowed_redirect_hosts( $hosts ) {

    $my_hosts = array(

    'blog.example.com',

    'codex.example.com',

    );

    return array_merge( $hosts, $my_hosts );

    };

    add_filter( 'allowed_redirect_hosts', 'my_allowed_redirect_hosts' );

    以上的例子来自官方,已经是最标准的功能代码了,你只需要修改其中的blog.example.com和codex.example.com即可达到目的,之后添加到function.php即可。

    以上就是本文所有内容了,如果感兴趣的可以自行实践一下,复制粘贴并不能帮助到你什么,了解原理,哪怕只能收获1%都是赚到。

    相关推荐

    排序算法--归并排序_归并排序例题讲解

    原理如图所示(先分割再合并):归并排序代码工作原理:1、申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列2、设定两个指针,最初位置分别为两个已经排序序列的起始位置3、比较两个指针所...

    八大排序算法-归并排序_归并排序 算法

    算法思想归并排序分为三个步骤:1.分解:将数列分解成n个子数列。(如果是将数列分成2个子数列则为2路归并)2.治理:对每个子数列进行排序操作3.合并:将两个排好序的子数列进行合并生成新的数列算法实现P...

    高级排序之归并排序、希尔排序_希尔排序和归并排序区别

    前言继上次排序算法简单排序算法之冒泡、插入和选择排序-Java实现版后,本文学习高级排序算法——归并排序、希尔排序,快速排序将在后续更新。本文实现代码调用方法,部分来自前一个文章:简单排序算法之冒泡、...

    Excel办公应用:按合并单元格排序的三大方法

    1.按姓名对科目排序重点:在"C2"中输入公式=IF(A2<>"",1,C1+1),然后下拉填充。2.按姓名添加连续序号(方法一)重点:选择"A2:A11"单元格区域,在编辑栏中输入公...

    快速排序 Vs. 归并排序 Vs. 堆排序——谁才是最强的排序算法

    知乎上有一个问题是这样的:堆排序是渐进最优的比较排序算法,达到了O(nlgn)这一下界,而快排有一定的可能性会产生最坏划分,时间复杂度可能为O(n^2),那为什么快排在实际使用中通常优于堆排序?昨天刚...

    归并排序思路图解 #归并排序_归并排序百度百科

    排序算法1.图解。OK,让它排一下。看好了,要开始排了。能看出来像递归吗?肯定算法难,但是这个次数非常的多,不用管次数。这个是帝规,就是递归。这是并,这是并,这是两个有序数,组合成一个最后的大的有序数...

    排序算法学习——归并排序_归并排序算法稳定吗

    我们先看归并排序的定义归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每...

    动画|经典的归并排序究竟怎么玩儿?

    作者|菠了个菜责编|郭芮由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列——《图解数据结构》,主要使用动画来描述常见的数据...

    Excel中,多列数据统一排名,Rank函数直接搞定

    Rank实现多列联合排序排序,那太简单啦,Excel中,升序降序,一个按键就可以。但,那是针对单列情况,若需要联合多列数据进行排序呢?如下图所示,需要对1、3、5列进行统一排序,咋弄嘞?联合排序案例先...

    【数据结构与算法】归并排序_数据结构中归并排序

    归并排序是建立在归并操作的一种高效的排序方法,该方法采用了分治的思想,比较适用于处理较大规模的数据,但比较耗内存,今天我们聊聊归并排序排序思想一天,小一尘和慧能坐在石头上,眺望着远方师傅,我听山下的柳...

    C++基础算法:归并排序_经典排序算法-----归并排序(c语言实现)

    归并排序(MergeSort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。...

    马士兵说之归并排序_马士兵教育的内推是真的

    大家对于排序应该是挺熟悉的吧,马士兵老师特意为排序出了一波视频,当然文章是转自博客园的,马士兵老师的视频观看请点击下方的了解更多概要本章介绍排序算法中的归并排序。内容包括:1.归并排序介绍2.归并...

    C++快速排序和归并排序_c++快速排序sort

    快速排序每一轮挑选一个基准元素(随机选择,编程时一般选取第一个),并让比它大或小的元素移动到基准元素的两边,把数列拆解成了两个部分。而后对这两部分分别进行快速排序。时间复杂度:O(nlogn),辅助空...

    经典的排序算法——归并排序_归并排序算法步骤

    归并排序(MergeSort)是一种基于分治策略的高效排序算法。它将原始数组不断地分割成两个子数组,直到每个子数组只剩下一个元素为止(即基本有序),然后再通过合并已排序的子数组来最终得到完全有序的大...

    归并排序_归并排序c++实现

    归并排序概念:归并排序中涉及到一个概念就是分而治之,总序列化成小序列,将小序列排序好,利用排序好的小序列,再归并排序成原来要排序的序列。所以排序前先要分:functiondivide(arr){...

    取消回复欢迎 发表评论: