PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.1.1
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.1.1
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
← All changes | back/Helpers/global/security.php +0 -157 10.2.2 → 11.1.1 View file →
@@ -1,157 +1,0 @@
1 -<?php
2 -
3 -function acym_escape($text, $addSlashes = true)
4 -{
5 - if (is_array($text) || is_object($text)) {
6 - if ($addSlashes) {
7 - $text = str_replace('\\', '\\\\', json_encode($text));
8 - } else {
9 - $text = json_encode($text);
10 - }
11 - }
12 -
13 - if (empty($text)) {
14 - return $text;
15 - }
16 -
17 - return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
18 -}
19 -
20 -function acym_arrayToInteger(&$array)
21 -{
22 - if (is_array($array)) {
23 - $array = @array_map('intval', $array);
24 - } else {
25 - $array = [];
26 - }
27 -}
28 -
29 -function acym_getIP()
30 -{
31 - $map = [
32 - 'HTTP_X_FORWARDED_IP',
33 - 'X_FORWARDED_FOR',
34 - 'HTTP_X_FORWARDED_FOR',
35 - 'HTTP_CLIENT_IP',
36 - 'HTTP_X_FORWARDED',
37 - 'HTTP_FORWARDED_FOR',
38 - 'HTTP_FORWARDED',
39 - 'REMOTE_ADDR',
40 - ];
41 -
42 - $ipAddress = '';
43 - foreach ($map as $oneAttribute) {
44 - if (empty($_SERVER[$oneAttribute]) || strlen($_SERVER[$oneAttribute]) < 7) continue;
45 -
46 - $ipAddress = $_SERVER[$oneAttribute];
47 - break;
48 - }
49 -
50 - if (strstr($ipAddress, ',') !== false) {
51 - $addresses = explode(',', $ipAddress);
52 - $ipAddress = trim(end($addresses));
53 - }
54 -
55 - return strip_tags($ipAddress);
56 -}
57 -
58 -function acym_generateKey($length)
59 -{
60 - $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
61 - $randstring = '';
62 - $max = strlen($characters) - 1;
63 - for ($i = 0 ; $i < $length ; $i++) {
64 - $randstring .= $characters[mt_rand(0, $max)];
65 - }
66 -
67 - return $randstring;
68 -}
69 -
70 -function acym_isRobot(): bool
71 -{
72 - if (empty($_SERVER)) {
73 - return false;
74 - }
75 - if (!empty($_SERVER['HTTP_USER_AGENT']) && strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'spambayes') !== false) {
76 - return true;
77 - }
78 - if (!empty($_SERVER['REMOTE_ADDR']) && version_compare($_SERVER['REMOTE_ADDR'], '64.235.144.0', '>=') && version_compare($_SERVER['REMOTE_ADDR'], '64.235.159.255', '<=')) {
79 - return true;
80 - }
81 -
82 - return false;
83 -}
84 -
85 -function acym_displayErrors()
86 -{
87 - error_reporting(E_ALL);
88 - @ini_set('display_errors', 1);
89 -}
90 -
91 -function acym_checkRobots()
92 -{
93 - if (preg_match('#(libwww-perl|python|googlebot)#i', @$_SERVER['HTTP_USER_AGENT'])) {
94 - die('Not allowed for robots. Please contact us if you are not a robot');
95 - }
96 -}
97 -
98 -function acym_noCache()
99 -{
100 - acym_header('Cache-Control: no-store, no-cache, must-revalidate');
101 - acym_header('Cache-Control: post-check=0, pre-check=0', false);
102 - acym_header('Pragma: no-cache');
103 - acym_header('Expires: Wed, 17 Sep 1975 21:32:10 GMT');
104 -}
105 -
106 -function acym_isAllowed($controller, $task = ''): bool
107 -{
108 - $config = acym_config();
109 - $globalAccess = $config->get('acl_'.$controller, 'all');
110 - if ($globalAccess === 'all') {
111 - return true;
112 - }
113 -
114 - $globalAccess = explode(',', $globalAccess);
115 - $globalAccess[] = ACYM_ADMIN_GROUP;
116 -
117 - $userId = acym_currentUserId();
118 - if (empty($userId)) {
119 - return false;
120 - }
121 -
122 - $userGroups = acym_getGroupsByUser($userId);
123 - if (empty($userGroups)) {
124 - return false;
125 - }
126 -
127 - foreach ($userGroups as $oneGroup) {
128 - if (in_array($oneGroup, $globalAccess)) {
129 - return true;
130 - }
131 - }
132 -
133 - return false;
134 -}
135 -
136 -function acym_raiseError($code, $message)
137 -{
138 - echo '<link type="text/css" rel="stylesheet" href="'.ACYM_CSS.'back_global.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.'back_global.min.css').'">';
139 - echo '<div id="acym_wrapper">';
140 - acym_display('Error '.$code.': '.$message, 'error', false);
141 - echo '</div>';
142 - http_response_code($code);
143 - exit;
144 -}
145 -
146 -function acym_isLicenseValidWeekly(): bool
147 -{
148 - $config = acym_config();
149 - $expirationDate = $config->get('expirationdate', 0);
150 - if (empty($expirationDate) || (time() - 604800) > $config->get('lastlicensecheck', 0)) {
151 - acym_checkVersion();
152 - $config = acym_config(true);
153 - $expirationDate = $config->get('expirationdate', 0);
154 - }
155 -
156 - return $expirationDate >= time();
157 -}