Browse Source

修复check_url_allowed判断不全的问题

Karson 1 year ago
parent
commit
901bea7d59
1 changed files with 1 additions and 1 deletions
  1. 1 1
      application/common.php

+ 1 - 1
application/common.php

@@ -520,7 +520,7 @@ if (!function_exists('check_url_allowed')) {
         }
 
         //如果是站外链接则需要判断HOST是否允许
-        if (preg_match("/((http[s]?:\/\/)+(?>[a-z\-0-9]{2,}\.){1,}[a-z]{2,8})(?:\s|\/)/i", $url)) {
+        if (preg_match("/((http[s]?:\/\/)+((?>[a-z\-0-9]{2,}\.)+[a-z]{2,8}|((?>([0-9]{1,3}\.)){3}[0-9]{1,3}))(:[0-9]{1,5})?)(?:\s|\/)/i", $url)) {
             $chkHost = parse_url(strtolower($url), PHP_URL_HOST);
             if ($chkHost && in_array($chkHost, $allowedHostArr)) {
                 return true;