无插件实现WordPress 外链安全跳转

无插件实现WordPress所有外链安全跳转

首先在WordPress根目录新建文件 link.php ,内容如下:

 255 ||
strpos($_SERVER['REQUEST_URI'], "eval(") ||
strpos($_SERVER['REQUEST_URI'], "base64")) {
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
//通过 QUERY_STRING 取得完整的传入数据,然后取得 url=之后的所有值,兼容性更好
$t_url = preg_replace('/^url=(.*)$/i','$1',$_SERVER["QUERY_STRING"]);
//数据处理
if(!empty($t_url)) {
//判断取值是否加密
if ($t_url == base64_encode(base64_decode($t_url))) {
$t_url = base64_decode($t_url);
}
//对取值进行网址校验和判断
preg_match('/^(http|https|thunder|qqdl|ed2k|Flashget|qbrowser):\/\//i',$t_url,$matches);
if($matches){
$url=$t_url;
$title='页面加载中,请稍候...';
} else {
preg_match('/\./i',$t_url,$matche);
if($matche){
$url='http://'.$t_url;
$title='页面加载中,请稍候...';
} else {
$url = 'http://'.$_SERVER['HTTP_HOST'];
$title='参数错误,正在返回首页...';
}
}
} else {
$title = '参数缺失,正在返回首页...';
$url = 'http://'.$_SERVER['HTTP_HOST'];
}
?>







<?php echo $title;?>



您将要访问:
访问提示:
您即将离开本站
该网页可能包含未知的安全隐患,请注意您的账号和财产安全。

第二步,修改主题文件下内 functions.php 在合适位置(一般在最底部,如主题升级修改了此文件,需要在升级主题后重新插入)插入如下代码:

add_filter('the_content','the_content_nofollow',999);
function the_content_nofollow($content) {
  preg_match_all('//',$content,$matches);
  if($matches){
    foreach($matches[2] as $val){
      if(strpos($val,'://')!==false && strpos($val,home_url())===false && !preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val)){
        $content=str_replace("href=\"$val\"", "href=\"".home_url()."/link.php?url=$val\"  target=_blank ",$content);
      }
    }
  }
  return $content;
}

你可能感兴趣的:(github,前端)