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/Core/wordpress/security.php +0 -272 10.11.1 → 11.1.1 View file →
@@ -1,272 +1,0 @@
1 -<?php
2 -
3 -use AcyMailing\Helpers\UpdatemeHelper;
4 -
5 -function acym_getVar(string $type, string $name, $default = null, string $source = 'REQUEST', int $mask = 0)
6 -{
7 - $source = strtoupper($source);
8 -
9 - switch ($source) {
10 - case 'GET':
11 - $input = &$_GET;
12 - break;
13 - case 'POST':
14 - $input = &$_POST;
15 - break;
16 - case 'FILES':
17 - $input = &$_FILES;
18 - break;
19 - case 'COOKIE':
20 - $input = &$_COOKIE;
21 - break;
22 - case 'ENV':
23 - $input = &$_ENV;
24 - break;
25 - case 'SERVER':
26 - $input = &$_SERVER;
27 - break;
28 - default:
29 - $source = 'REQUEST';
30 - $input = &$_REQUEST;
31 - break;
32 - }
33 -
34 - if (!isset($input[$name])) {
35 - return $default;
36 - }
37 -
38 - $result = $input[$name];
39 - unset($input);
40 - if ($type === 'array') {
41 - $result = (array)$result;
42 - }
43 -
44 - if (in_array($source, ['POST', 'REQUEST', 'GET', 'COOKIE'])) {
45 - $result = acym_stripslashes($result);
46 - }
47 -
48 - return acym_cleanVar($result, $type, $mask);
49 -}
50 -
51 -function acym_stripslashes($element)
52 -{
53 - if (is_array($element)) {
54 - foreach ($element as &$oneCell) {
55 - $oneCell = acym_stripslashes($oneCell);
56 - }
57 - } elseif (is_string($element)) {
58 - $element = stripslashes($element);
59 - }
60 -
61 - return $element;
62 -}
63 -
64 -function acym_cleanVar($var, $type, $mask)
65 -{
66 - if (is_array($var)) {
67 - foreach ($var as $i => $val) {
68 - $var[$i] = acym_cleanVar($val, $type, $mask);
69 - }
70 -
71 - return $var;
72 - }
73 -
74 - switch ($type) {
75 - case 'string':
76 - $var = strval($var);
77 - break;
78 - case 'int':
79 - $var = intval($var);
80 - break;
81 - case 'float':
82 - $var = floatval($var);
83 - break;
84 - case 'bool':
85 - case 'boolean':
86 - $var = boolval($var);
87 - break;
88 - case 'word':
89 - $var = preg_replace('#[^a-zA-Z_]#', '', $var);
90 - break;
91 - case 'cmd':
92 - $var = preg_replace('#[^a-zA-Z0-9_\.-]#', '', $var);
93 - $var = ltrim($var, '.');
94 - break;
95 - default:
96 - break;
97 - }
98 -
99 - if (!is_string($var)) {
100 - return $var;
101 - }
102 -
103 - $var = trim($var);
104 -
105 - if ($mask & ACYM_ALLOWRAW) {
106 - return $var;
107 - }
108 -
109 - if (!preg_match('//u', $var)) {
110 - $var = htmlspecialchars_decode(htmlspecialchars($var, ENT_IGNORE, 'UTF-8'));
111 - }
112 -
113 - if (!($mask & ACYM_ALLOWHTML)) {
114 - $var = preg_replace('#<[a-zA-Z/]+[^>]*>#Uis', '', $var);
115 - }
116 -
117 - return $var;
118 -}
119 -
120 -function acym_setVar(string $name, $value = null, string $hash = 'REQUEST', bool $overwrite = true): void
121 -{
122 - $hash = strtoupper($hash);
123 -
124 - switch ($hash) {
125 - case 'GET':
126 - $input = &$_GET;
127 - break;
128 - case 'POST':
129 - $input = &$_POST;
130 - break;
131 - case 'FILES':
132 - $input = &$_FILES;
133 - break;
134 - case 'COOKIE':
135 - $input = &$_COOKIE;
136 - break;
137 - case 'ENV':
138 - $input = &$_ENV;
139 - break;
140 - case 'SERVER':
141 - $input = &$_SERVER;
142 - break;
143 - default:
144 - $input = &$_REQUEST;
145 - break;
146 - }
147 -
148 - if (!isset($input[$name]) || $overwrite) {
149 - $input[$name] = $value;
150 - }
151 -}
152 -
153 -function acym_isAdmin(): bool
154 -{
155 - $page = acym_getVar('string', 'page', '');
156 -
157 - if (!empty($page)) {
158 - return !in_array($page, [ACYM_COMPONENT.'_front', 'front']);
159 - } else {
160 - return is_admin();
161 - }
162 -}
163 -
164 -function acym_cmsLoaded(): void
165 -{
166 - defined('ABSPATH') || die('Restricted access');
167 -}
168 -
169 -function acym_isDebug(): bool
170 -{
171 - return defined('WP_DEBUG') && WP_DEBUG;
172 -}
173 -
174 -function acym_askLog(bool $current = true, string $message = 'ACYM_NOTALLOWED', string $type = 'error'): void
175 -{
176 - $url = acym_rootURI().'wp-login.php';
177 - if ($current) {
178 - $url .= '&redirect_to='.base64_encode(acym_currentURL());
179 - }
180 -
181 - acym_redirect($url, $message, $type);
182 -}
183 -
184 -function acym_getDefaultConfigValues(): array
185 -{
186 - $allPref = [];
187 -
188 - $allPref['from_name'] = get_option('fromname', '');
189 - $allPref['from_email'] = get_option('admin_email', '');
190 - $allPref['bounce_email'] = $allPref['from_email'];
191 - $allPref['sendmail_path'] = '';
192 - $allPref['smtp_port'] = get_option('mailserver_port', '');
193 - $allPref['smtp_secured'] = $allPref['smtp_port'] == 465 ? 'ssl' : '';
194 - $allPref['smtp_auth'] = 1;
195 - $allPref['smtp_username'] = get_option('mailserver_login', '');
196 - $allPref['smtp_password'] = get_option('mailserver_pass', '');
197 - $allPref['mailer_method'] = empty($allPref['smtp_host']) ? 'phpmail' : 'smtp';
198 - $allPref['smtp_host'] = get_option('mailserver_url', '');
199 - $allPref['cron_savepath'] = ACYM_LOGS_FOLDER.'report{year}_{month}.log';
200 -
201 - return $allPref;
202 -}
203 -
204 -function acym_cmsPermission(): string
205 -{
206 - if (!current_user_can('manage_options')) return '';
207 -
208 - $config = acym_config();
209 - $roles = acym_getGroups();
210 - $options = [];
211 - $selected = explode(',', $config->get('wp_access', 'administrator'));
212 -
213 - foreach ($roles as $name => $oneRole) {
214 - if ($name === 'administrator') continue;
215 - $options[$name] = $oneRole->text;
216 - }
217 -
218 - asort($options);
219 -
220 - $option = '
221 - <div class="cell grid-x">
222 - <label class="cell large-3 medium-5 small-9">'.acym_translation('ACYM_ACCESS').' '.acym_info(['textShownInTooltip' => 'ACYM_ACCESS_DESC']).'</label>
223 - <div class="cell auto">';
224 -
225 - $option .= acym_selectMultiple(
226 - $options,
227 - 'config[wp_access]',
228 - $selected,
229 - ['class' => 'acym__select']
230 - );
231 -
232 - $option .= '</div>
233 - </div>';
234 -
235 - return $option;
236 -}
237 -
238 -function acym_triggerCmsHook(string $action, array $args = [], bool $isAction = true)
239 -{
240 - array_unshift($args, $action);
241 -
242 - return call_user_func_array($isAction ? 'do_action' : 'apply_filters', $args);
243 -}
244 -
245 -function acym_getCmsCaptcha(): array
246 -{
247 - return [];
248 -}
249 -
250 -function acym_loadCaptcha(string $captchaPluginName, string $id): string
251 -{
252 - return '';
253 -}
254 -
255 -function acym_checkCaptcha(string $captchaPluginName, ?string $response = null): bool
256 -{
257 - return true;
258 -}
259 -
260 -function acym_getSiteSalt(): string
261 -{
262 - return wp_salt('auth');
263 -}
264 -
265 -function acym_escapeUrl(string $url): string
266 -{
267 - if (empty($url)) {
268 - return '';
269 - }
270 -
271 - return esc_url($url);
272 -}