PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.6.3
Independent Analytics – WordPress Analytics Plugin v2.6.3
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Utils / Request.php
independent-analytics / IAWP / Utils Last commit date
BladeOne.php 2 years ago CSV.php 2 years ago Calculations.php 2 years ago Currency.php 2 years ago Device.php 2 years ago Device_Cache.php 2 years ago Dir.php 2 years ago Number_Formatter.php 2 years ago Request.php 2 years ago Salt.php 2 years ago Security.php 2 years ago Server.php 2 years ago Singleton.php 2 years ago String_Util.php 2 years ago URL.php 2 years ago WP_Async_Request.php 2 years ago WordPress_Site_Date_Format_Pattern.php 2 years ago
Request.php
107 lines
1 <?php
2
3 namespace IAWP\Utils;
4
5 /** @internal */
6 class Request
7 {
8 public static function get_post_array(string $field) : ?array
9 {
10 if (!\array_key_exists($field, $_POST) || !\is_array($_POST[$field])) {
11 return null;
12 }
13 return \rest_sanitize_array($_POST[$field]);
14 }
15 public static function get_post_string(string $field) : ?string
16 {
17 if (!\array_key_exists($field, $_POST)) {
18 return null;
19 }
20 return \sanitize_text_field($_POST[$field]);
21 }
22 public static function path_relative_to_site_url($url = null)
23 {
24 if (\is_null($url)) {
25 $url = self::url();
26 }
27 $site_url = \site_url();
28 if ($url == $site_url) {
29 return '/';
30 } elseif (\substr($url, 0, \strlen($site_url)) == $site_url) {
31 return \substr($url, \strlen($site_url));
32 } else {
33 return $url;
34 }
35 }
36 public static function ip()
37 {
38 if (\defined('IAWP_TEST_IP')) {
39 return \IAWP_TEST_IP;
40 }
41 $headers = ['HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR', 'HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_INCAP_CLIENT_IP'];
42 foreach ($headers as $header) {
43 if (isset($_SERVER[$header])) {
44 return \explode(',', $_SERVER[$header])[0];
45 }
46 }
47 return null;
48 }
49 public static function user_agent()
50 {
51 return $_SERVER['HTTP_USER_AGENT'];
52 }
53 public static function is_ip_address_blocked($blocked_ips)
54 {
55 $visitor_ip = self::ip();
56 if (\in_array($visitor_ip, $blocked_ips)) {
57 return \true;
58 }
59 $wildcard_ips = [];
60 foreach ($blocked_ips as $blocked_ip) {
61 if (\IAWP\Utils\String_Util::str_contains($blocked_ip, '*')) {
62 $wildcard_ips[] = $blocked_ip;
63 }
64 }
65 if (\count($wildcard_ips) == 0) {
66 return \false;
67 }
68 $delimeter = \IAWP\Utils\String_Util::str_contains($visitor_ip, '.') ? '.' : ':';
69 $visitor_parts = \explode($delimeter, $visitor_ip);
70 $goal = \count($visitor_parts);
71 foreach ($wildcard_ips as $blocked_ip) {
72 $blocked_parts = \explode($delimeter, $blocked_ip);
73 $matches = 0;
74 for ($i = 0; $i < \count($visitor_parts); $i++) {
75 if (!\array_key_exists($i, $blocked_parts)) {
76 $matches++;
77 } elseif ($visitor_parts[$i] == $blocked_parts[$i] || $blocked_parts[$i] == '*') {
78 $matches++;
79 continue;
80 } else {
81 break;
82 }
83 }
84 if ($matches == $goal) {
85 return \true;
86 }
87 }
88 return \false;
89 }
90 private static function scheme()
91 {
92 if (!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https' || !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' || !empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443') {
93 return 'https';
94 } else {
95 return 'http';
96 }
97 }
98 private static function url()
99 {
100 if (!empty($_SERVER['HTTP_HOST']) && !empty($_SERVER['REQUEST_URI'])) {
101 return \esc_url_raw(self::scheme() . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
102 } else {
103 return null;
104 }
105 }
106 }
107