Version Description
Download this release
Release Info
Developer | Acunetix |
Plugin | Acunetix Secure WordPress |
Version | 3.0 |
Comparing to | |
See all releases |
Code changes from version 2.0.8 to 3.0
- css/acx-wp-dashboard.css +0 -17
- css/remove_login.css +0 -3
- css/remove_update_plugins.css +0 -3
- css/remove_wp_version.css +0 -3
- css/wsd_sw_styles.css +0 -317
- img/acunetix.png +0 -0
- img/agent-green.png +0 -0
- img/agent-red.png +0 -0
- img/facebook.gif +0 -0
- img/loading45.gif +0 -0
- img/wsd-logo-small.png +0 -0
- img/wsd-logo.png +0 -0
- inc/WPlize.php +0 -161
- inc/json.php +0 -806
- inc/readme_de.txt +0 -88
- inc/readme_en.txt +0 -88
- inc/recaptchalib.php +0 -277
- inc/swUtil.php +0 -169
- inc/swWSD.php +0 -857
- index.php +64 -0
- js/json.js +0 -482
- js/md5.js +0 -195
- js/prepare_new_user_form.js +0 -44
- js/remove_wp_version.js +0 -1
- js/sw_wsd.js +0 -183
- js/sw_wsd_scripts.js +0 -9
- js/verify_form.js +0 -137
- languages/secure_wp-ar.mo +0 -0
- languages/secure_wp-ar.po +0 -225
- languages/secure_wp-be_BY.mo +0 -0
- languages/secure_wp-be_BY.po +0 -237
- languages/secure_wp-da_DK.mo +0 -0
- languages/secure_wp-da_DK.po +0 -425
- languages/secure_wp-de_DE.mo +0 -0
- languages/secure_wp-de_DE.po +0 -533
- languages/secure_wp-es_ES.mo +0 -0
- languages/secure_wp-es_ES.po +0 -241
- languages/secure_wp-fa_IR.mo +0 -0
- languages/secure_wp-fa_IR.po +0 -441
- languages/secure_wp-fr_FR.mo +0 -0
- languages/secure_wp-fr_FR.po +0 -246
- languages/secure_wp-hu_HU.mo +0 -0
- languages/secure_wp-hu_HU.po +0 -237
- languages/secure_wp-it_IT.mo +0 -0
- languages/secure_wp-it_IT.po +0 -476
- languages/secure_wp-ja.mo +0 -0
- languages/secure_wp-ja.po +0 -526
- languages/secure_wp-nl_NL.mo +0 -0
- languages/secure_wp-nl_NL.po +0 -246
- languages/secure_wp-pl_PL.mo +0 -0
- languages/secure_wp-pl_PL.po +0 -530
- languages/secure_wp-ro_RO.mo +0 -0
- languages/secure_wp-ro_RO.po +0 -532
- languages/secure_wp-ru_RU.mo +0 -0
- languages/secure_wp-ru_RU.po +0 -237
- languages/secure_wp-tr_TR.mo +0 -0
- languages/secure_wp-tr_TR.po +0 -530
- languages/secure_wp-uk.mo +0 -0
- languages/secure_wp-uk.po +0 -225
- languages/secure_wp-zh_CN.mo +0 -0
- languages/secure_wp-zh_CN.po +0 -236
- languages/secure_wp.pot +0 -533
- license.txt +0 -674
- readme.txt +146 -36
- res/backups/index.php +1 -0
- res/css/acx-styles-extra.css +1 -0
- res/css/blog.css +66 -0
- res/css/index.php +1 -0
- res/css/styles.alerts.css +54 -0
- res/css/styles.base.css +31 -0
- res/css/styles.general.css +196 -0
- res/css/styles.status.css +37 -0
- res/images/ajax-loader.gif +0 -0
- res/images/alert-info-critical.png +0 -0
- res/images/alert-info-icon.png +0 -0
- res/images/alerts-page-ico.png +0 -0
- res/images/arrow-black-icon.png +0 -0
- res/images/blog/featured-slider-bg.jpg +0 -0
- res/images/blog/ico-facebook.png +0 -0
- res/images/blog/ico-twitter.png +0 -0
- res/images/blog/index.php +1 -0
- res/images/blog/logo.png +0 -0
- res/images/checkbox.png +0 -0
- {img → res/images}/close-button.png +0 -0
- res/images/green-check-icon.png +0 -0
- res/images/icon-info.png +0 -0
- res/images/index.php +1 -0
- res/images/indicator-blue.png +0 -0
- res/images/indicator-green.png +0 -0
- res/images/indicator-red.png +0 -0
- res/images/indicator-yellow.png +0 -0
- img/wsd-logo-small-list.png → res/images/logo-small.png +0 -0
- res/images/logo.png +0 -0
- {img → res/images}/rss.png +0 -0
- res/images/tooltips/index.php +1 -0
- res/images/tooltips/tt_bottom.gif +0 -0
- res/images/tooltips/tt_top.gif +0 -0
- res/inc/SwpaCheck.php +286 -0
- res/inc/SwpaInfo.php +317 -0
- res/inc/SwpaLiveTraffic.php +222 -0
- res/inc/SwpaPlugin.php +382 -0
- res/inc/SwpaScheduler.php +115 -0
- res/inc/SwpaSecurity.php +726 -0
- res/inc/SwpaUtil.php +577 -0
- res/inc/SwpaWatch.php +67 -0
- res/inc/alerts.php +64 -0
- res/inc/index.php +1 -0
- res/inc/swpa-functions.php +48 -0
- res/js/index.php +1 -0
- res/js/wsd-util.js +25 -0
- res/js/wsdplugin_glossary_tooltip.js +78 -0
- res/languages/index.php +1 -0
- res/pages/about.php +57 -0
- res/pages/blog.php +113 -0
- res/pages/dashboard.php +134 -0
- res/pages/database.php +61 -0
- res/pages/index.php +1 -0
- res/pages/live_traffic.php +271 -0
- res/pages/scanner.php +39 -0
- res/pages/settings.php +168 -0
- res/pages/tpl/box-available-backups.php +26 -0
- res/pages/tpl/box-banners.php +8 -0
- res/pages/tpl/box-database-backup.php +57 -0
- res/pages/tpl/box-database-change-prefix.php +244 -0
- res/pages/tpl/box-scan-results-file.php +108 -0
- res/pages/tpl/box-scan-results-wp.php +13 -0
- res/pages/tpl/box-server-results.php +3 -0
- res/pages/tpl/index.php +1 -0
- screenshot-1.jpg +0 -0
- screenshot-1.png +0 -0
- screenshot-2.jpg +0 -0
- screenshot-3.jpg +0 -0
- screenshot-4.jpg +0 -0
- secure-wordpress.php +0 -1101
- swpa-settings.php +75 -0
- uninstall.php +0 -12
css/acx-wp-dashboard.css
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* manage the rss box on dashboard
|
3 |
-
*/
|
4 |
-
|
5 |
-
#acx_plugin_dashboard_widget h3.hndle{
|
6 |
-
background: url('../img/wsd-logo-small.png') no-repeat 5px 50%;
|
7 |
-
padding-left: 35px; padding-top: 10px;
|
8 |
-
}
|
9 |
-
#acx_plugin_dashboard_widget h4 {
|
10 |
-
margin: 0 0; font-size: 1.2em;
|
11 |
-
/* background: url('../images/arrow-black-icon.png') no-repeat left center;
|
12 |
-
background: url('../images/wsd-logo-small-list.png') no-repeat left center;
|
13 |
-
padding-left: 20px;*/
|
14 |
-
}
|
15 |
-
#acx_plugin_dashboard_widget p { margin: 3px 0; }
|
16 |
-
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/remove_login.css
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
#login_error {
|
2 |
-
display: none;
|
3 |
-
}
|
|
|
|
|
|
css/remove_update_plugins.css
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
.update-plugins {
|
2 |
-
display: none !important;
|
3 |
-
}
|
|
|
|
|
|
css/remove_wp_version.css
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
#wp-version-message, #footer-upgrade {
|
2 |
-
display: none !important;
|
3 |
-
}
|
|
|
|
|
|
css/wsd_sw_styles.css
DELETED
@@ -1,317 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
Document : wsd_sw_styles.css
|
3 |
-
Created on : Jul 15, 2011, 10:50:06 AM
|
4 |
-
Author : kos
|
5 |
-
Description: Define the page layout
|
6 |
-
$rev #1 07/15/2011 k$
|
7 |
-
*/
|
8 |
-
/*[ Overriden ]*/
|
9 |
-
.poststuff { float: left; display: block; width: 49%; margin-left: 10px; }
|
10 |
-
.wrap .poststuff_left { margin-left: 0 !important;}
|
11 |
-
.wrap .poststuff_clear { clear: both; width: 100% !important; }
|
12 |
-
.form-table th { width: auto; }
|
13 |
-
|
14 |
-
/*[ IMPORTED ]*/
|
15 |
-
|
16 |
-
/********************************************************
|
17 |
-
* BEGIN >> General styling
|
18 |
-
*/
|
19 |
-
p.wsd-error-summary {
|
20 |
-
background-color: #F9EFAC;
|
21 |
-
border: 1px dotted #f00;
|
22 |
-
color: #DC143C;
|
23 |
-
padding: 5px 10px;
|
24 |
-
margin: 10px;
|
25 |
-
font-weight: bold;
|
26 |
-
cursor: default;
|
27 |
-
}
|
28 |
-
|
29 |
-
span.wsd-error-summary-detail {
|
30 |
-
color: #000;
|
31 |
-
font-weight: normal;
|
32 |
-
font-size: 11px;
|
33 |
-
cursor: default;
|
34 |
-
}
|
35 |
-
|
36 |
-
|
37 |
-
p.wsd-success-summary {
|
38 |
-
background-color: #90EE90;
|
39 |
-
border: 1px dotted #f00;
|
40 |
-
color: #000;
|
41 |
-
padding: 5px 10px;
|
42 |
-
margin: 10px;
|
43 |
-
font-weight: bold;
|
44 |
-
cursor: default;
|
45 |
-
}
|
46 |
-
|
47 |
-
span.wsd-success-summary-detail {
|
48 |
-
color: #000;
|
49 |
-
font-weight: normal;
|
50 |
-
font-size: 11px;
|
51 |
-
cursor: default;
|
52 |
-
}
|
53 |
-
|
54 |
-
|
55 |
-
p.wsd-login-notice {
|
56 |
-
font-weight: bold;
|
57 |
-
color: #000;
|
58 |
-
margin-top: -10px;
|
59 |
-
margin-bottom: 20px;
|
60 |
-
}
|
61 |
-
|
62 |
-
.wsd-inside {
|
63 |
-
padding: 10px;
|
64 |
-
font-family: Verdana, Arial, sans-serif !important;
|
65 |
-
font-size: 100% !important;
|
66 |
-
}
|
67 |
-
|
68 |
-
p.wsd-error-summary a, .wsd-inside a {
|
69 |
-
color: #CC0000;
|
70 |
-
text-decoration: none;
|
71 |
-
}
|
72 |
-
|
73 |
-
p.wsd-error-summary a:hover, .wsd-inside a:hover {
|
74 |
-
color: #CC0000;
|
75 |
-
text-decoration: underline;
|
76 |
-
}
|
77 |
-
|
78 |
-
/********************************************************
|
79 |
-
* BEGIN >> Login form styling
|
80 |
-
*/
|
81 |
-
#wsd_login_form,
|
82 |
-
#sw_wsd_login_form {
|
83 |
-
margin: 0px;
|
84 |
-
}
|
85 |
-
|
86 |
-
#wsd_login_form .wsd-login-section,
|
87 |
-
#sw_wsd_login_form .wsd-login-section {
|
88 |
-
display: block;
|
89 |
-
float: left;
|
90 |
-
width: 100%;
|
91 |
-
margin-bottom: 5px;
|
92 |
-
}
|
93 |
-
|
94 |
-
#wsd_login_form .wsd-login-section label,
|
95 |
-
#sw_wsd_login_form .wsd-login-section label {
|
96 |
-
display: block;
|
97 |
-
float: left;
|
98 |
-
width: 70px;
|
99 |
-
padding-top: 6px;
|
100 |
-
}
|
101 |
-
|
102 |
-
#wsd_login_form .wsd-login-section input,
|
103 |
-
#sw_wsd_login_form .wsd-login-section input {
|
104 |
-
display: block;
|
105 |
-
width: 200px;
|
106 |
-
float: left;
|
107 |
-
}
|
108 |
-
|
109 |
-
#wsd_login_form #wsd-login,
|
110 |
-
#sw_wsd_login_form #wsd-login {
|
111 |
-
clear: left;
|
112 |
-
margin-left: 70px;
|
113 |
-
}
|
114 |
-
|
115 |
-
/********************************************************
|
116 |
-
* BEGIN >> Registration form styling
|
117 |
-
*/
|
118 |
-
#wsd_new_user_form, #sw_wsd_new_user_form {
|
119 |
-
margin: 0px;
|
120 |
-
}
|
121 |
-
|
122 |
-
#wsd_new_user_form .wsd-new-user-section,
|
123 |
-
#sw_wsd_new_user_form .wsd-new-user-section {
|
124 |
-
display: block;
|
125 |
-
float: left;
|
126 |
-
width: 100%;
|
127 |
-
margin-bottom: 5px;
|
128 |
-
}
|
129 |
-
|
130 |
-
#wsd_new_user_form .wsd-new-user-section label,
|
131 |
-
#sw_wsd_new_user_form .wsd-new-user-section label {
|
132 |
-
display: block;
|
133 |
-
float: left;
|
134 |
-
width: 120px;
|
135 |
-
padding-top: 6px;
|
136 |
-
}
|
137 |
-
|
138 |
-
#wsd_new_user_form .wsd-new-user-section input,
|
139 |
-
#sw_wsd_new_user_form .wsd-new-user-section input {
|
140 |
-
display: block;
|
141 |
-
width: 200px;
|
142 |
-
float: left;
|
143 |
-
}
|
144 |
-
|
145 |
-
#wsd_new_user_form #wsd-login,
|
146 |
-
#sw_wsd_new_user_form #wsd-login {
|
147 |
-
clear: left;
|
148 |
-
margin-left: 70px;
|
149 |
-
}
|
150 |
-
|
151 |
-
/********************************************************
|
152 |
-
* BEGIN >> Initial scan widget styling
|
153 |
-
*/
|
154 |
-
#wsd-information-scan-list {
|
155 |
-
list-style-type: disc;
|
156 |
-
margin: 10px;
|
157 |
-
padding-left: 20px;
|
158 |
-
}
|
159 |
-
|
160 |
-
#wsd-initial-scan { }
|
161 |
-
|
162 |
-
#wsd-initial-scan .wsd-initial-scan-section {
|
163 |
-
line-height: 1.4em;
|
164 |
-
display: block;
|
165 |
-
color: #090;
|
166 |
-
}
|
167 |
-
|
168 |
-
|
169 |
-
/********************************************************
|
170 |
-
* BEGIN >> Target update form styling
|
171 |
-
*/
|
172 |
-
#wsd_target_id_form {
|
173 |
-
width: 100%;
|
174 |
-
}
|
175 |
-
|
176 |
-
#wsd_target_id_form #targetid {
|
177 |
-
width: 290px !important;
|
178 |
-
}
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
/********************************************************
|
183 |
-
* BEGIN >> Status content styling
|
184 |
-
*/
|
185 |
-
div#wsd-target-status-holder {
|
186 |
-
overflow: hidden;
|
187 |
-
}
|
188 |
-
|
189 |
-
p.wsd-target-status-title {
|
190 |
-
font-weight: bold;
|
191 |
-
}
|
192 |
-
|
193 |
-
div.wsd-target-status-section {
|
194 |
-
display: block;
|
195 |
-
float: left;
|
196 |
-
margin-right: 5px;
|
197 |
-
}
|
198 |
-
|
199 |
-
span.wsd-target-status-section-label {
|
200 |
-
display: block;
|
201 |
-
padding: 5px 4px;
|
202 |
-
float: left;
|
203 |
-
color: #999999
|
204 |
-
}
|
205 |
-
|
206 |
-
span.wsd-target-status-section-enabled {
|
207 |
-
display: block;
|
208 |
-
padding: 5px 0px;
|
209 |
-
background-color: #0f0;
|
210 |
-
color: #000;
|
211 |
-
float: left;
|
212 |
-
width: 50px;
|
213 |
-
height: 24px;
|
214 |
-
border-radius: 3px;
|
215 |
-
-moz-border-radius: 3px;
|
216 |
-
-webkit-border-radius: 3px;
|
217 |
-
text-align: center;
|
218 |
-
font-weight: bold;
|
219 |
-
|
220 |
-
background: url('../img/agent-green.png') no-repeat scroll left top transparent;
|
221 |
-
}
|
222 |
-
|
223 |
-
span.wsd-target-status-section-disabled {
|
224 |
-
display: block;
|
225 |
-
padding: 5px 0px;
|
226 |
-
background-color: #f00;
|
227 |
-
color: #fff;
|
228 |
-
float: left;
|
229 |
-
width: 50px;
|
230 |
-
height: 24px;
|
231 |
-
border-radius: 3px;
|
232 |
-
-moz-border-radius: 3px;
|
233 |
-
-webkit-border-radius: 3px;
|
234 |
-
text-align: center;
|
235 |
-
font-weight: bold;
|
236 |
-
|
237 |
-
background: url('../img/agent-red.png') no-repeat scroll left top transparent;
|
238 |
-
}
|
239 |
-
|
240 |
-
.scanpass { color: #090; }
|
241 |
-
|
242 |
-
.mrt_wpss_note {
|
243 |
-
text-align: center;
|
244 |
-
color: grey;
|
245 |
-
margin-top: 20px;
|
246 |
-
margin-bottom: 20px;
|
247 |
-
}
|
248 |
-
|
249 |
-
.wpss_icon {
|
250 |
-
background: url(../img/wsd-logo.png) no-repeat left center;
|
251 |
-
margin-top: 10px !important;
|
252 |
-
padding: 5px 0 3px 50px !important;
|
253 |
-
}
|
254 |
-
|
255 |
-
.wsd_user_notify {
|
256 |
-
border: solid 1px #fc0; background: #ffc;
|
257 |
-
padding: 5px 5px;
|
258 |
-
font-size: 100%;
|
259 |
-
}
|
260 |
-
.wsd_user_information {
|
261 |
-
border: solid 1px #324FB2; background: #E5EAF0;
|
262 |
-
padding: 5px 5px;
|
263 |
-
font-size: 100%;
|
264 |
-
}
|
265 |
-
.wsd_user_success {
|
266 |
-
border: solid 1px #030; background: #090;
|
267 |
-
padding: 5px 5px;
|
268 |
-
font-size: 100%;
|
269 |
-
color: #fff;
|
270 |
-
}
|
271 |
-
.wsd_info_list {
|
272 |
-
list-style-type: disc;
|
273 |
-
list-style-position: outside;
|
274 |
-
margin: 0 0 10px 25px;
|
275 |
-
}
|
276 |
-
div.wsd_user_information, div.wsd_user_notify, div.wsd_user_success { margin: 1em 0 !important; }
|
277 |
-
|
278 |
-
#Words { overflow: hidden; min-height: 1px; margin: 0 0 0 0 !important; padding: 0 0 0 0 !important; }
|
279 |
-
#Words p { float: left; display: block; width: 150px; line-height: normal !important; padding: 0 0 0 0; margin: 6px 0 0 0 !important; }
|
280 |
-
#Words p.indicator { height: 4px; }
|
281 |
-
#Words p.indicator-1 { background: #f00;}
|
282 |
-
#Words p.indicator-2 { background: #990000; }
|
283 |
-
#Words p.indicator-3 { background: #990099; }
|
284 |
-
#Words p.indicator-4 { background: #000099; }
|
285 |
-
#Words p.indicator-5 { background: #0000ff; }
|
286 |
-
#Words p.indicator-6 { background: #ffffff; }
|
287 |
-
#Words p+p {margin: 0 0 0 5px !important; padding: 0 0 0 0 !important; line-height: normal !important;}
|
288 |
-
#wsd_pwdtool { margin-top: 10px; }
|
289 |
-
|
290 |
-
.wsd_commonList {
|
291 |
-
list-style-type: none;
|
292 |
-
margin: 0 0 10px 0;
|
293 |
-
padding-left: 0;
|
294 |
-
}
|
295 |
-
.wsd_commonList li {
|
296 |
-
font-style: italic !important;
|
297 |
-
background: url('../img/wsd-logo-small-list.png') no-repeat 0 50%;
|
298 |
-
padding: 2px 0 2px 20px !important;
|
299 |
-
}
|
300 |
-
|
301 |
-
.wsd-inside p, .wsd-inside ul, .wsd-inside ol, .wsd-inside blockquote, .wsd-inside input, .wsd-inside select {
|
302 |
-
font-size: 100%;
|
303 |
-
}
|
304 |
-
|
305 |
-
.wsd-inside, .wsd-inside p, .wsd-inside li, .wsd-inside dl, .wsd-inside dd, .wsd-inside dt {
|
306 |
-
line-height: normal !important;
|
307 |
-
}
|
308 |
-
|
309 |
-
#wsd_db_wrapper .inner-sidebar1 { margin: 10px 10px 0 10px; }
|
310 |
-
#wsd_db_wrapper, #wsd_db_wrapper .metabox-holder {overflow:hidden; min-height:1px; }
|
311 |
-
#wsd_permissions_table { margin: 15px 0; }
|
312 |
-
#wsd_permissions_table th,
|
313 |
-
#wsd_permissions_table td { text-align: left; }
|
314 |
-
#wsd_permissions_table td { padding: 1px 7px;}
|
315 |
-
#wsd_tables_list_block { clear: both;}
|
316 |
-
|
317 |
-
.wsd_cursor_help { cursor: help; border-bottom: dotted 1px #000; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
img/acunetix.png
DELETED
Binary file
|
img/agent-green.png
DELETED
Binary file
|
img/agent-red.png
DELETED
Binary file
|
img/facebook.gif
DELETED
Binary file
|
img/loading45.gif
DELETED
Binary file
|
img/wsd-logo-small.png
DELETED
Binary file
|
img/wsd-logo.png
DELETED
Binary file
|
inc/WPlize.php
DELETED
@@ -1,161 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPlize [Klasse]
|
4 |
-
*
|
5 |
-
* DE: Updaten, Setzen, Holen und Löschen von Optionen in WordPress
|
6 |
-
* EN: update, set, get and delete options in WordPress
|
7 |
-
*
|
8 |
-
* DE:
|
9 |
-
* WPlize gruppiert und verwaltet alle Optionen eines Plugins bzw.
|
10 |
-
* Themes in einem einzigen Optionsfeld. Die Anzahl der
|
11 |
-
* Datenbankabfragen und somit die Ladezeit des Blogs können sich
|
12 |
-
* sich enorm verringern. WPlize richtet sich an die Entwickler
|
13 |
-
* von WordPress-Plugins und -Themes.
|
14 |
-
*
|
15 |
-
* EN:
|
16 |
-
* WPlize regroups and manages all options of a plugin or
|
17 |
-
* theme in one option field. The amount of database queries
|
18 |
-
* can be reduced and therefore the loading time of blogs
|
19 |
-
* can be improved enormously. WPlize is designed for
|
20 |
-
* developers of WordPress themes or plugins.
|
21 |
-
*
|
22 |
-
* @package WPlize.php
|
23 |
-
* @author Sergej Müller and Frank Bültge
|
24 |
-
* @since 26.09.2008
|
25 |
-
* @change 09.12.2008
|
26 |
-
* @access public
|
27 |
-
*/
|
28 |
-
|
29 |
-
|
30 |
-
class WPlize {
|
31 |
-
|
32 |
-
|
33 |
-
/**
|
34 |
-
* WPlize [Konstruktor]
|
35 |
-
*
|
36 |
-
* DE: Setzt Eigenschafen fest und startet die Initialisierung
|
37 |
-
* EN: set properties and start init
|
38 |
-
*
|
39 |
-
* @package WPlize.php
|
40 |
-
* @author Sergej Müller
|
41 |
-
* @since 26.09.2008
|
42 |
-
* @change 03.12.2008
|
43 |
-
* @access public
|
44 |
-
* @param array $option Title of the multi-option in the DB [optional]
|
45 |
-
* @param array $data Array with startvalue [optional]
|
46 |
-
*/
|
47 |
-
function WPlize($option = '', $data = array()) {
|
48 |
-
if (empty($option) === true) {
|
49 |
-
$this->multi_option = 'WPlize_'. md5(get_bloginfo('home'));
|
50 |
-
} else {
|
51 |
-
$this->multi_option = $option;
|
52 |
-
}
|
53 |
-
|
54 |
-
if ($data) {
|
55 |
-
$this->init_option($data);
|
56 |
-
}
|
57 |
-
}
|
58 |
-
|
59 |
-
|
60 |
-
/**
|
61 |
-
* init_option
|
62 |
-
*
|
63 |
-
* DE: Initialisiert die Multi-Option in der DB
|
64 |
-
* EN: init mulit-option in the db
|
65 |
-
*
|
66 |
-
* @package WPlize.php
|
67 |
-
* @author Sergej Müller
|
68 |
-
* @since 26.09.2008
|
69 |
-
* @change 26.09.2008
|
70 |
-
* @access public
|
71 |
-
* @param array $data Array with startvalues [optional]
|
72 |
-
*/
|
73 |
-
function init_option($data = array()) {
|
74 |
-
add_option($this->multi_option, $data);
|
75 |
-
}
|
76 |
-
|
77 |
-
|
78 |
-
/**
|
79 |
-
* delete_option
|
80 |
-
*
|
81 |
-
* DE: Entfernt die Multi-Option aus der DB
|
82 |
-
* EN: delete the multi-option of the db
|
83 |
-
*
|
84 |
-
* @package WPlize.php
|
85 |
-
* @author Sergej Müller
|
86 |
-
* @since 26.09.2008
|
87 |
-
* @change 26.09.2008
|
88 |
-
* @access public
|
89 |
-
*/
|
90 |
-
function delete_option() {
|
91 |
-
delete_option($this->multi_option);
|
92 |
-
}
|
93 |
-
|
94 |
-
|
95 |
-
/**
|
96 |
-
* get_option
|
97 |
-
*
|
98 |
-
* DE: Liefert den Wert einer Option
|
99 |
-
* EN: get the value to option
|
100 |
-
*
|
101 |
-
* @package WPlize.php
|
102 |
-
* @author Sergej Müller
|
103 |
-
* @since 26.09.2008
|
104 |
-
* @change 26.09.2008
|
105 |
-
* @access public
|
106 |
-
* @param string $key Title of the option
|
107 |
-
* @return mixed Value of the option [false on error]
|
108 |
-
*/
|
109 |
-
function get_option($key) {
|
110 |
-
if (empty($key) === true) {
|
111 |
-
return false;
|
112 |
-
}
|
113 |
-
|
114 |
-
$data = get_option($this->multi_option);
|
115 |
-
|
116 |
-
return @$data[$key];
|
117 |
-
}
|
118 |
-
|
119 |
-
|
120 |
-
/**
|
121 |
-
* update_option
|
122 |
-
*
|
123 |
-
* DE: Weist den Optionen neue Werte zu
|
124 |
-
* EN: Set new options to value
|
125 |
-
*
|
126 |
-
* @package WPlize.php
|
127 |
-
* @author Sergej Müller
|
128 |
-
* @since 26.09.2008
|
129 |
-
* @change 07.12.2008
|
130 |
-
* @access public
|
131 |
-
* @param mixed $key Title of the option [alternativ Array with optionen]
|
132 |
-
* @param string $value Value of the option [optional]
|
133 |
-
* @return boolean False on error
|
134 |
-
*/
|
135 |
-
function update_option($key, $value = '') {
|
136 |
-
if (empty($key) === true) {
|
137 |
-
return false;
|
138 |
-
}
|
139 |
-
|
140 |
-
if (is_array($key) === true) {
|
141 |
-
$data = $key;
|
142 |
-
} else {
|
143 |
-
$data = array($key => $value);
|
144 |
-
}
|
145 |
-
|
146 |
-
if (is_array(get_option($this->multi_option)) === true) {
|
147 |
-
$update = array_merge(
|
148 |
-
get_option($this->multi_option),
|
149 |
-
$data
|
150 |
-
);
|
151 |
-
} else {
|
152 |
-
$update = $data;
|
153 |
-
}
|
154 |
-
|
155 |
-
update_option(
|
156 |
-
$this->multi_option,
|
157 |
-
$update
|
158 |
-
);
|
159 |
-
}
|
160 |
-
}
|
161 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/json.php
DELETED
@@ -1,806 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
3 |
-
|
4 |
-
/**
|
5 |
-
* Converts to and from JSON format.
|
6 |
-
*
|
7 |
-
* JSON (JavaScript Object Notation) is a lightweight data-interchange
|
8 |
-
* format. It is easy for humans to read and write. It is easy for machines
|
9 |
-
* to parse and generate. It is based on a subset of the JavaScript
|
10 |
-
* Programming Language, Standard ECMA-262 3rd Edition - December 1999.
|
11 |
-
* This feature can also be found in Python. JSON is a text format that is
|
12 |
-
* completely language independent but uses conventions that are familiar
|
13 |
-
* to programmers of the C-family of languages, including C, C++, C#, Java,
|
14 |
-
* JavaScript, Perl, TCL, and many others. These properties make JSON an
|
15 |
-
* ideal data-interchange language.
|
16 |
-
*
|
17 |
-
* This package provides a simple encoder and decoder for JSON notation. It
|
18 |
-
* is intended for use with client-side Javascript applications that make
|
19 |
-
* use of HTTPRequest to perform server communication functions - data can
|
20 |
-
* be encoded into JSON notation for use in a client-side javascript, or
|
21 |
-
* decoded from incoming Javascript requests. JSON format is native to
|
22 |
-
* Javascript, and can be directly eval()'ed with no further parsing
|
23 |
-
* overhead
|
24 |
-
*
|
25 |
-
* All strings should be in ASCII or UTF-8 format!
|
26 |
-
*
|
27 |
-
* LICENSE: Redistribution and use in source and binary forms, with or
|
28 |
-
* without modification, are permitted provided that the following
|
29 |
-
* conditions are met: Redistributions of source code must retain the
|
30 |
-
* above copyright notice, this list of conditions and the following
|
31 |
-
* disclaimer. Redistributions in binary form must reproduce the above
|
32 |
-
* copyright notice, this list of conditions and the following disclaimer
|
33 |
-
* in the documentation and/or other materials provided with the
|
34 |
-
* distribution.
|
35 |
-
*
|
36 |
-
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
37 |
-
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
38 |
-
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
39 |
-
* NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
40 |
-
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
41 |
-
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
42 |
-
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
43 |
-
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
44 |
-
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
45 |
-
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
46 |
-
* DAMAGE.
|
47 |
-
*
|
48 |
-
* @category
|
49 |
-
* @package Services_JSON
|
50 |
-
* @author Michal Migurski <mike-json@teczno.com>
|
51 |
-
* @author Matt Knapp <mdknapp[at]gmail[dot]com>
|
52 |
-
* @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
|
53 |
-
* @copyright 2005 Michal Migurski
|
54 |
-
* @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
|
55 |
-
* @license http://www.opensource.org/licenses/bsd-license.php
|
56 |
-
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
|
57 |
-
*/
|
58 |
-
|
59 |
-
/**
|
60 |
-
* Marker constant for Services_JSON::decode(), used to flag stack state
|
61 |
-
*/
|
62 |
-
define('SERVICES_JSON_SLICE', 1);
|
63 |
-
|
64 |
-
/**
|
65 |
-
* Marker constant for Services_JSON::decode(), used to flag stack state
|
66 |
-
*/
|
67 |
-
define('SERVICES_JSON_IN_STR', 2);
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Marker constant for Services_JSON::decode(), used to flag stack state
|
71 |
-
*/
|
72 |
-
define('SERVICES_JSON_IN_ARR', 3);
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Marker constant for Services_JSON::decode(), used to flag stack state
|
76 |
-
*/
|
77 |
-
define('SERVICES_JSON_IN_OBJ', 4);
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Marker constant for Services_JSON::decode(), used to flag stack state
|
81 |
-
*/
|
82 |
-
define('SERVICES_JSON_IN_CMT', 5);
|
83 |
-
|
84 |
-
/**
|
85 |
-
* Behavior switch for Services_JSON::decode()
|
86 |
-
*/
|
87 |
-
define('SERVICES_JSON_LOOSE_TYPE', 16);
|
88 |
-
|
89 |
-
/**
|
90 |
-
* Behavior switch for Services_JSON::decode()
|
91 |
-
*/
|
92 |
-
define('SERVICES_JSON_SUPPRESS_ERRORS', 32);
|
93 |
-
|
94 |
-
/**
|
95 |
-
* Converts to and from JSON format.
|
96 |
-
*
|
97 |
-
* Brief example of use:
|
98 |
-
*
|
99 |
-
* <code>
|
100 |
-
* // create a new instance of Services_JSON
|
101 |
-
* $json = new Services_JSON();
|
102 |
-
*
|
103 |
-
* // convert a complexe value to JSON notation, and send it to the browser
|
104 |
-
* $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));
|
105 |
-
* $output = $json->encode($value);
|
106 |
-
*
|
107 |
-
* print($output);
|
108 |
-
* // prints: ["foo","bar",[1,2,"baz"],[3,[4]]]
|
109 |
-
*
|
110 |
-
* // accept incoming POST data, assumed to be in JSON notation
|
111 |
-
* $input = file_get_contents('php://input', 1000000);
|
112 |
-
* $value = $json->decode($input);
|
113 |
-
* </code>
|
114 |
-
*/
|
115 |
-
class Services_JSON
|
116 |
-
{
|
117 |
-
/**
|
118 |
-
* constructs a new JSON instance
|
119 |
-
*
|
120 |
-
* @param int $use object behavior flags; combine with boolean-OR
|
121 |
-
*
|
122 |
-
* possible values:
|
123 |
-
* - SERVICES_JSON_LOOSE_TYPE: loose typing.
|
124 |
-
* "{...}" syntax creates associative arrays
|
125 |
-
* instead of objects in decode().
|
126 |
-
* - SERVICES_JSON_SUPPRESS_ERRORS: error suppression.
|
127 |
-
* Values which can't be encoded (e.g. resources)
|
128 |
-
* appear as NULL instead of throwing errors.
|
129 |
-
* By default, a deeply-nested resource will
|
130 |
-
* bubble up with an error, so all return values
|
131 |
-
* from encode() should be checked with isError()
|
132 |
-
*/
|
133 |
-
function Services_JSON($use = 0)
|
134 |
-
{
|
135 |
-
$this->use = $use;
|
136 |
-
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* convert a string from one UTF-16 char to one UTF-8 char
|
140 |
-
*
|
141 |
-
* Normally should be handled by mb_convert_encoding, but
|
142 |
-
* provides a slower PHP-only method for installations
|
143 |
-
* that lack the multibye string extension.
|
144 |
-
*
|
145 |
-
* @param string $utf16 UTF-16 character
|
146 |
-
* @return string UTF-8 character
|
147 |
-
* @access private
|
148 |
-
*/
|
149 |
-
function utf162utf8($utf16)
|
150 |
-
{
|
151 |
-
// oh please oh please oh please oh please oh please
|
152 |
-
if(function_exists('mb_convert_encoding')) {
|
153 |
-
return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
|
154 |
-
}
|
155 |
-
|
156 |
-
$bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
|
157 |
-
|
158 |
-
switch(true) {
|
159 |
-
case ((0x7F & $bytes) == $bytes):
|
160 |
-
// this case should never be reached, because we are in ASCII range
|
161 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
162 |
-
return chr(0x7F & $bytes);
|
163 |
-
|
164 |
-
case (0x07FF & $bytes) == $bytes:
|
165 |
-
// return a 2-byte UTF-8 character
|
166 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
167 |
-
return chr(0xC0 | (($bytes >> 6) & 0x1F))
|
168 |
-
. chr(0x80 | ($bytes & 0x3F));
|
169 |
-
|
170 |
-
case (0xFFFF & $bytes) == $bytes:
|
171 |
-
// return a 3-byte UTF-8 character
|
172 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
173 |
-
return chr(0xE0 | (($bytes >> 12) & 0x0F))
|
174 |
-
. chr(0x80 | (($bytes >> 6) & 0x3F))
|
175 |
-
. chr(0x80 | ($bytes & 0x3F));
|
176 |
-
}
|
177 |
-
|
178 |
-
// ignoring UTF-32 for now, sorry
|
179 |
-
return '';
|
180 |
-
}
|
181 |
-
|
182 |
-
/**
|
183 |
-
* convert a string from one UTF-8 char to one UTF-16 char
|
184 |
-
*
|
185 |
-
* Normally should be handled by mb_convert_encoding, but
|
186 |
-
* provides a slower PHP-only method for installations
|
187 |
-
* that lack the multibye string extension.
|
188 |
-
*
|
189 |
-
* @param string $utf8 UTF-8 character
|
190 |
-
* @return string UTF-16 character
|
191 |
-
* @access private
|
192 |
-
*/
|
193 |
-
function utf82utf16($utf8)
|
194 |
-
{
|
195 |
-
// oh please oh please oh please oh please oh please
|
196 |
-
if(function_exists('mb_convert_encoding')) {
|
197 |
-
return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
|
198 |
-
}
|
199 |
-
|
200 |
-
switch(strlen($utf8)) {
|
201 |
-
case 1:
|
202 |
-
// this case should never be reached, because we are in ASCII range
|
203 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
204 |
-
return $utf8;
|
205 |
-
|
206 |
-
case 2:
|
207 |
-
// return a UTF-16 character from a 2-byte UTF-8 char
|
208 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
209 |
-
return chr(0x07 & (ord($utf8{0}) >> 2))
|
210 |
-
. chr((0xC0 & (ord($utf8{0}) << 6))
|
211 |
-
| (0x3F & ord($utf8{1})));
|
212 |
-
|
213 |
-
case 3:
|
214 |
-
// return a UTF-16 character from a 3-byte UTF-8 char
|
215 |
-
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
216 |
-
return chr((0xF0 & (ord($utf8{0}) << 4))
|
217 |
-
| (0x0F & (ord($utf8{1}) >> 2)))
|
218 |
-
. chr((0xC0 & (ord($utf8{1}) << 6))
|
219 |
-
| (0x7F & ord($utf8{2})));
|
220 |
-
}
|
221 |
-
|
222 |
-
// ignoring UTF-32 for now, sorry
|
223 |
-
return '';
|
224 |
-
}
|
225 |
-
|
226 |
-
/**
|
227 |
-
* encodes an arbitrary variable into JSON format
|
228 |
-
*
|
229 |
-
* @param mixed $var any number, boolean, string, array, or object to be encoded.
|
230 |
-
* see argument 1 to Services_JSON() above for array-parsing behavior.
|
231 |
-
* if var is a strng, note that encode() always expects it
|
232 |
-
* to be in ASCII or UTF-8 format!
|
233 |
-
*
|
234 |
-
* @return mixed JSON string representation of input var or an error if a problem occurs
|
235 |
-
* @access public
|
236 |
-
*/
|
237 |
-
function encode($var)
|
238 |
-
{
|
239 |
-
switch (gettype($var)) {
|
240 |
-
case 'boolean':
|
241 |
-
return $var ? 'true' : 'false';
|
242 |
-
|
243 |
-
case 'NULL':
|
244 |
-
return 'null';
|
245 |
-
|
246 |
-
case 'integer':
|
247 |
-
return (int) $var;
|
248 |
-
|
249 |
-
case 'double':
|
250 |
-
case 'float':
|
251 |
-
return (float) $var;
|
252 |
-
|
253 |
-
case 'string':
|
254 |
-
// STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
|
255 |
-
$ascii = '';
|
256 |
-
$strlen_var = strlen($var);
|
257 |
-
|
258 |
-
/*
|
259 |
-
* Iterate over every character in the string,
|
260 |
-
* escaping with a slash or encoding to UTF-8 where necessary
|
261 |
-
*/
|
262 |
-
for ($c = 0; $c < $strlen_var; ++$c) {
|
263 |
-
|
264 |
-
$ord_var_c = ord($var{$c});
|
265 |
-
|
266 |
-
switch (true) {
|
267 |
-
case $ord_var_c == 0x08:
|
268 |
-
$ascii .= '\b';
|
269 |
-
break;
|
270 |
-
case $ord_var_c == 0x09:
|
271 |
-
$ascii .= '\t';
|
272 |
-
break;
|
273 |
-
case $ord_var_c == 0x0A:
|
274 |
-
$ascii .= '\n';
|
275 |
-
break;
|
276 |
-
case $ord_var_c == 0x0C:
|
277 |
-
$ascii .= '\f';
|
278 |
-
break;
|
279 |
-
case $ord_var_c == 0x0D:
|
280 |
-
$ascii .= '\r';
|
281 |
-
break;
|
282 |
-
|
283 |
-
case $ord_var_c == 0x22:
|
284 |
-
case $ord_var_c == 0x2F:
|
285 |
-
case $ord_var_c == 0x5C:
|
286 |
-
// double quote, slash, slosh
|
287 |
-
$ascii .= '\\'.$var{$c};
|
288 |
-
break;
|
289 |
-
|
290 |
-
case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
|
291 |
-
// characters U-00000000 - U-0000007F (same as ASCII)
|
292 |
-
$ascii .= $var{$c};
|
293 |
-
break;
|
294 |
-
|
295 |
-
case (($ord_var_c & 0xE0) == 0xC0):
|
296 |
-
// characters U-00000080 - U-000007FF, mask 110XXXXX
|
297 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
298 |
-
$char = pack('C*', $ord_var_c, ord($var{$c + 1}));
|
299 |
-
$c += 1;
|
300 |
-
$utf16 = $this->utf82utf16($char);
|
301 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
302 |
-
break;
|
303 |
-
|
304 |
-
case (($ord_var_c & 0xF0) == 0xE0):
|
305 |
-
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
|
306 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
307 |
-
$char = pack('C*', $ord_var_c,
|
308 |
-
ord($var{$c + 1}),
|
309 |
-
ord($var{$c + 2}));
|
310 |
-
$c += 2;
|
311 |
-
$utf16 = $this->utf82utf16($char);
|
312 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
313 |
-
break;
|
314 |
-
|
315 |
-
case (($ord_var_c & 0xF8) == 0xF0):
|
316 |
-
// characters U-00010000 - U-001FFFFF, mask 11110XXX
|
317 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
318 |
-
$char = pack('C*', $ord_var_c,
|
319 |
-
ord($var{$c + 1}),
|
320 |
-
ord($var{$c + 2}),
|
321 |
-
ord($var{$c + 3}));
|
322 |
-
$c += 3;
|
323 |
-
$utf16 = $this->utf82utf16($char);
|
324 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
325 |
-
break;
|
326 |
-
|
327 |
-
case (($ord_var_c & 0xFC) == 0xF8):
|
328 |
-
// characters U-00200000 - U-03FFFFFF, mask 111110XX
|
329 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
330 |
-
$char = pack('C*', $ord_var_c,
|
331 |
-
ord($var{$c + 1}),
|
332 |
-
ord($var{$c + 2}),
|
333 |
-
ord($var{$c + 3}),
|
334 |
-
ord($var{$c + 4}));
|
335 |
-
$c += 4;
|
336 |
-
$utf16 = $this->utf82utf16($char);
|
337 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
338 |
-
break;
|
339 |
-
|
340 |
-
case (($ord_var_c & 0xFE) == 0xFC):
|
341 |
-
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
|
342 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
343 |
-
$char = pack('C*', $ord_var_c,
|
344 |
-
ord($var{$c + 1}),
|
345 |
-
ord($var{$c + 2}),
|
346 |
-
ord($var{$c + 3}),
|
347 |
-
ord($var{$c + 4}),
|
348 |
-
ord($var{$c + 5}));
|
349 |
-
$c += 5;
|
350 |
-
$utf16 = $this->utf82utf16($char);
|
351 |
-
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
352 |
-
break;
|
353 |
-
}
|
354 |
-
}
|
355 |
-
|
356 |
-
return '"'.$ascii.'"';
|
357 |
-
|
358 |
-
case 'array':
|
359 |
-
/*
|
360 |
-
* As per JSON spec if any array key is not an integer
|
361 |
-
* we must treat the the whole array as an object. We
|
362 |
-
* also try to catch a sparsely populated associative
|
363 |
-
* array with numeric keys here because some JS engines
|
364 |
-
* will create an array with empty indexes up to
|
365 |
-
* max_index which can cause memory issues and because
|
366 |
-
* the keys, which may be relevant, will be remapped
|
367 |
-
* otherwise.
|
368 |
-
*
|
369 |
-
* As per the ECMA and JSON specification an object may
|
370 |
-
* have any string as a property. Unfortunately due to
|
371 |
-
* a hole in the ECMA specification if the key is a
|
372 |
-
* ECMA reserved word or starts with a digit the
|
373 |
-
* parameter is only accessible using ECMAScript's
|
374 |
-
* bracket notation.
|
375 |
-
*/
|
376 |
-
|
377 |
-
// treat as a JSON object
|
378 |
-
if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
|
379 |
-
$properties = array_map(array($this, 'name_value'),
|
380 |
-
array_keys($var),
|
381 |
-
array_values($var));
|
382 |
-
|
383 |
-
foreach($properties as $property) {
|
384 |
-
if(Services_JSON::isError($property)) {
|
385 |
-
return $property;
|
386 |
-
}
|
387 |
-
}
|
388 |
-
|
389 |
-
return '{' . join(',', $properties) . '}';
|
390 |
-
}
|
391 |
-
|
392 |
-
// treat it like a regular array
|
393 |
-
$elements = array_map(array($this, 'encode'), $var);
|
394 |
-
|
395 |
-
foreach($elements as $element) {
|
396 |
-
if(Services_JSON::isError($element)) {
|
397 |
-
return $element;
|
398 |
-
}
|
399 |
-
}
|
400 |
-
|
401 |
-
return '[' . join(',', $elements) . ']';
|
402 |
-
|
403 |
-
case 'object':
|
404 |
-
$vars = get_object_vars($var);
|
405 |
-
|
406 |
-
$properties = array_map(array($this, 'name_value'),
|
407 |
-
array_keys($vars),
|
408 |
-
array_values($vars));
|
409 |
-
|
410 |
-
foreach($properties as $property) {
|
411 |
-
if(Services_JSON::isError($property)) {
|
412 |
-
return $property;
|
413 |
-
}
|
414 |
-
}
|
415 |
-
|
416 |
-
return '{' . join(',', $properties) . '}';
|
417 |
-
|
418 |
-
default:
|
419 |
-
return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS)
|
420 |
-
? 'null'
|
421 |
-
: new Services_JSON_Error(gettype($var)." can not be encoded as JSON string");
|
422 |
-
}
|
423 |
-
}
|
424 |
-
|
425 |
-
/**
|
426 |
-
* array-walking function for use in generating JSON-formatted name-value pairs
|
427 |
-
*
|
428 |
-
* @param string $name name of key to use
|
429 |
-
* @param mixed $value reference to an array element to be encoded
|
430 |
-
*
|
431 |
-
* @return string JSON-formatted name-value pair, like '"name":value'
|
432 |
-
* @access private
|
433 |
-
*/
|
434 |
-
function name_value($name, $value)
|
435 |
-
{
|
436 |
-
$encoded_value = $this->encode($value);
|
437 |
-
|
438 |
-
if(Services_JSON::isError($encoded_value)) {
|
439 |
-
return $encoded_value;
|
440 |
-
}
|
441 |
-
|
442 |
-
return $this->encode(strval($name)) . ':' . $encoded_value;
|
443 |
-
}
|
444 |
-
|
445 |
-
/**
|
446 |
-
* reduce a string by removing leading and trailing comments and whitespace
|
447 |
-
*
|
448 |
-
* @param $str string string value to strip of comments and whitespace
|
449 |
-
*
|
450 |
-
* @return string string value stripped of comments and whitespace
|
451 |
-
* @access private
|
452 |
-
*/
|
453 |
-
function reduce_string($str)
|
454 |
-
{
|
455 |
-
$str = preg_replace(array(
|
456 |
-
|
457 |
-
// eliminate single line comments in '// ...' form
|
458 |
-
'#^\s*//(.+)$#m',
|
459 |
-
|
460 |
-
// eliminate multi-line comments in '/* ... */' form, at start of string
|
461 |
-
'#^\s*/\*(.+)\*/#Us',
|
462 |
-
|
463 |
-
// eliminate multi-line comments in '/* ... */' form, at end of string
|
464 |
-
'#/\*(.+)\*/\s*$#Us'
|
465 |
-
|
466 |
-
), '', $str);
|
467 |
-
|
468 |
-
// eliminate extraneous space
|
469 |
-
return trim($str);
|
470 |
-
}
|
471 |
-
|
472 |
-
/**
|
473 |
-
* decodes a JSON string into appropriate variable
|
474 |
-
*
|
475 |
-
* @param string $str JSON-formatted string
|
476 |
-
*
|
477 |
-
* @return mixed number, boolean, string, array, or object
|
478 |
-
* corresponding to given JSON input string.
|
479 |
-
* See argument 1 to Services_JSON() above for object-output behavior.
|
480 |
-
* Note that decode() always returns strings
|
481 |
-
* in ASCII or UTF-8 format!
|
482 |
-
* @access public
|
483 |
-
*/
|
484 |
-
function decode($str)
|
485 |
-
{
|
486 |
-
$str = $this->reduce_string($str);
|
487 |
-
|
488 |
-
switch (strtolower($str)) {
|
489 |
-
case 'true':
|
490 |
-
return true;
|
491 |
-
|
492 |
-
case 'false':
|
493 |
-
return false;
|
494 |
-
|
495 |
-
case 'null':
|
496 |
-
return null;
|
497 |
-
|
498 |
-
default:
|
499 |
-
$m = array();
|
500 |
-
|
501 |
-
if (is_numeric($str)) {
|
502 |
-
// Lookie-loo, it's a number
|
503 |
-
|
504 |
-
// This would work on its own, but I'm trying to be
|
505 |
-
// good about returning integers where appropriate:
|
506 |
-
// return (float)$str;
|
507 |
-
|
508 |
-
// Return float or int, as appropriate
|
509 |
-
return ((float)$str == (integer)$str)
|
510 |
-
? (integer)$str
|
511 |
-
: (float)$str;
|
512 |
-
|
513 |
-
} elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) {
|
514 |
-
// STRINGS RETURNED IN UTF-8 FORMAT
|
515 |
-
$delim = substr($str, 0, 1);
|
516 |
-
$chrs = substr($str, 1, -1);
|
517 |
-
$utf8 = '';
|
518 |
-
$strlen_chrs = strlen($chrs);
|
519 |
-
|
520 |
-
for ($c = 0; $c < $strlen_chrs; ++$c) {
|
521 |
-
|
522 |
-
$substr_chrs_c_2 = substr($chrs, $c, 2);
|
523 |
-
$ord_chrs_c = ord($chrs{$c});
|
524 |
-
|
525 |
-
switch (true) {
|
526 |
-
case $substr_chrs_c_2 == '\b':
|
527 |
-
$utf8 .= chr(0x08);
|
528 |
-
++$c;
|
529 |
-
break;
|
530 |
-
case $substr_chrs_c_2 == '\t':
|
531 |
-
$utf8 .= chr(0x09);
|
532 |
-
++$c;
|
533 |
-
break;
|
534 |
-
case $substr_chrs_c_2 == '\n':
|
535 |
-
$utf8 .= chr(0x0A);
|
536 |
-
++$c;
|
537 |
-
break;
|
538 |
-
case $substr_chrs_c_2 == '\f':
|
539 |
-
$utf8 .= chr(0x0C);
|
540 |
-
++$c;
|
541 |
-
break;
|
542 |
-
case $substr_chrs_c_2 == '\r':
|
543 |
-
$utf8 .= chr(0x0D);
|
544 |
-
++$c;
|
545 |
-
break;
|
546 |
-
|
547 |
-
case $substr_chrs_c_2 == '\\"':
|
548 |
-
case $substr_chrs_c_2 == '\\\'':
|
549 |
-
case $substr_chrs_c_2 == '\\\\':
|
550 |
-
case $substr_chrs_c_2 == '\\/':
|
551 |
-
if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
|
552 |
-
($delim == "'" && $substr_chrs_c_2 != '\\"')) {
|
553 |
-
$utf8 .= $chrs{++$c};
|
554 |
-
}
|
555 |
-
break;
|
556 |
-
|
557 |
-
case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)):
|
558 |
-
// single, escaped unicode character
|
559 |
-
$utf16 = chr(hexdec(substr($chrs, ($c + 2), 2)))
|
560 |
-
. chr(hexdec(substr($chrs, ($c + 4), 2)));
|
561 |
-
$utf8 .= $this->utf162utf8($utf16);
|
562 |
-
$c += 5;
|
563 |
-
break;
|
564 |
-
|
565 |
-
case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F):
|
566 |
-
$utf8 .= $chrs{$c};
|
567 |
-
break;
|
568 |
-
|
569 |
-
case ($ord_chrs_c & 0xE0) == 0xC0:
|
570 |
-
// characters U-00000080 - U-000007FF, mask 110XXXXX
|
571 |
-
//see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
572 |
-
$utf8 .= substr($chrs, $c, 2);
|
573 |
-
++$c;
|
574 |
-
break;
|
575 |
-
|
576 |
-
case ($ord_chrs_c & 0xF0) == 0xE0:
|
577 |
-
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
|
578 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
579 |
-
$utf8 .= substr($chrs, $c, 3);
|
580 |
-
$c += 2;
|
581 |
-
break;
|
582 |
-
|
583 |
-
case ($ord_chrs_c & 0xF8) == 0xF0:
|
584 |
-
// characters U-00010000 - U-001FFFFF, mask 11110XXX
|
585 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
586 |
-
$utf8 .= substr($chrs, $c, 4);
|
587 |
-
$c += 3;
|
588 |
-
break;
|
589 |
-
|
590 |
-
case ($ord_chrs_c & 0xFC) == 0xF8:
|
591 |
-
// characters U-00200000 - U-03FFFFFF, mask 111110XX
|
592 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
593 |
-
$utf8 .= substr($chrs, $c, 5);
|
594 |
-
$c += 4;
|
595 |
-
break;
|
596 |
-
|
597 |
-
case ($ord_chrs_c & 0xFE) == 0xFC:
|
598 |
-
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
|
599 |
-
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
600 |
-
$utf8 .= substr($chrs, $c, 6);
|
601 |
-
$c += 5;
|
602 |
-
break;
|
603 |
-
|
604 |
-
}
|
605 |
-
|
606 |
-
}
|
607 |
-
|
608 |
-
return $utf8;
|
609 |
-
|
610 |
-
} elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
|
611 |
-
// array, or object notation
|
612 |
-
|
613 |
-
if ($str{0} == '[') {
|
614 |
-
$stk = array(SERVICES_JSON_IN_ARR);
|
615 |
-
$arr = array();
|
616 |
-
} else {
|
617 |
-
if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
|
618 |
-
$stk = array(SERVICES_JSON_IN_OBJ);
|
619 |
-
$obj = array();
|
620 |
-
} else {
|
621 |
-
$stk = array(SERVICES_JSON_IN_OBJ);
|
622 |
-
$obj = new stdClass();
|
623 |
-
}
|
624 |
-
}
|
625 |
-
|
626 |
-
array_push($stk, array('what' => SERVICES_JSON_SLICE,
|
627 |
-
'where' => 0,
|
628 |
-
'delim' => false));
|
629 |
-
|
630 |
-
$chrs = substr($str, 1, -1);
|
631 |
-
$chrs = $this->reduce_string($chrs);
|
632 |
-
|
633 |
-
if ($chrs == '') {
|
634 |
-
if (reset($stk) == SERVICES_JSON_IN_ARR) {
|
635 |
-
return $arr;
|
636 |
-
|
637 |
-
} else {
|
638 |
-
return $obj;
|
639 |
-
|
640 |
-
}
|
641 |
-
}
|
642 |
-
|
643 |
-
//print("\nparsing {$chrs}\n");
|
644 |
-
|
645 |
-
$strlen_chrs = strlen($chrs);
|
646 |
-
|
647 |
-
for ($c = 0; $c <= $strlen_chrs; ++$c) {
|
648 |
-
|
649 |
-
$top = end($stk);
|
650 |
-
$substr_chrs_c_2 = substr($chrs, $c, 2);
|
651 |
-
|
652 |
-
if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
|
653 |
-
// found a comma that is not inside a string, array, etc.,
|
654 |
-
// OR we've reached the end of the character list
|
655 |
-
$slice = substr($chrs, $top['where'], ($c - $top['where']));
|
656 |
-
array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false));
|
657 |
-
//print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
658 |
-
|
659 |
-
if (reset($stk) == SERVICES_JSON_IN_ARR) {
|
660 |
-
// we are in an array, so just push an element onto the stack
|
661 |
-
array_push($arr, $this->decode($slice));
|
662 |
-
|
663 |
-
} elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
|
664 |
-
// we are in an object, so figure
|
665 |
-
// out the property name and set an
|
666 |
-
// element in an associative array,
|
667 |
-
// for now
|
668 |
-
$parts = array();
|
669 |
-
|
670 |
-
if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
|
671 |
-
// "name":value pair
|
672 |
-
$key = $this->decode($parts[1]);
|
673 |
-
$val = $this->decode($parts[2]);
|
674 |
-
|
675 |
-
if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
|
676 |
-
$obj[$key] = $val;
|
677 |
-
} else {
|
678 |
-
$obj->$key = $val;
|
679 |
-
}
|
680 |
-
} elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
|
681 |
-
// name:value pair, where name is unquoted
|
682 |
-
$key = $parts[1];
|
683 |
-
$val = $this->decode($parts[2]);
|
684 |
-
|
685 |
-
if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
|
686 |
-
$obj[$key] = $val;
|
687 |
-
} else {
|
688 |
-
$obj->$key = $val;
|
689 |
-
}
|
690 |
-
}
|
691 |
-
|
692 |
-
}
|
693 |
-
|
694 |
-
} elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
|
695 |
-
// found a quote, and we are not inside a string
|
696 |
-
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
|
697 |
-
//print("Found start of string at {$c}\n");
|
698 |
-
|
699 |
-
} elseif (($chrs{$c} == $top['delim']) &&
|
700 |
-
($top['what'] == SERVICES_JSON_IN_STR) &&
|
701 |
-
((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
|
702 |
-
// found a quote, we're in a string, and it's not escaped
|
703 |
-
// we know that it's not escaped becase there is _not_ an
|
704 |
-
// odd number of backslashes at the end of the string so far
|
705 |
-
array_pop($stk);
|
706 |
-
//print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
|
707 |
-
|
708 |
-
} elseif (($chrs{$c} == '[') &&
|
709 |
-
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
710 |
-
// found a left-bracket, and we are in an array, object, or slice
|
711 |
-
array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
|
712 |
-
//print("Found start of array at {$c}\n");
|
713 |
-
|
714 |
-
} elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
|
715 |
-
// found a right-bracket, and we're in an array
|
716 |
-
array_pop($stk);
|
717 |
-
//print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
718 |
-
|
719 |
-
} elseif (($chrs{$c} == '{') &&
|
720 |
-
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
721 |
-
// found a left-brace, and we are in an array, object, or slice
|
722 |
-
array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
|
723 |
-
//print("Found start of object at {$c}\n");
|
724 |
-
|
725 |
-
} elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
|
726 |
-
// found a right-brace, and we're in an object
|
727 |
-
array_pop($stk);
|
728 |
-
//print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
729 |
-
|
730 |
-
} elseif (($substr_chrs_c_2 == '/*') &&
|
731 |
-
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
732 |
-
// found a comment start, and we are in an array, object, or slice
|
733 |
-
array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false));
|
734 |
-
$c++;
|
735 |
-
//print("Found start of comment at {$c}\n");
|
736 |
-
|
737 |
-
} elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) {
|
738 |
-
// found a comment end, and we're in one now
|
739 |
-
array_pop($stk);
|
740 |
-
$c++;
|
741 |
-
|
742 |
-
for ($i = $top['where']; $i <= $c; ++$i)
|
743 |
-
$chrs = substr_replace($chrs, ' ', $i, 1);
|
744 |
-
|
745 |
-
//print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
746 |
-
|
747 |
-
}
|
748 |
-
|
749 |
-
}
|
750 |
-
|
751 |
-
if (reset($stk) == SERVICES_JSON_IN_ARR) {
|
752 |
-
return $arr;
|
753 |
-
|
754 |
-
} elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
|
755 |
-
return $obj;
|
756 |
-
|
757 |
-
}
|
758 |
-
|
759 |
-
}
|
760 |
-
}
|
761 |
-
}
|
762 |
-
|
763 |
-
/**
|
764 |
-
* @todo Ultimately, this should just call PEAR::isError()
|
765 |
-
*/
|
766 |
-
function isError($data, $code = null)
|
767 |
-
{
|
768 |
-
if (class_exists('pear')) {
|
769 |
-
return PEAR::isError($data, $code);
|
770 |
-
} elseif (is_object($data) && (get_class($data) == 'services_json_error' ||
|
771 |
-
is_subclass_of($data, 'services_json_error'))) {
|
772 |
-
return true;
|
773 |
-
}
|
774 |
-
|
775 |
-
return false;
|
776 |
-
}
|
777 |
-
}
|
778 |
-
|
779 |
-
if (class_exists('PEAR_Error')) {
|
780 |
-
|
781 |
-
class Services_JSON_Error extends PEAR_Error
|
782 |
-
{
|
783 |
-
function Services_JSON_Error($message = 'unknown error', $code = null,
|
784 |
-
$mode = null, $options = null, $userinfo = null)
|
785 |
-
{
|
786 |
-
parent::PEAR_Error($message, $code, $mode, $options, $userinfo);
|
787 |
-
}
|
788 |
-
}
|
789 |
-
|
790 |
-
} else {
|
791 |
-
|
792 |
-
/**
|
793 |
-
* @todo Ultimately, this class shall be descended from PEAR_Error
|
794 |
-
*/
|
795 |
-
class Services_JSON_Error
|
796 |
-
{
|
797 |
-
function Services_JSON_Error($message = 'unknown error', $code = null,
|
798 |
-
$mode = null, $options = null, $userinfo = null)
|
799 |
-
{
|
800 |
-
|
801 |
-
}
|
802 |
-
}
|
803 |
-
|
804 |
-
}
|
805 |
-
|
806 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/readme_de.txt
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WPlize [Klasse]
|
3 |
-
*
|
4 |
-
* Updaten, Setzen, Holen und Löschen von Optionen in WordPress
|
5 |
-
*
|
6 |
-
* WPlize gruppiert und verwaltet alle Optionen eines Plugins bzw.
|
7 |
-
* Themes in einem einzigen Optionsfeld. Die Anzahl der
|
8 |
-
* Datenbankabfragen und somit die Ladezeit des Blogs können sich
|
9 |
-
* sich enorm verringern. WPlize richtet sich an die Entwickler
|
10 |
-
* von WordPress-Plugins und -Themes.
|
11 |
-
*
|
12 |
-
* @package WPlize.php
|
13 |
-
* @author Sergej Müller und Frank Bültge
|
14 |
-
* @since 26.09.2008
|
15 |
-
* @change 10.11.2008 15:41:36
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
|
19 |
-
|
20 |
-
/*****************************************************************/
|
21 |
-
/* EINBINDEN */
|
22 |
-
/*****************************************************************/
|
23 |
-
|
24 |
-
if ( !class_exists('WPlize') ) {
|
25 |
-
require_once('WPlize.php');
|
26 |
-
}
|
27 |
-
|
28 |
-
|
29 |
-
/*****************************************************************/
|
30 |
-
/* BEISPIELE */
|
31 |
-
/*****************************************************************/
|
32 |
-
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Multi-Option initialisieren
|
36 |
-
*
|
37 |
-
* @param string Name der Multi-Option
|
38 |
-
* @param array Array mit Anfangswerten [optional]
|
39 |
-
*/
|
40 |
-
|
41 |
-
$WPlize = new WPlize(
|
42 |
-
'my_plugin',
|
43 |
-
array(
|
44 |
-
'my_key' => 'my_value',
|
45 |
-
'your_key' => 'your_value'
|
46 |
-
)
|
47 |
-
);
|
48 |
-
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Option updaten [Variante 1]
|
52 |
-
*
|
53 |
-
* @param string Name der Option
|
54 |
-
* @param string Wert der Option
|
55 |
-
*/
|
56 |
-
|
57 |
-
$WPlize->update_option('my_key', 'simple_value');
|
58 |
-
|
59 |
-
|
60 |
-
/**
|
61 |
-
* Option updaten [Variante 2]
|
62 |
-
*
|
63 |
-
* @param array Array mit Optionspaaren
|
64 |
-
*/
|
65 |
-
|
66 |
-
$WPlize->update_option(
|
67 |
-
array(
|
68 |
-
'my_key' => 'my_value',
|
69 |
-
'your_key' => 'simple_value'
|
70 |
-
)
|
71 |
-
);
|
72 |
-
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Option auslesen
|
76 |
-
*
|
77 |
-
* @param string Name der Option
|
78 |
-
* @return mixed Wert der Option [false im Fehlerfall]
|
79 |
-
*/
|
80 |
-
|
81 |
-
$WPlize->get_option('your_key');
|
82 |
-
|
83 |
-
|
84 |
-
/**
|
85 |
-
* Multi-Option entfernen
|
86 |
-
*/
|
87 |
-
|
88 |
-
$WPlize->delete_option();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/readme_en.txt
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WPlize [class]
|
3 |
-
*
|
4 |
-
* update, set, get and delete options in WordPress
|
5 |
-
*
|
6 |
-
* WPlize regroups and manages all options of a plugin or
|
7 |
-
* theme in one option field. The amount of database queries
|
8 |
-
* can be reduced and therefore the loading time of blogs
|
9 |
-
* can be improved enormously. WPlize is designed for
|
10 |
-
* developers of WordPress themes or plugins.
|
11 |
-
*
|
12 |
-
* @package WPlize.php
|
13 |
-
* @author Sergej Müller and Frank Bültge
|
14 |
-
* @since 26.09.2008
|
15 |
-
* @change 26.09.2008
|
16 |
-
* @access public
|
17 |
-
*/
|
18 |
-
|
19 |
-
|
20 |
-
/*****************************************************************/
|
21 |
-
/* EMBEDDING */
|
22 |
-
/*****************************************************************/
|
23 |
-
|
24 |
-
if ( !class_exists('WPlize') ) {
|
25 |
-
require_once('WPlize.php');
|
26 |
-
}
|
27 |
-
|
28 |
-
|
29 |
-
/*****************************************************************/
|
30 |
-
/* EXAMPLE */
|
31 |
-
/*****************************************************************/
|
32 |
-
|
33 |
-
|
34 |
-
/**
|
35 |
-
* init multi-option
|
36 |
-
*
|
37 |
-
* @param string Title of the multi-option
|
38 |
-
* @param array Array with startvalues [optional]
|
39 |
-
*/
|
40 |
-
|
41 |
-
$WPlize = new WPlize(
|
42 |
-
'my_plugin',
|
43 |
-
array(
|
44 |
-
'my_key' => 'my_value',
|
45 |
-
'your_key' => 'your_value'
|
46 |
-
)
|
47 |
-
);
|
48 |
-
|
49 |
-
|
50 |
-
/**
|
51 |
-
* update option [alternative 1]
|
52 |
-
*
|
53 |
-
* @param string Title of the option
|
54 |
-
* @param string Value of the option
|
55 |
-
*/
|
56 |
-
|
57 |
-
$WPlize->update_option('my_key', 'simple_value');
|
58 |
-
|
59 |
-
|
60 |
-
/**
|
61 |
-
* update option [alternative 2]
|
62 |
-
*
|
63 |
-
* @param array Array with optionscouple
|
64 |
-
*/
|
65 |
-
|
66 |
-
$WPlize->update_option(
|
67 |
-
array(
|
68 |
-
'my_key' => 'my_value',
|
69 |
-
'your_key' => 'simple_value'
|
70 |
-
)
|
71 |
-
);
|
72 |
-
|
73 |
-
|
74 |
-
/**
|
75 |
-
* read option
|
76 |
-
*
|
77 |
-
* @param string Name of the option
|
78 |
-
* @return mixed Value of the option [false on error]
|
79 |
-
*/
|
80 |
-
|
81 |
-
$WPlize->get_option('your_key');
|
82 |
-
|
83 |
-
|
84 |
-
/**
|
85 |
-
* delete multi-option
|
86 |
-
*/
|
87 |
-
|
88 |
-
$WPlize->delete_option();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/recaptchalib.php
DELETED
@@ -1,277 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* This is a PHP library that handles calling reCAPTCHA.
|
4 |
-
* - Documentation and latest version
|
5 |
-
* http://recaptcha.net/plugins/php/
|
6 |
-
* - Get a reCAPTCHA API Key
|
7 |
-
* https://www.google.com/recaptcha/admin/create
|
8 |
-
* - Discussion group
|
9 |
-
* http://groups.google.com/group/recaptcha
|
10 |
-
*
|
11 |
-
* Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
|
12 |
-
* AUTHORS:
|
13 |
-
* Mike Crawford
|
14 |
-
* Ben Maurer
|
15 |
-
*
|
16 |
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
17 |
-
* of this software and associated documentation files (the "Software"), to deal
|
18 |
-
* in the Software without restriction, including without limitation the rights
|
19 |
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
20 |
-
* copies of the Software, and to permit persons to whom the Software is
|
21 |
-
* furnished to do so, subject to the following conditions:
|
22 |
-
*
|
23 |
-
* The above copyright notice and this permission notice shall be included in
|
24 |
-
* all copies or substantial portions of the Software.
|
25 |
-
*
|
26 |
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
27 |
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
28 |
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
29 |
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
30 |
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
31 |
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
32 |
-
* THE SOFTWARE.
|
33 |
-
*/
|
34 |
-
|
35 |
-
/**
|
36 |
-
* The reCAPTCHA server URL's
|
37 |
-
*/
|
38 |
-
define("WSD_RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api");
|
39 |
-
define("WSD_RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api");
|
40 |
-
define("WSD_RECAPTCHA_VERIFY_SERVER", "www.google.com");
|
41 |
-
|
42 |
-
/**
|
43 |
-
* Encodes the given data into a query string format
|
44 |
-
* @param $data - array of string elements to be encoded
|
45 |
-
* @return string - encoded request
|
46 |
-
*/
|
47 |
-
function wsd__recaptcha_qsencode ($data) {
|
48 |
-
$req = "";
|
49 |
-
foreach ( $data as $key => $value )
|
50 |
-
$req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
|
51 |
-
|
52 |
-
// Cut the last '&'
|
53 |
-
$req=substr($req,0,strlen($req)-1);
|
54 |
-
return $req;
|
55 |
-
}
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
/**
|
60 |
-
* Submits an HTTP POST to a reCAPTCHA server
|
61 |
-
* @param string $host
|
62 |
-
* @param string $path
|
63 |
-
* @param array $data
|
64 |
-
* @param int port
|
65 |
-
* @return array response
|
66 |
-
*/
|
67 |
-
function wsd__recaptcha_http_post($host, $path, $data, $port = 80) {
|
68 |
-
|
69 |
-
$req = wsd__recaptcha_qsencode ($data);
|
70 |
-
|
71 |
-
$http_request = "POST $path HTTP/1.0\r\n";
|
72 |
-
$http_request .= "Host: $host\r\n";
|
73 |
-
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
|
74 |
-
$http_request .= "Content-Length: " . strlen($req) . "\r\n";
|
75 |
-
$http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
|
76 |
-
$http_request .= "\r\n";
|
77 |
-
$http_request .= $req;
|
78 |
-
|
79 |
-
$response = '';
|
80 |
-
if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
|
81 |
-
die ('Could not open socket');
|
82 |
-
}
|
83 |
-
|
84 |
-
fwrite($fs, $http_request);
|
85 |
-
|
86 |
-
while ( !feof($fs) )
|
87 |
-
$response .= fgets($fs, 1160); // One TCP-IP packet
|
88 |
-
fclose($fs);
|
89 |
-
$response = explode("\r\n\r\n", $response, 2);
|
90 |
-
|
91 |
-
return $response;
|
92 |
-
}
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
/**
|
97 |
-
* Gets the challenge HTML (javascript and non-javascript version).
|
98 |
-
* This is called from the browser, and the resulting reCAPTCHA HTML widget
|
99 |
-
* is embedded within the HTML form it was called from.
|
100 |
-
* @param string $pubkey A public key for reCAPTCHA
|
101 |
-
* @param string $error The error given by reCAPTCHA (optional, default is null)
|
102 |
-
* @param boolean $use_ssl Should the request be made over ssl? (optional, default is false)
|
103 |
-
|
104 |
-
* @return string - The HTML to be embedded in the user's form.
|
105 |
-
*/
|
106 |
-
function wsd_recaptcha_get_html ($pubkey, $error = null, $use_ssl = false)
|
107 |
-
{
|
108 |
-
if ($pubkey == null || $pubkey == '') {
|
109 |
-
die ('To use reCAPTCHA you must get an API key from <a href="https://www.google.com/recaptcha/admin/create" target="_blank">https://www.google.com/recaptcha/admin/create</a>');
|
110 |
-
}
|
111 |
-
|
112 |
-
if ($use_ssl) {
|
113 |
-
$server = WSD_RECAPTCHA_API_SECURE_SERVER;
|
114 |
-
} else {
|
115 |
-
$server = WSD_RECAPTCHA_API_SERVER;
|
116 |
-
}
|
117 |
-
|
118 |
-
$errorpart = "";
|
119 |
-
if ($error) {
|
120 |
-
$errorpart = "&error=" . $error;
|
121 |
-
}
|
122 |
-
return '<script type="text/javascript" src="'. $server . '/challenge?k=' . $pubkey . $errorpart . '"></script>
|
123 |
-
|
124 |
-
<noscript>
|
125 |
-
<iframe src="'. $server . '/noscript?k=' . $pubkey . $errorpart . '" height="300" width="500" frameborder="0"></iframe><br/>
|
126 |
-
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
|
127 |
-
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
|
128 |
-
</noscript>';
|
129 |
-
}
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
/**
|
135 |
-
* A wsd_ReCaptchaResponse is returned from wsd_recaptcha_check_answer()
|
136 |
-
*/
|
137 |
-
class wsd_ReCaptchaResponse {
|
138 |
-
var $is_valid;
|
139 |
-
var $error;
|
140 |
-
}
|
141 |
-
|
142 |
-
|
143 |
-
/**
|
144 |
-
* Calls an HTTP POST function to verify if the user's guess was correct
|
145 |
-
* @param string $privkey
|
146 |
-
* @param string $remoteip
|
147 |
-
* @param string $challenge
|
148 |
-
* @param string $response
|
149 |
-
* @param array $extra_params an array of extra variables to post to the server
|
150 |
-
* @return wsd_ReCaptchaResponse
|
151 |
-
*/
|
152 |
-
function wsd_recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array())
|
153 |
-
{
|
154 |
-
if ($privkey == null || $privkey == '') {
|
155 |
-
die ('To use reCAPTCHA you must get an API key from <a href="https://www.google.com/recaptcha/admin/create" target="_blank">https://www.google.com/recaptcha/admin/create</a>');
|
156 |
-
}
|
157 |
-
|
158 |
-
if ($remoteip == null || $remoteip == '') {
|
159 |
-
die ('For security reasons, you must pass the remote ip to reCAPTCHA');
|
160 |
-
}
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
//discard spam submissions
|
165 |
-
if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
|
166 |
-
$recaptcha_response = new wsd_ReCaptchaResponse();
|
167 |
-
$recaptcha_response->is_valid = false;
|
168 |
-
$recaptcha_response->error = 'incorrect-captcha-sol';
|
169 |
-
return $recaptcha_response;
|
170 |
-
}
|
171 |
-
|
172 |
-
$response = wsd__recaptcha_http_post (WSD_RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify",
|
173 |
-
array (
|
174 |
-
'privatekey' => $privkey,
|
175 |
-
'remoteip' => $remoteip,
|
176 |
-
'challenge' => $challenge,
|
177 |
-
'response' => $response
|
178 |
-
) + $extra_params
|
179 |
-
);
|
180 |
-
|
181 |
-
$answers = explode ("\n", $response [1]);
|
182 |
-
$recaptcha_response = new wsd_ReCaptchaResponse();
|
183 |
-
|
184 |
-
if (trim ($answers [0]) == 'true') {
|
185 |
-
$recaptcha_response->is_valid = true;
|
186 |
-
}
|
187 |
-
else {
|
188 |
-
$recaptcha_response->is_valid = false;
|
189 |
-
$recaptcha_response->error = $answers [1];
|
190 |
-
}
|
191 |
-
return $recaptcha_response;
|
192 |
-
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* gets a URL where the user can sign up for reCAPTCHA. If your application
|
197 |
-
* has a configuration page where you enter a key, you should provide a link
|
198 |
-
* using this function.
|
199 |
-
* @param string $domain The domain where the page is hosted
|
200 |
-
* @param string $appname The name of your application
|
201 |
-
*/
|
202 |
-
function wsd_recaptcha_get_signup_url ($domain = null, $appname = null) {
|
203 |
-
return 'https://www.google.com/recaptcha/admin/create?' . wsd__recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname));
|
204 |
-
}
|
205 |
-
|
206 |
-
function wsd__recaptcha_aes_pad($val) {
|
207 |
-
$block_size = 16;
|
208 |
-
$numpad = $block_size - (strlen ($val) % $block_size);
|
209 |
-
return str_pad($val, strlen ($val) + $numpad, chr($numpad));
|
210 |
-
}
|
211 |
-
|
212 |
-
/* Mailhide related code */
|
213 |
-
|
214 |
-
function wsd__recaptcha_aes_encrypt($val,$ky) {
|
215 |
-
if (! function_exists ("mcrypt_encrypt")) {
|
216 |
-
die ('To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed.');
|
217 |
-
}
|
218 |
-
$mode=MCRYPT_MODE_CBC;
|
219 |
-
$enc=MCRYPT_RIJNDAEL_128;
|
220 |
-
$val=wsd__recaptcha_aes_pad($val);
|
221 |
-
return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
|
222 |
-
}
|
223 |
-
|
224 |
-
|
225 |
-
function wsd__wsd_recaptcha_mailhide_urlbase64 ($x) {
|
226 |
-
return strtr(base64_encode ($x), '+/', '-_');
|
227 |
-
}
|
228 |
-
|
229 |
-
/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */
|
230 |
-
function wsd_recaptcha_mailhide_url($pubkey, $privkey, $email) {
|
231 |
-
if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) {
|
232 |
-
die ('To use reCAPTCHA Mailhide, you have to sign up for a public and private key, ' .
|
233 |
-
'you can do so at <a href="http://www.google.com/recaptcha/mailhide/apikey" target="_blank">http://www.google.com/recaptcha/mailhide/apikey</a>');
|
234 |
-
}
|
235 |
-
|
236 |
-
|
237 |
-
$ky = pack('H*', $privkey);
|
238 |
-
$cryptmail = wsd__recaptcha_aes_encrypt ($email, $ky);
|
239 |
-
|
240 |
-
return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . wsd__wsd_recaptcha_mailhide_urlbase64 ($cryptmail);
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* gets the parts of the email to expose to the user.
|
245 |
-
* eg, given johndoe@example,com return ["john", "example.com"].
|
246 |
-
* the email is then displayed as john...@example.com
|
247 |
-
*/
|
248 |
-
function wsd__recaptcha_mailhide_email_parts ($email) {
|
249 |
-
$arr = preg_split("/@/", $email );
|
250 |
-
|
251 |
-
if (strlen ($arr[0]) <= 4) {
|
252 |
-
$arr[0] = substr ($arr[0], 0, 1);
|
253 |
-
} else if (strlen ($arr[0]) <= 6) {
|
254 |
-
$arr[0] = substr ($arr[0], 0, 3);
|
255 |
-
} else {
|
256 |
-
$arr[0] = substr ($arr[0], 0, 4);
|
257 |
-
}
|
258 |
-
return $arr;
|
259 |
-
}
|
260 |
-
|
261 |
-
/**
|
262 |
-
* Gets html to display an email address given a public an private key.
|
263 |
-
* to get a key, go to:
|
264 |
-
*
|
265 |
-
* http://www.google.com/recaptcha/mailhide/apikey
|
266 |
-
*/
|
267 |
-
function wsd_recaptcha_mailhide_html($pubkey, $privkey, $email) {
|
268 |
-
$emailparts = wsd__recaptcha_mailhide_email_parts ($email);
|
269 |
-
$url = wsd_recaptcha_mailhide_url ($pubkey, $privkey, $email);
|
270 |
-
|
271 |
-
return htmlentities($emailparts[0]) . "<a href='" . htmlentities ($url) .
|
272 |
-
"' onclick=\"window.open('" . htmlentities ($url) . "', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" . htmlentities ($emailparts [1]);
|
273 |
-
|
274 |
-
}
|
275 |
-
|
276 |
-
|
277 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/swUtil.php
DELETED
@@ -1,169 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* utility methods
|
4 |
-
*
|
5 |
-
* @author kos
|
6 |
-
*/
|
7 |
-
class swUtil
|
8 |
-
{
|
9 |
-
//@since v2.0.6
|
10 |
-
private static $_pluginID = 'acx_plugin_dashboard_widget';
|
11 |
-
/**
|
12 |
-
* @public
|
13 |
-
* @static
|
14 |
-
* @since v0.1
|
15 |
-
* @global SWP_WSD_BLOG_FEED
|
16 |
-
*
|
17 |
-
* Retrieve and display a list of links for an existing RSS feed, limiting the selection to the 5 most recent items.
|
18 |
-
*
|
19 |
-
* @return void
|
20 |
-
*/
|
21 |
-
public static function displayDashboardWidget()
|
22 |
-
{
|
23 |
-
// @since v2.0.6
|
24 |
-
if ($_SERVER['REQUEST_METHOD'] == 'POST')
|
25 |
-
{
|
26 |
-
$opt = get_option('WSD-RSS-WGT-DISPLAY');
|
27 |
-
if (empty($opt)) {
|
28 |
-
add_option('WSD-RSS-WGT-DISPLAY', 'no');
|
29 |
-
}
|
30 |
-
else {
|
31 |
-
update_option('WSD-RSS-WGT-DISPLAY', 'no');
|
32 |
-
}
|
33 |
-
self::_hideDashboardWidget();
|
34 |
-
return;
|
35 |
-
}
|
36 |
-
|
37 |
-
//@ flag
|
38 |
-
$run = false;
|
39 |
-
|
40 |
-
//@ check cache
|
41 |
-
$optData = get_option('wsd_feed_data');
|
42 |
-
if (! empty($optData))
|
43 |
-
{
|
44 |
-
if (is_object($optData))
|
45 |
-
{
|
46 |
-
|
47 |
-
$lastUpdateTime = @$optData->expires;
|
48 |
-
// invalid cache
|
49 |
-
if (empty($lastUpdateTime)) { $run = true; }
|
50 |
-
else
|
51 |
-
{
|
52 |
-
$nextUpdateTime = $lastUpdateTime+(24*60*60);
|
53 |
-
if ($nextUpdateTime >= $lastUpdateTime)
|
54 |
-
{
|
55 |
-
$data = @$optData->data;
|
56 |
-
if (empty($data)) { $run = true; }
|
57 |
-
else {
|
58 |
-
// still a valid cache
|
59 |
-
echo $data;
|
60 |
-
return;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
else { $run = true; }
|
64 |
-
}
|
65 |
-
}
|
66 |
-
else { $run = true; }
|
67 |
-
}
|
68 |
-
else { $run = true; }
|
69 |
-
|
70 |
-
if (!$run) { return; }
|
71 |
-
|
72 |
-
$rss = fetch_feed(SWP_WSD_BLOG_FEED);
|
73 |
-
|
74 |
-
$out = '';
|
75 |
-
if (is_wp_error( $rss ) )
|
76 |
-
{
|
77 |
-
$out = '<li>'.__('An error has occurred while trying to load the rss feed!').'</li>';
|
78 |
-
echo $out;
|
79 |
-
return;
|
80 |
-
}
|
81 |
-
else
|
82 |
-
{
|
83 |
-
// Limit to 5 entries.
|
84 |
-
$maxitems = $rss->get_item_quantity(5);
|
85 |
-
|
86 |
-
// Build an array of all the items,
|
87 |
-
$rss_items = $rss->get_items(0, $maxitems);
|
88 |
-
|
89 |
-
$out .= '<ul>';
|
90 |
-
if ($maxitems == 0)
|
91 |
-
{
|
92 |
-
$out.= '<li>'.__('There are no entries for this rss feed!').'</li>';
|
93 |
-
}
|
94 |
-
else
|
95 |
-
{
|
96 |
-
foreach ( $rss_items as $item ) :
|
97 |
-
$url = esc_url($item->get_permalink());
|
98 |
-
$out.= '<li>';
|
99 |
-
$out.= '<h4><a href="'.$url.'" target="_blank" title="Posted on '.$item->get_date('F j, Y | g:i a').'">';
|
100 |
-
$out.= esc_html( $item->get_title() );
|
101 |
-
$out.= '</a></h4>';
|
102 |
-
$out.= '<p>';
|
103 |
-
$d = $item->get_description();
|
104 |
-
$p = substr($d, 0, 115).' <a href="'.$url.'" target="_blank" title="Read all article">[...]</a>';
|
105 |
-
$out.= $p;
|
106 |
-
$out.= '</p>';
|
107 |
-
$out.= '</li>';
|
108 |
-
endforeach;
|
109 |
-
}
|
110 |
-
$out.= '</ul>';
|
111 |
-
|
112 |
-
$path = trailingslashit(get_option('siteurl')).'wp-content/plugins/secure-wordpress/';
|
113 |
-
|
114 |
-
$out .= '<div style="border-top: solid 1px #ccc; margin-top: 4px; padding: 2px 0;">';
|
115 |
-
$out .= '<p style="margin: 5px 0 0 0; padding: 0 0; line-height: normal; overflow: hidden;">';
|
116 |
-
$out .= '<a href="http://feeds.feedburner.com/Websitedefendercom"
|
117 |
-
style="float: left; display: block; width: 50%; text-align: right; margin-left: 30px;
|
118 |
-
padding-right: 22px; background: url('.$path.'img/rss.png) no-repeat right center;"
|
119 |
-
target="_blank">Follow us on RSS</a>';
|
120 |
-
$out .= '<a href="#" id="wsd_close_rss_widget"
|
121 |
-
style="float: right; display: block; width: 16px; height: 16px;
|
122 |
-
margin: 0 0; background: url('.$path.'img/close-button.png) no-repeat 0 0;"
|
123 |
-
title="Close widget"></a><form id="wsd_form" method="post"></form>';
|
124 |
-
$out .= '</p>';
|
125 |
-
$out .= '<script type="text/javascript">
|
126 |
-
document.getElementById("wsd_close_rss_widget").onclick = function(){
|
127 |
-
document.getElementById("wsd_form").submit();
|
128 |
-
};
|
129 |
-
</script>';
|
130 |
-
$out .= '</div>';
|
131 |
-
}
|
132 |
-
|
133 |
-
// Update cache
|
134 |
-
$obj = new stdClass();
|
135 |
-
$obj->expires = time();
|
136 |
-
$obj->data = $out;
|
137 |
-
update_option('wsd_feed_data', $obj);
|
138 |
-
|
139 |
-
echo $out;
|
140 |
-
}
|
141 |
-
|
142 |
-
/**
|
143 |
-
* @public
|
144 |
-
* @static
|
145 |
-
* Add the rss widget to dashboard
|
146 |
-
* @return void
|
147 |
-
*/
|
148 |
-
public static function addDashboardWidget()
|
149 |
-
{
|
150 |
-
// update 10/04/2011
|
151 |
-
$opt = get_option('WSD-RSS-WGT-DISPLAY');
|
152 |
-
if(strtolower($opt) == 'yes'):
|
153 |
-
wp_add_dashboard_widget(self::$_pluginID,
|
154 |
-
__('WebsiteDefender news and updates'),
|
155 |
-
'swUtil::displayDashboardWidget');
|
156 |
-
endif;
|
157 |
-
}
|
158 |
-
/**
|
159 |
-
* Hide the dashboard rss widget
|
160 |
-
* @static
|
161 |
-
* @public
|
162 |
-
* @since v2.0.6
|
163 |
-
*/
|
164 |
-
public static function _hideDashboardWidget()
|
165 |
-
{
|
166 |
-
echo '<script>document.getElementById("'.self::$_pluginID.'").style.display = "none";</script>';
|
167 |
-
}
|
168 |
-
|
169 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/swWSD.php
DELETED
@@ -1,857 +0,0 @@
|
|
1 |
-
<?php if (!defined('ABSPATH')) { exit; }
|
2 |
-
/**
|
3 |
-
* Facilitates the login/register with websitedefender.com for website scanner.
|
4 |
-
*
|
5 |
-
* @author WebsiteDefender
|
6 |
-
* $rev #1 07/16/2011 {c}$
|
7 |
-
* $rev #2 07/21/2011 {c}$
|
8 |
-
* $rev #3 09/20/2011 {c}$
|
9 |
-
* $rev #4 09/30/2011 {c}$
|
10 |
-
*/
|
11 |
-
class swWSD
|
12 |
-
{
|
13 |
-
const WSD_URL = 'https://dashboard.websitedefender.com/';
|
14 |
-
const WSD_URL_RPC = 'https://dashboard.websitedefender.com/jsrpc.php';
|
15 |
-
const WSD_URL_DOWN = 'https://dashboard.websitedefender.com/download.php';
|
16 |
-
const WSD_SOURCE = 3;
|
17 |
-
//error codes
|
18 |
-
const WSD_ERROR_LIMITATION = 0x27;
|
19 |
-
const WSD_ERROR_WPP_SERVICE_DOWN = 0x50;
|
20 |
-
const WSD_ERROR_WPP_ERROR_INVALID_URL = 0x51;
|
21 |
-
const WSD_ERROR_WPP_URL_REGISTERED = 0x52;
|
22 |
-
const WSD_WSD_ERROR_WPP_NEWUSR_PARAM = 0x53;
|
23 |
-
const WSD_ERROR_WPP_INVALID_CAPTCHA =0x54 ;
|
24 |
-
const WSD_ERROR_WPP_USER_EXIST = 0x55;
|
25 |
-
const WSD_ERROR_WPP_URL_EXIST = 0x56;
|
26 |
-
//http status
|
27 |
-
const HTTP_STATUS = 0;
|
28 |
-
const HTTP_HEADERS = 1;
|
29 |
-
const HTTP_BODY = 2;
|
30 |
-
const HTTP_CHUNK_HEADER = 3;
|
31 |
-
const HTTP_CHUNK_BODY = 4;
|
32 |
-
|
33 |
-
|
34 |
-
// constructor
|
35 |
-
public function __construct() {}
|
36 |
-
|
37 |
-
|
38 |
-
function wsd_site_url(){
|
39 |
-
$url = get_option( 'siteurl' );
|
40 |
-
return trailingslashit($url);
|
41 |
-
}
|
42 |
-
|
43 |
-
function wsd_parseUrl($url)
|
44 |
-
{
|
45 |
-
$result = parse_url($url);
|
46 |
-
if($result === null) { return array("error"=>"Invalid URL."); }
|
47 |
-
$result["error"] = null;
|
48 |
-
if(!array_key_exists("port", $result)) {$result["port"] = 80;}
|
49 |
-
if(!array_key_exists("scheme", $result)) {$result["scheme"] = "http";}
|
50 |
-
if(!array_key_exists("query", $result)) {$result["query"] = "";}
|
51 |
-
else {$result["query"] = "?" . $result["query"];}
|
52 |
-
if(array_key_exists("host", $result))
|
53 |
-
{
|
54 |
-
if(!array_key_exists("path", $result)) $result["path"] = "";
|
55 |
-
}
|
56 |
-
else
|
57 |
-
{
|
58 |
-
if(array_key_exists("path", $result))
|
59 |
-
{
|
60 |
-
$dirs = explode("/", $result["path"], 2);
|
61 |
-
$result["host"] = $dirs[0];
|
62 |
-
if(count($dirs)>1) {
|
63 |
-
$result["path"] = "/".$dirs[1];
|
64 |
-
}
|
65 |
-
else {$result["path"] = "/";}
|
66 |
-
}
|
67 |
-
else {return array("error"=>"Invalid URL (no host).");}
|
68 |
-
}
|
69 |
-
|
70 |
-
if($result["host"] == "") {return array("error"=>"Invalid URL (no host).");}
|
71 |
-
|
72 |
-
$scheme = "http";
|
73 |
-
if(array_key_exists("scheme", $result)) {$scheme = $result["scheme"];}
|
74 |
-
|
75 |
-
if((strcasecmp($scheme,"http")!=0) && (strcasecmp($scheme,"https")!=0)) {return array("error"=>"Invalid URL (unknown scheme).");}
|
76 |
-
|
77 |
-
if(strcasecmp($scheme,"https")==0) $result["port"] = 443;
|
78 |
-
|
79 |
-
$userPass = "";
|
80 |
-
if(array_key_exists("user", $result) && array_key_exists("pass", $result)) {
|
81 |
-
$userPass = $result["user"].":".$result["pass"]."@";
|
82 |
-
}
|
83 |
-
|
84 |
-
$port = "";
|
85 |
-
if(array_key_exists("port", $result)) {$port = ":".$result["port"];}
|
86 |
-
|
87 |
-
$result["all"] = $scheme."://".$userPass.$result["host"].$port;
|
88 |
-
|
89 |
-
return $result;
|
90 |
-
}
|
91 |
-
|
92 |
-
function wsd_httpRequest($verb, $url, $body="", $headers=array(), $timeout = 10)
|
93 |
-
{
|
94 |
-
$e = error_reporting(0);
|
95 |
-
|
96 |
-
$result = array();
|
97 |
-
$result["cookie"] = null;
|
98 |
-
$result["body"] = "";
|
99 |
-
$result["length"] = null;
|
100 |
-
$result["error"] = null;
|
101 |
-
|
102 |
-
$now = time();
|
103 |
-
$url = $this->wsd_parseUrl($url);
|
104 |
-
|
105 |
-
if($url["error"] !== null) {return $url;}
|
106 |
-
|
107 |
-
$scheme = $url["scheme"]=="https" ? "ssl://" : "";
|
108 |
-
|
109 |
-
$fp = fsockopen($scheme.$url["host"], $url["port"] , $errno, $errstr, $timeout);
|
110 |
-
|
111 |
-
if (!$fp)
|
112 |
-
{
|
113 |
-
if($scheme == "ssl://")
|
114 |
-
{
|
115 |
-
$fp = fsockopen($url["host"], 80 , $errno, $errstr, $timeout);
|
116 |
-
if (!$fp)
|
117 |
-
{
|
118 |
-
error_reporting($e);
|
119 |
-
return array("error"=>"Can't connect to server [$errno]");
|
120 |
-
}
|
121 |
-
}
|
122 |
-
else
|
123 |
-
{
|
124 |
-
error_reporting($e);
|
125 |
-
return array("error"=>"Can't connect to server [$errno].");
|
126 |
-
}
|
127 |
-
}
|
128 |
-
|
129 |
-
$out = $verb." ".$url["path"].$url["query"]." HTTP/1.1\r\n";
|
130 |
-
$out .= "Host: ". $url["host"] . "\r\n";
|
131 |
-
$out .= "Connection: Close\r\n";
|
132 |
-
$out .= "Accept-Encoding: identity\r\n";
|
133 |
-
if($verb == "POST") {$out .= "Content-Length: " . strlen($body) . "\r\n"; }
|
134 |
-
foreach ($headers as $name => $value) {$out .= $name .": " . $value . "\r\n";}
|
135 |
-
$out .= "\r\n";
|
136 |
-
if($verb == "POST") {$out .= $body;}
|
137 |
-
fwrite($fp, $out);
|
138 |
-
fflush($fp);
|
139 |
-
|
140 |
-
//print "<br>".str_replace("\r\n", "<br>", $out)."<br>";
|
141 |
-
|
142 |
-
$status = self::HTTP_STATUS;
|
143 |
-
$chunked = false;
|
144 |
-
$lastChunk = "";
|
145 |
-
$chunkLength = 0;
|
146 |
-
|
147 |
-
while (!feof($fp))
|
148 |
-
{
|
149 |
-
$remaining = $timeout - (time() - $now);
|
150 |
-
if($remaining < 0) {return array("error"=>"Request timed out [1].");}
|
151 |
-
|
152 |
-
stream_set_timeout($fp, $remaining + 1);
|
153 |
-
$data = fgets($fp, 4096);
|
154 |
-
$info = stream_get_meta_data($fp);
|
155 |
-
|
156 |
-
if ($info["timed_out"])
|
157 |
-
{
|
158 |
-
error_reporting($e);
|
159 |
-
return array("error"=>"Request timed out [2].");
|
160 |
-
}
|
161 |
-
|
162 |
-
//print($data."<br>");
|
163 |
-
|
164 |
-
if($status == self::HTTP_STATUS)
|
165 |
-
{
|
166 |
-
//TODO: check status for 200, error on rest, eventually work arround 302 303
|
167 |
-
$resultStatus = trim($data);
|
168 |
-
$status = self::HTTP_HEADERS;
|
169 |
-
continue;
|
170 |
-
}
|
171 |
-
|
172 |
-
if($status == self::HTTP_HEADERS)
|
173 |
-
{
|
174 |
-
if($data == "\r\n")
|
175 |
-
{
|
176 |
-
if($chunked) {
|
177 |
-
$status = self::HTTP_CHUNK_HEADER;
|
178 |
-
}
|
179 |
-
else {$status = self::HTTP_BODY;}
|
180 |
-
|
181 |
-
continue;
|
182 |
-
}
|
183 |
-
|
184 |
-
$data = trim($data);
|
185 |
-
$separator = strpos($data, ": ");
|
186 |
-
|
187 |
-
if(($separator === false)||($separator == 0) || ($separator >= (strlen($data) -2))) {
|
188 |
-
return array("error"=>"Invalid HTTP response header.");
|
189 |
-
}
|
190 |
-
|
191 |
-
$name = substr($data, 0, $separator);
|
192 |
-
$value = substr($data, $separator + 2);
|
193 |
-
if(strcasecmp("Set-Cookie", $name) == 0)
|
194 |
-
{
|
195 |
-
$result["cookie"] = $value;
|
196 |
-
continue;
|
197 |
-
}
|
198 |
-
if(strcasecmp("Content-Length", $name) == 0)
|
199 |
-
{
|
200 |
-
$result["length"] = $value + 0;
|
201 |
-
continue;
|
202 |
-
}
|
203 |
-
if((strcasecmp("Transfer-Encoding", $name) == 0) && (strpos($value, 'chunked') !== false) )
|
204 |
-
{
|
205 |
-
$chunked = true;
|
206 |
-
continue;
|
207 |
-
}
|
208 |
-
continue;
|
209 |
-
}
|
210 |
-
|
211 |
-
if($status == self::HTTP_CHUNK_HEADER)
|
212 |
-
{
|
213 |
-
$data = trim($data);
|
214 |
-
$sc = strpos($data, ';');
|
215 |
-
if($sc !== false) {$data = substr($data, 0, $sc);}
|
216 |
-
$chunkLength = hexdec($data);
|
217 |
-
if($chunkLength == 0) {
|
218 |
-
break;
|
219 |
-
}
|
220 |
-
$lastChunk = "";
|
221 |
-
$status = self::HTTP_CHUNK_BODY;
|
222 |
-
continue;
|
223 |
-
}
|
224 |
-
|
225 |
-
if($status == self::HTTP_CHUNK_BODY)
|
226 |
-
{
|
227 |
-
$lastChunk .= $data;
|
228 |
-
if(strlen($lastChunk) >= $chunkLength)
|
229 |
-
{
|
230 |
-
$result["body"] .= substr($lastChunk, 0, $chunkLength);
|
231 |
-
$status = self::HTTP_CHUNK_HEADER;
|
232 |
-
}
|
233 |
-
continue;
|
234 |
-
}
|
235 |
-
|
236 |
-
if($status == self::HTTP_BODY)
|
237 |
-
{
|
238 |
-
$result["body"] .= $data;
|
239 |
-
if(($result["length"] !== null) && (strlen($result["body"]) >= $result["length"])) {
|
240 |
-
break;
|
241 |
-
}
|
242 |
-
continue;
|
243 |
-
}
|
244 |
-
}
|
245 |
-
fclose($fp);
|
246 |
-
|
247 |
-
if(($result["length"] !== null) && (strlen($result["body"]) != $result["length"])) {
|
248 |
-
array("error"=>"Invalid HTTP body length.");
|
249 |
-
}
|
250 |
-
|
251 |
-
error_reporting($e);
|
252 |
-
return $result;
|
253 |
-
}
|
254 |
-
|
255 |
-
function wsd_jsonHttpRequest($url, $data, $timeout = 10)
|
256 |
-
{
|
257 |
-
$body = json_encode($data);
|
258 |
-
$headers = array("Content-type" => "application/json");
|
259 |
-
|
260 |
-
$cookie = '';
|
261 |
-
$option_cookie = get_option("WSD-COOKIE");
|
262 |
-
if($option_cookie !== false) {$cookie = $option_cookie;}
|
263 |
-
|
264 |
-
$token = get_option("WSD-TOKEN");
|
265 |
-
if($token !== false)
|
266 |
-
{
|
267 |
-
if($cookie != ''){ $cookie .= '; ';}
|
268 |
-
$cookie .= "token=".$token;
|
269 |
-
}
|
270 |
-
|
271 |
-
if($cookie != '') {
|
272 |
-
$headers["Cookie"] = $cookie;
|
273 |
-
}
|
274 |
-
|
275 |
-
$result = $this->wsd_httpRequest("POST", $url, $body, $headers, $timeout);
|
276 |
-
|
277 |
-
if($result["cookie"] !== null)
|
278 |
-
{
|
279 |
-
if($option_cookie === false) {
|
280 |
-
add_option("WSD-COOKIE", $result["cookie"]);
|
281 |
-
}
|
282 |
-
else {update_option("WSD-COOKIE", $result["cookie"]);}
|
283 |
-
}
|
284 |
-
|
285 |
-
if($result["error"] === null)
|
286 |
-
{
|
287 |
-
$decoded = json_decode($result["body"], true);
|
288 |
-
if($decoded == null) {$result["error"] = "Invalid JSON response.".$result["body"];}
|
289 |
-
$result["body"] = $decoded;
|
290 |
-
}
|
291 |
-
return $result;
|
292 |
-
}
|
293 |
-
|
294 |
-
function wsd_jsonRPC($url, $method, $params, $timeout = 10)
|
295 |
-
{
|
296 |
-
$GLOBALS['wsd_last_err'] = array('code'=>0, 'message'=>'');
|
297 |
-
$id = rand(1,100);
|
298 |
-
|
299 |
-
$token = get_option("WSD-TOKEN");
|
300 |
-
if($token === false) {
|
301 |
-
$request = array("jsonrpc"=>"2.0", "id"=>$id, "method"=>$method, "params"=>$params);
|
302 |
-
}
|
303 |
-
else {$request = array("jsonrpc"=>"2.0", "id"=>$id, "method"=>$method, "params"=>$params, "token"=>$token);}
|
304 |
-
|
305 |
-
$response = $this->wsd_jsonHttpRequest($url, $request, $timeout);
|
306 |
-
|
307 |
-
//print("request:");print_r($request); print("<hr>"); print("response:");print_r($response); print("<hr>");
|
308 |
-
|
309 |
-
if($response["error"] !== null)
|
310 |
-
{
|
311 |
-
$GLOBALS['wsd_last_err'] = array("code" => 0, "message" => $response["error"]);
|
312 |
-
return null;
|
313 |
-
}
|
314 |
-
|
315 |
-
if((! array_key_exists("id", $response["body"])) || ($response["body"]["id"] != $id) )
|
316 |
-
{
|
317 |
-
$GLOBALS['wsd_last_err'] = array("code" => 0, "message" => "Invalid JSONRPC response [0].");
|
318 |
-
return null;
|
319 |
-
}
|
320 |
-
|
321 |
-
if( array_key_exists("token", $response["body"]))
|
322 |
-
{
|
323 |
-
if($token === false) {add_option("WSD-TOKEN", $response["body"]['token']);}
|
324 |
-
else {update_option("WSD-TOKEN", $response["body"]['token']);}
|
325 |
-
}
|
326 |
-
|
327 |
-
if(array_key_exists("error", $response["body"]))
|
328 |
-
{
|
329 |
-
$GLOBALS['wsd_last_err'] = $response["body"]["error"];
|
330 |
-
return null;
|
331 |
-
}
|
332 |
-
|
333 |
-
if(! array_key_exists("result", $response["body"]))
|
334 |
-
{
|
335 |
-
$GLOBALS['wsd_last_err'] = array("code" => 0, "message" => "Invalid JSONRPC response [1].");
|
336 |
-
return null;
|
337 |
-
}
|
338 |
-
|
339 |
-
return $response["body"]["result"];
|
340 |
-
}
|
341 |
-
|
342 |
-
// ========================= RENDER UI ===========================================================
|
343 |
-
|
344 |
-
function wsd_render_error($custom_message = null)
|
345 |
-
{
|
346 |
-
$html = '';
|
347 |
-
if ($custom_message === null) {
|
348 |
-
$html = '<p class="wsd-error-summary">' . $GLOBALS['wsd_last_err']['message'];
|
349 |
-
}
|
350 |
-
else {$html = '<p class="wsd-error-summary">' . $custom_message;}
|
351 |
-
$html .= '<br /><span class="wsd-error-summary-detail">If the problem persists please continue at <a href="https://dashboard.websitedefender.com" target="_blank">Website Defender</a>.</span></p>';
|
352 |
-
echo $html;
|
353 |
-
}
|
354 |
-
|
355 |
-
function wsd_render_agent_install_issues($message)
|
356 |
-
{
|
357 |
-
//echo "wsd_render_agent_install_issues<br>";
|
358 |
-
$html = '<p class="wsd-error-summary">' . $message;
|
359 |
-
$html .= '<br /><span class="wsd-error-summary-detail">It has to be installed manually from the <a href="https://dashboard.websitedefender.com" target="_blank">WebsiteDefender dashboard</a>.</span></p>';
|
360 |
-
echo $html;
|
361 |
-
}
|
362 |
-
|
363 |
-
function wsd_render_user_login($error = '')
|
364 |
-
{
|
365 |
-
if($error !== '') {$this->wsd_render_error($error);}
|
366 |
-
?>
|
367 |
-
|
368 |
-
<?php if(!empty($error)) { ?>
|
369 |
-
<div class="wsd-inside">
|
370 |
-
<?php } ?>
|
371 |
-
|
372 |
-
<p class="wsd-login-notice">Login here if you already have a WSD account.</p>
|
373 |
-
<form action="" method="post" id="sw_wsd_login_form" name="sw_wsd_login_form">
|
374 |
-
<div>
|
375 |
-
<div class="wsd-login-section">
|
376 |
-
<label for="wsd_login_form_email">Email:</label>
|
377 |
-
<input type="text" name="wsd_login_form_email" id="wsd_login_form_email" value="<?php echo get_option("admin_email"); ?>" />
|
378 |
-
</div>
|
379 |
-
<div class="wsd-login-section">
|
380 |
-
<label for="wsd_login_form_password">Password:</label>
|
381 |
-
<input type="password" name="wsd_login_form_password" id="wsd_login_form_password" />
|
382 |
-
</div>
|
383 |
-
<input type="submit" name="wsd-login" id="wsd-login" value="Login">
|
384 |
-
</div>
|
385 |
-
</form>
|
386 |
-
|
387 |
-
<?php if(!empty($error)) { ?>
|
388 |
-
</div>
|
389 |
-
<?php } ?>
|
390 |
-
|
391 |
-
<?php
|
392 |
-
}
|
393 |
-
|
394 |
-
function wsd_render_new_user($error = '')
|
395 |
-
{
|
396 |
-
//print "wsd_render_new_user $error<br>";
|
397 |
-
|
398 |
-
$form = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cPlugin.getfrm", $this->wsd_site_url());
|
399 |
-
if ($form === null)
|
400 |
-
{
|
401 |
-
$this->wsd_render_error();
|
402 |
-
return;
|
403 |
-
}
|
404 |
-
$recaptcha_publickey = $form['captcha'];
|
405 |
-
if(empty($recaptcha_publickey))
|
406 |
-
{
|
407 |
-
$this->wsd_render_error('Invalid server response.');
|
408 |
-
return;
|
409 |
-
}
|
410 |
-
|
411 |
-
//intro text
|
412 |
-
echo '<p class="wsd-inside" style="margin-top: 0px;">';
|
413 |
-
_e('WebsiteDefender.com is based upon web application scanning technology from <a href="http://www.acunetix.com/" target="_blank">Acunetix</a>; a pioneer in website security. <a href="http://www.websitedefender.com" target="_blank">WebsiteDefender</a> requires no installation, no learning curve and no maintenance. Above all, there is no impact on site performance! WebsiteDefender regularly scans and monitors your WordPress website/blog effortlessly, efficient, easily and is available for Free! Start scanning your WordPress website/blog against malware and hackers, absolutely free!', FB_SWP_TEXTDOMAIN);
|
414 |
-
echo "</p>";
|
415 |
-
|
416 |
-
?>
|
417 |
-
<div class="wsd-inside">
|
418 |
-
<?php
|
419 |
-
$this->wsd_render_user_login();
|
420 |
-
?>
|
421 |
-
|
422 |
-
<h4><?php _e('Register here to use all the WebsiteDefender.com advanced features', FB_SWP_TEXTDOMAIN)?></h4>
|
423 |
-
<p><?php _e('WebsiteDefender is an online service that protects your website from any hacker activity by monitoring and auditing the security of your website, giving you easy to understand solutions to keep your website safe, always! WebsiteDefender\'s enhanced WordPress Security Checks allow it to optimise any threats on a blog or site powered by WordPress.', FB_SWP_TEXTDOMAIN)?></p>
|
424 |
-
<p><?php _e('<strong>With WebsiteDefender you can:</strong>', FB_SWP_TEXTDOMAIN)?></p>
|
425 |
-
<ul class="wsd_commonList">
|
426 |
-
<li><span>Detect Malware present on your website</span></li>
|
427 |
-
<li><span>Audit your website for security issues</span></li>
|
428 |
-
<li><span>Avoid getting blacklisted by Google</span></li>
|
429 |
-
<li><span>Keep your website content and data safe</span></li>
|
430 |
-
<li><span>Get alerted to suspicious hacker activity</span></li>
|
431 |
-
</ul>
|
432 |
-
|
433 |
-
<p><?php _e('WebsiteDefender.com does all this an more via an easy-to-understand web-based dashboard, which gives step by step solutions on how to make sure your website stays secure!', FB_SWP_TEXTDOMAIN)?></p>
|
434 |
-
|
435 |
-
<h4><?php _e('Sign up for your FREE account here', FB_SWP_TEXTDOMAIN)?></h4>
|
436 |
-
|
437 |
-
<?php
|
438 |
-
if($error !== '') {$this->wsd_render_error($error);}
|
439 |
-
?>
|
440 |
-
|
441 |
-
<form action="#em" method="post" id="sw_wsd_new_user_form" name="sw_wsd_new_user_form">
|
442 |
-
<div id="em" class="wsd-new-user-section">
|
443 |
-
<label for="wsd_new_user_email">Email:</label>
|
444 |
-
<input type="text" name="wsd_new_user_email" id="wsd_new_user_email" value="<?php echo get_option("admin_email"); ?>" />
|
445 |
-
</div>
|
446 |
-
<div class="wsd-new-user-section">
|
447 |
-
<label for="wsd_new_user_name">Name:</label>
|
448 |
-
<input type="text" name="wsd_new_user_name" id="wsd_new_user_name" value="<?php echo isset($_POST['wsd_new_user_name']) ? $_POST['wsd_new_user_name'] : '' ?>" />
|
449 |
-
</div>
|
450 |
-
<div class="wsd-new-user-section">
|
451 |
-
<label for="wsd_new_user_surname">Surname:</label>
|
452 |
-
<input type="text" name="wsd_new_user_surname" id="wsd_new_user_surname" value="<?php echo isset($_POST['wsd_new_user_surname']) ? $_POST['wsd_new_user_surname']: '' ?>" />
|
453 |
-
</div>
|
454 |
-
<div class="wsd-new-user-section">
|
455 |
-
<label for="wsd_new_user_password">Password:</label>
|
456 |
-
<input type="password" name="wsd_new_user_password" id="wsd_new_user_password"/>
|
457 |
-
<label class="password-meter" style="background-color: rgb(238, 0, 0); display: none;">Too Short</label>
|
458 |
-
</div>
|
459 |
-
<div class="wsd-new-user-section">
|
460 |
-
<label for="wsd_new_user_password_re">Retype Password:</label>
|
461 |
-
<input type="password" name="wsd_new_user_password_re" id="wsd_new_user_password_re"/>
|
462 |
-
</div>
|
463 |
-
<div class="wsd-new-user-section">
|
464 |
-
<?php
|
465 |
-
echo wsd_recaptcha_get_html($recaptcha_publickey, null, true);
|
466 |
-
?>
|
467 |
-
</div>
|
468 |
-
<input type="submit" name="wsd-new-user" id="wsd-new-user" value="Register">
|
469 |
-
</form>
|
470 |
-
</div>
|
471 |
-
<?php
|
472 |
-
}
|
473 |
-
|
474 |
-
|
475 |
-
function wsd_process_login()
|
476 |
-
{
|
477 |
-
$email = isset($_POST['wsd_login_form_email']) ? $_POST['wsd_login_form_email'] : null;
|
478 |
-
$password = isset($_POST['wsd_login_form_password']) ? $password = $_POST['wsd_login_form_password'] : null;
|
479 |
-
|
480 |
-
if (empty($email)) {
|
481 |
-
$this->wsd_render_user_login('Email address is required.');
|
482 |
-
return;
|
483 |
-
}
|
484 |
-
|
485 |
-
if (empty($password)) {
|
486 |
-
$this->wsd_render_user_login('Password is required.');
|
487 |
-
return;
|
488 |
-
}
|
489 |
-
|
490 |
-
// $password is received as MD5 hash
|
491 |
-
$login = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cUser.login", array($email, $password));
|
492 |
-
|
493 |
-
if ($login == null) {
|
494 |
-
$this->wsd_render_user_login('Invalid login');
|
495 |
-
return;
|
496 |
-
}
|
497 |
-
|
498 |
-
$user = get_option("WSD-USER");
|
499 |
-
if ($user === false) {
|
500 |
-
add_option("WSD-USER", $email);
|
501 |
-
}
|
502 |
-
else {update_option("WSD-USER", $email);}
|
503 |
-
|
504 |
-
$this->wsd_add_or_process_target();
|
505 |
-
}
|
506 |
-
|
507 |
-
function wsd_render_add_target_id()
|
508 |
-
{
|
509 |
-
?>
|
510 |
-
<div class="wsd-inside">
|
511 |
-
<?php if(!empty($error)) {$this->wsd_render_error($error);} ?>
|
512 |
-
<form action="" method="post" id="wsd_target_id_form" name="wsd_target_id_form">
|
513 |
-
<?php
|
514 |
-
$emailAddress = get_option('WSD-USER');
|
515 |
-
if(empty($emailAddress)){
|
516 |
-
$emailAddress = get_option('admin_email');
|
517 |
-
}
|
518 |
-
?>
|
519 |
-
<p>
|
520 |
-
<label><?php echo __('WebsiteDefender email account');?>:</label>
|
521 |
-
<br/>
|
522 |
-
<input type="text" name="sw_user_email" id="sw_user_email" value="<?php echo $emailAddress;?>"
|
523 |
-
style="width: 200px;"/>
|
524 |
-
</p>
|
525 |
-
<p>
|
526 |
-
<label for="wsd_target_update_id"><?php echo __('Target ID');?>:</label>
|
527 |
-
<br/>
|
528 |
-
<input type="text" name="targetid" id="targetid" value="<?php echo get_option('WSD-TARGETID');?>"/>
|
529 |
-
<br/><br/>
|
530 |
-
<input type="submit" name="wsd_update_target_id" value="<?php echo __('Update');?>" />
|
531 |
-
</p>
|
532 |
-
</form>
|
533 |
-
<div>
|
534 |
-
<p>
|
535 |
-
<?php
|
536 |
-
echo __('To get the WebsiteDefender target ID of your website, login to the
|
537 |
-
<a href="https://dashboard.websitedefender.com/" target="_blank">WebsiteDefender dashboard</a>
|
538 |
-
and from the <code>Website Settings</code> navigate to the <code>Status</code> tab. The Target ID
|
539 |
-
can be found under the <code>Scan Status</code> section.');
|
540 |
-
?>
|
541 |
-
</p>
|
542 |
-
</div>
|
543 |
-
</div>
|
544 |
-
<?php
|
545 |
-
}
|
546 |
-
|
547 |
-
function wsd_process_add_target_id()
|
548 |
-
{
|
549 |
-
//echo "wsd_process_add_target_id<br>";
|
550 |
-
if(! empty($_POST['targetid'])){
|
551 |
-
add_option('WSD-TARGETID', $_POST['targetid']);
|
552 |
-
}
|
553 |
-
if( ! empty($_POST['sw_user_email'])){
|
554 |
-
add_option('WSD-USER', $_POST['sw_user_email']);
|
555 |
-
}
|
556 |
-
$this->wsd_render_target_status();
|
557 |
-
}
|
558 |
-
|
559 |
-
function wsd_add_or_process_target()
|
560 |
-
{
|
561 |
-
//check if we already registered
|
562 |
-
$targetid = get_option('WSD-TARGETID');
|
563 |
-
|
564 |
-
if($targetid !== false)
|
565 |
-
{
|
566 |
-
$this->wsd_render_target_status();
|
567 |
-
return;
|
568 |
-
}
|
569 |
-
else
|
570 |
-
{
|
571 |
-
//check first is this url is already there
|
572 |
-
$target = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cPlugin.urlstatus", $this->wsd_site_url());
|
573 |
-
if($target === null)
|
574 |
-
{
|
575 |
-
$this->wsd_render_error();
|
576 |
-
return;
|
577 |
-
}
|
578 |
-
if(array_key_exists('id', $target) && ($target['id'] != null))
|
579 |
-
{
|
580 |
-
if($targetid === false) {add_option('WSD-TARGETID', $target['id']);}
|
581 |
-
else {update_option('WSD-TARGETID', $target['id']);}
|
582 |
-
$this->wsd_render_target_status();
|
583 |
-
return;
|
584 |
-
}
|
585 |
-
}
|
586 |
-
|
587 |
-
//the target was not there so we have to register a new one
|
588 |
-
$newtarget = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cTargets.add", $this->wsd_site_url());
|
589 |
-
if($newtarget === null)
|
590 |
-
{
|
591 |
-
if($GLOBALS['wsd_last_err']['code'] == self::WSD_ERROR_LIMITATION)
|
592 |
-
{
|
593 |
-
$this->wsd_render_error("This account reached the maximum number of targets.");
|
594 |
-
return;
|
595 |
-
}
|
596 |
-
if($GLOBALS['wsd_last_err']['code'] == self::WSD_ERROR_WPP_URL_EXIST)
|
597 |
-
{
|
598 |
-
$this->wsd_render_add_target_id();
|
599 |
-
return;
|
600 |
-
}
|
601 |
-
print_r($GLOBALS['wsd_last_err']);
|
602 |
-
return;
|
603 |
-
}
|
604 |
-
|
605 |
-
if(!array_key_exists("id", $newtarget))
|
606 |
-
{
|
607 |
-
$this->wsd_render_error("Invalid WSD response received.");
|
608 |
-
return;
|
609 |
-
}
|
610 |
-
|
611 |
-
delete_option('WSD-TARGETID');
|
612 |
-
add_option('WSD-TARGETID', $newtarget['id']);
|
613 |
-
|
614 |
-
//download agent
|
615 |
-
$targetInstalError = '';
|
616 |
-
|
617 |
-
$headers = array("a"=>"a");
|
618 |
-
$option_cookie = get_option("WSD-COOKIE");
|
619 |
-
if($option_cookie !== false) $headers["Cookie"] = $option_cookie;
|
620 |
-
|
621 |
-
//print "<br>Downloading: ". WSD_URL_DOWN.'?id='.$newtarget['id'] ."#". print_r($headers, true). "<br>";
|
622 |
-
|
623 |
-
$agent = $this->wsd_httpRequest("GET", self::WSD_URL_DOWN.'?id='.$newtarget['id'], "", $headers);
|
624 |
-
|
625 |
-
if($agent["error"] !== null) {
|
626 |
-
$targetInstalError = 'The WebsiteDefender Agent failed to install automatically [0x01].'; //can't download
|
627 |
-
}
|
628 |
-
else
|
629 |
-
{
|
630 |
-
//try to copy the target
|
631 |
-
$agentURL = $agent["sensor_url"];
|
632 |
-
if(preg_match('/[a-f0-9]{40}.php/', $newtarget["sensor_url"], $matches))
|
633 |
-
{
|
634 |
-
$path = rtrim(ABSPATH, '/');
|
635 |
-
$path .= '/'.$matches[0];
|
636 |
-
|
637 |
-
$r = file_put_contents($path, $agent['body']);
|
638 |
-
if(!$r) {$targetInstalError = 'The WebsiteDefender Agent failed to install automatically [0x02].';} /* can't save */
|
639 |
-
}
|
640 |
-
else {$targetInstalError = 'The WebsiteDefender Agent failed to install automatically [0x03].';} /* other */
|
641 |
-
}
|
642 |
-
|
643 |
-
//test the agent, this will triger agentless if agent not functioning
|
644 |
-
$testTarget = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cTargets.agenttest", $newtarget['id']);
|
645 |
-
$enbableTarget = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cTargets.enable", array($newtarget['id'], true));
|
646 |
-
|
647 |
-
if($targetInstalError != '') {$this->wsd_render_agent_install_issues($targetInstalError);}
|
648 |
-
|
649 |
-
$this->wsd_render_target_status();
|
650 |
-
}
|
651 |
-
|
652 |
-
function wsd_process_new_user_form()
|
653 |
-
{
|
654 |
-
//print "wsd_process_new_user_form<br>";
|
655 |
-
|
656 |
-
$email = $_POST['wsd_new_user_email'];
|
657 |
-
$name = $_POST['wsd_new_user_name'];
|
658 |
-
$surname = $_POST['wsd_new_user_surname'];
|
659 |
-
$password = $_POST['wsd_new_user_password'];
|
660 |
-
$password_re = $_POST['wsd_new_user_password_re'];
|
661 |
-
|
662 |
-
if (empty($email)) {
|
663 |
-
$this->wsd_render_new_user('Email is required.');
|
664 |
-
return;
|
665 |
-
}
|
666 |
-
if (empty($name)) {
|
667 |
-
$this->wsd_render_new_user('Name is required.');
|
668 |
-
return;
|
669 |
-
}
|
670 |
-
if (empty($surname)) {
|
671 |
-
$this->wsd_render_new_user('Surname is required.');
|
672 |
-
return;
|
673 |
-
}
|
674 |
-
if (empty($password)) {
|
675 |
-
$this->wsd_render_new_user('Password is required.');
|
676 |
-
return;
|
677 |
-
}
|
678 |
-
if ($password != $password_re) {
|
679 |
-
$this->wsd_render_new_user('Passwords do not match.');
|
680 |
-
return;
|
681 |
-
}
|
682 |
-
|
683 |
-
$register = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cPlugin.register",
|
684 |
-
array(
|
685 |
-
array("challenge"=>$_POST['recaptcha_challenge_field'],
|
686 |
-
"response"=>$_POST['recaptcha_response_field']),
|
687 |
-
array(
|
688 |
-
"url" => $this->wsd_site_url(),
|
689 |
-
"email" => $email,
|
690 |
-
"name" => $name,
|
691 |
-
"surname" => $surname,
|
692 |
-
/* the password coming from the client already as a hash */
|
693 |
-
"pass" => $password,
|
694 |
-
"source" => self::WSD_SOURCE
|
695 |
-
)
|
696 |
-
));
|
697 |
-
if($register == null)
|
698 |
-
{
|
699 |
-
if($GLOBALS['wsd_last_err']['code'] == self::WSD_ERROR_WPP_INVALID_CAPTCHA)
|
700 |
-
{
|
701 |
-
$this->wsd_render_new_user('Invalid captcha. Please try again.');
|
702 |
-
return;
|
703 |
-
}
|
704 |
-
if($GLOBALS['wsd_last_err']['code'] == self::WSD_ERROR_WPP_USER_EXIST)
|
705 |
-
{
|
706 |
-
$this->wsd_render_new_user("This user is already registered. To continue with this user, please use the login form above or register with a new user name.");
|
707 |
-
return;
|
708 |
-
}
|
709 |
-
$this->wsd_render_new_user('Registration failed! Please try again.');
|
710 |
-
return;
|
711 |
-
}
|
712 |
-
$user = get_option("WSD-USER");
|
713 |
-
if($user === false) {
|
714 |
-
add_option("WSD-USER", $email);
|
715 |
-
}
|
716 |
-
else {update_option("WSD-USER", $email);}
|
717 |
-
|
718 |
-
$this->wsd_add_or_process_target();
|
719 |
-
}
|
720 |
-
|
721 |
-
function wsd_render_target_status()
|
722 |
-
{
|
723 |
-
#echo "wsd_render_target_status<br>";
|
724 |
-
$user = get_option('WSD-USER');
|
725 |
-
if((!is_string($user))||($user == "") ) {$user = get_option("admin_email"); }
|
726 |
-
$status = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cPlugin.status", array($user, get_option('WSD-TARGETID'), $this->wsd_site_url()));
|
727 |
-
if($status === null)
|
728 |
-
{
|
729 |
-
$this->wsd_render_error();
|
730 |
-
return;
|
731 |
-
}
|
732 |
-
if((!array_key_exists('active', $status)) || ($status['active'] !== 1))
|
733 |
-
{
|
734 |
-
//our target is not valid anymore
|
735 |
-
delete_option('WSD-TARGETID');
|
736 |
-
|
737 |
-
// Display the add target id form
|
738 |
-
// update: $rev 3
|
739 |
-
$this->wsd_render_add_target_id();
|
740 |
-
$this->wsd_render_error('Invalid Target ID!');
|
741 |
-
return false;
|
742 |
-
}
|
743 |
-
|
744 |
-
echo '<p class="wsd-inside">';
|
745 |
-
echo 'Thank you for registering with WebsiteDefender. Please navigate to the <a target="_blank" href="https://dashboard.websitedefender.com/">WebsiteDefender dashboard</a> to see the alerts.';
|
746 |
-
echo "</p>";
|
747 |
-
|
748 |
-
$enabled = array_key_exists('enabled', $status) ? $status['enabled'] : null;
|
749 |
-
$scanned = array_key_exists('scanned', $status) ? $status['scanned'] : null;
|
750 |
-
$agentless = array_key_exists('agentless', $status) ? $status['agentless'] : null;
|
751 |
-
|
752 |
-
if (!is_numeric($enabled) || !is_numeric($scanned) || !is_numeric($agentless))
|
753 |
-
{
|
754 |
-
$this->wsd_render_error('Invalid server response.');
|
755 |
-
return;
|
756 |
-
}
|
757 |
-
$enabled = intval($enabled);
|
758 |
-
$scanned = intval($scanned);
|
759 |
-
$agentless = intval($agentless);
|
760 |
-
?>
|
761 |
-
|
762 |
-
<div id="wsd-target-status-holder" class="wsd-inside">
|
763 |
-
<p class="wsd-target-status-title">
|
764 |
-
Website status on Website Defender
|
765 |
-
</p>
|
766 |
-
<div class="wsd-target-status-section">
|
767 |
-
<?php
|
768 |
-
$statusText = (($enabled == 1) ? 'YES' : 'NO');
|
769 |
-
|
770 |
-
echo '<span class="wsd-target-status-section-label">Enabled: </span>',
|
771 |
-
'<span class="wsd-target-status-section-', $enabled ? 'enabled' : 'disabled', '">', $statusText, '</span>';
|
772 |
-
?>
|
773 |
-
</div>
|
774 |
-
<div class="wsd-target-status-section">
|
775 |
-
<?php
|
776 |
-
$statusText = (($scanned == 1) ? 'YES' : 'NO');
|
777 |
-
|
778 |
-
echo '<span class="wsd-target-status-section-label">Scanned: </span>',
|
779 |
-
'<span class="wsd-target-status-section-', $scanned ? 'enabled' : 'disabled', '">', $statusText, '</span>';
|
780 |
-
?>
|
781 |
-
</div>
|
782 |
-
<div class="wsd-target-status-section">
|
783 |
-
<?php
|
784 |
-
$statusText = (($agentless == 1) ? 'DOWN' : 'UP');
|
785 |
-
|
786 |
-
echo '<span class="wsd-target-status-section-label">Agent status: </span>',
|
787 |
-
'<span class="wsd-target-status-section-', $agentless ? 'disabled' : 'enabled', '">', $statusText, '</span>';
|
788 |
-
?>
|
789 |
-
</div>
|
790 |
-
</div>
|
791 |
-
|
792 |
-
<?php return true; }
|
793 |
-
|
794 |
-
function wsd_render_main()
|
795 |
-
{
|
796 |
-
if(1==0)
|
797 |
-
{
|
798 |
-
delete_option('WSD-TARGETID');
|
799 |
-
delete_option("WSD-COOKIE");
|
800 |
-
delete_option("WSD-USER");
|
801 |
-
return;
|
802 |
-
}
|
803 |
-
|
804 |
-
if(isset($_POST['wsd-new-user']))
|
805 |
-
{
|
806 |
-
$this->wsd_process_new_user_form();
|
807 |
-
return;
|
808 |
-
}
|
809 |
-
|
810 |
-
if(isset($_POST['wsd-login']))
|
811 |
-
{
|
812 |
-
$this->wsd_process_login();
|
813 |
-
return;
|
814 |
-
}
|
815 |
-
|
816 |
-
if(isset($_POST['wsd_update_target_id']))
|
817 |
-
{
|
818 |
-
$this->wsd_process_add_target_id();
|
819 |
-
return;
|
820 |
-
}
|
821 |
-
|
822 |
-
$targetid = get_option("WSD-TARGETID");
|
823 |
-
if($targetid !== false)
|
824 |
-
{
|
825 |
-
$this->wsd_render_target_status();
|
826 |
-
return;
|
827 |
-
}
|
828 |
-
|
829 |
-
$hello = $this->wsd_jsonRPC(self::WSD_URL_RPC, "cPlugin.hello", $this->wsd_site_url());
|
830 |
-
if($hello == null)
|
831 |
-
{
|
832 |
-
// update: $rev 3
|
833 |
-
$this->wsd_render_new_user();
|
834 |
-
|
835 |
-
return;
|
836 |
-
}
|
837 |
-
|
838 |
-
if($hello == 'registered')
|
839 |
-
{
|
840 |
-
$this->wsd_render_add_target_id();
|
841 |
-
return;
|
842 |
-
}
|
843 |
-
elseif($hello == 'new')
|
844 |
-
{
|
845 |
-
//$user = get_option("WSD-USER"); if($user === false)
|
846 |
-
$this->wsd_render_new_user();
|
847 |
-
//else wsd_render_user_login();
|
848 |
-
}
|
849 |
-
else
|
850 |
-
{
|
851 |
-
$this->wsd_render_error("Invalid server response.");
|
852 |
-
return;
|
853 |
-
}
|
854 |
-
}
|
855 |
-
|
856 |
-
}
|
857 |
-
/* End of file: swWSD.php */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
index.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
Plugin Name: Acunetix Secure WordPress
|
4 |
+
Plugin URI: http://www.acunetix.com/websitesecurity/wordpress-security-plugin/
|
5 |
+
Description: The Acunetix Secure WordPress plugin is the ultimate must-have tool when it comes to WordPress security. The plugin is free and monitors your website for security weaknesses that hackers might exploit and tells you how to easily fix them.
|
6 |
+
Version: 3.0.0
|
7 |
+
Author: Acunetix
|
8 |
+
Author URI: http://www.acunetix.com/
|
9 |
+
License: GPLv2 or later
|
10 |
+
Text Domain: WSDWP_SECURITY
|
11 |
+
Domain Path: /languages
|
12 |
+
*/
|
13 |
+
define('SWPA_PLUGIN_PREFIX', 'swpa_');
|
14 |
+
define('SWPA_PLUGIN_NAME', 'Acunetix Secure WordPress');
|
15 |
+
define('SWPA_PLUGIN_URL', trailingslashit(plugins_url('', __FILE__)));
|
16 |
+
define('SWPA_PLUGIN_DIR', trailingslashit(plugin_dir_path(__FILE__)));
|
17 |
+
define('SWPA_PLUGIN_BASE_NAME', basename(__DIR__));
|
18 |
+
|
19 |
+
require('swpa-settings.php');
|
20 |
+
require('res/inc/alerts.php');
|
21 |
+
require('res/inc/SwpaUtil.php');
|
22 |
+
require('res/inc/SwpaPlugin.php');
|
23 |
+
require('res/inc/SwpaInfo.php');
|
24 |
+
require('res/inc/SwpaSecurity.php');
|
25 |
+
require('res/inc/SwpaCheck.php');
|
26 |
+
require('res/inc/SwpaScheduler.php');
|
27 |
+
require('res/inc/SwpaWatch.php');
|
28 |
+
require('res/inc/SwpaLiveTraffic.php');
|
29 |
+
require('res/inc/swpa-functions.php');
|
30 |
+
|
31 |
+
//#!--
|
32 |
+
add_action('admin_init', array('SwpaUtil','loadPluggable'));
|
33 |
+
register_activation_hook( __FILE__, array('SwpaPlugin', 'activate') );
|
34 |
+
register_deactivation_hook( __FILE__, array('SwpaPlugin', 'deactivate') );
|
35 |
+
register_uninstall_hook( __FILE__, array('SwpaPlugin', 'uninstall') );
|
36 |
+
//#++
|
37 |
+
|
38 |
+
|
39 |
+
|
40 |
+
#! register tasks
|
41 |
+
if(false !== get_option('WSD-PLUGIN-CAN-RUN-TASKS',false))
|
42 |
+
{
|
43 |
+
SwpaScheduler::registerTask(array('SwpaPlugin','loadResources'), 'init');
|
44 |
+
SwpaScheduler::registerTask(array('SwpaPlugin','createWpMenu'), 'admin_menu');
|
45 |
+
SwpaScheduler::registerTask(array('SwpaLiveTraffic','registerHit'), 'init');
|
46 |
+
SwpaScheduler::registerTask(array('SwpaLiveTraffic','ajaxGetTrafficData'), 'wp_ajax_ajaxGetTrafficData');
|
47 |
+
SwpaScheduler::registerTask(array('SwpaLiveTraffic','ajaxGetTrafficData'), 'wp_ajax_nopriv_ajaxGetTrafficData');
|
48 |
+
SwpaScheduler::registerTask(array('SwpaUtil','addDashboardWidget'), 'wp_dashboard_setup');
|
49 |
+
|
50 |
+
// override - scheduled task
|
51 |
+
SwpaScheduler::registerCronTask('swpa_check_user_admin', array('SwpaCheck','adminUsername'), '8h');
|
52 |
+
|
53 |
+
// scheduled task - hourly cleanup of events in live traffic
|
54 |
+
SwpaScheduler::registerCronTask('swpa_cleanup_live_traffic', array('SwpaLiveTraffic','clearEvents'), 'hourly');
|
55 |
+
|
56 |
+
// stacked
|
57 |
+
SwpaScheduler::registerTask(array('SwpaWatch','userPasswordUpdate'));
|
58 |
+
|
59 |
+
// #! run fixes. Only those checked by the user will run (@see: settings page)
|
60 |
+
SwpaScheduler::registerClassTasks('SwpaSecurity','fix_');
|
61 |
+
|
62 |
+
//#! run checks.
|
63 |
+
SwpaScheduler::registerClassTasks('SwpaCheck','check_');
|
64 |
+
}
|
js/json.js
DELETED
@@ -1,482 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
http://www.JSON.org/json2.js
|
3 |
-
2010-03-20
|
4 |
-
|
5 |
-
Public Domain.
|
6 |
-
|
7 |
-
NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
|
8 |
-
|
9 |
-
See http://www.JSON.org/js.html
|
10 |
-
|
11 |
-
|
12 |
-
This code should be minified before deployment.
|
13 |
-
See http://javascript.crockford.com/jsmin.html
|
14 |
-
|
15 |
-
USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
|
16 |
-
NOT CONTROL.
|
17 |
-
|
18 |
-
|
19 |
-
This file creates a global JSON object containing two methods: stringify
|
20 |
-
and parse.
|
21 |
-
|
22 |
-
JSON.stringify(value, replacer, space)
|
23 |
-
value any JavaScript value, usually an object or array.
|
24 |
-
|
25 |
-
replacer an optional parameter that determines how object
|
26 |
-
values are stringified for objects. It can be a
|
27 |
-
function or an array of strings.
|
28 |
-
|
29 |
-
space an optional parameter that specifies the indentation
|
30 |
-
of nested structures. If it is omitted, the text will
|
31 |
-
be packed without extra whitespace. If it is a number,
|
32 |
-
it will specify the number of spaces to indent at each
|
33 |
-
level. If it is a string (such as '\t' or ' '),
|
34 |
-
it contains the characters used to indent at each level.
|
35 |
-
|
36 |
-
This method produces a JSON text from a JavaScript value.
|
37 |
-
|
38 |
-
When an object value is found, if the object contains a toJSON
|
39 |
-
method, its toJSON method will be called and the result will be
|
40 |
-
stringified. A toJSON method does not serialize: it returns the
|
41 |
-
value represented by the name/value pair that should be serialized,
|
42 |
-
or undefined if nothing should be serialized. The toJSON method
|
43 |
-
will be passed the key associated with the value, and this will be
|
44 |
-
bound to the value
|
45 |
-
|
46 |
-
For example, this would serialize Dates as ISO strings.
|
47 |
-
|
48 |
-
Date.prototype.toJSON = function (key) {
|
49 |
-
function f(n) {
|
50 |
-
// Format integers to have at least two digits.
|
51 |
-
return n < 10 ? '0' + n : n;
|
52 |
-
}
|
53 |
-
|
54 |
-
return this.getUTCFullYear() + '-' +
|
55 |
-
f(this.getUTCMonth() + 1) + '-' +
|
56 |
-
f(this.getUTCDate()) + 'T' +
|
57 |
-
f(this.getUTCHours()) + ':' +
|
58 |
-
f(this.getUTCMinutes()) + ':' +
|
59 |
-
f(this.getUTCSeconds()) + 'Z';
|
60 |
-
};
|
61 |
-
|
62 |
-
You can provide an optional replacer method. It will be passed the
|
63 |
-
key and value of each member, with this bound to the containing
|
64 |
-
object. The value that is returned from your method will be
|
65 |
-
serialized. If your method returns undefined, then the member will
|
66 |
-
be excluded from the serialization.
|
67 |
-
|
68 |
-
If the replacer parameter is an array of strings, then it will be
|
69 |
-
used to select the members to be serialized. It filters the results
|
70 |
-
such that only members with keys listed in the replacer array are
|
71 |
-
stringified.
|
72 |
-
|
73 |
-
Values that do not have JSON representations, such as undefined or
|
74 |
-
functions, will not be serialized. Such values in objects will be
|
75 |
-
dropped; in arrays they will be replaced with null. You can use
|
76 |
-
a replacer function to replace those with JSON values.
|
77 |
-
JSON.stringify(undefined) returns undefined.
|
78 |
-
|
79 |
-
The optional space parameter produces a stringification of the
|
80 |
-
value that is filled with line breaks and indentation to make it
|
81 |
-
easier to read.
|
82 |
-
|
83 |
-
If the space parameter is a non-empty string, then that string will
|
84 |
-
be used for indentation. If the space parameter is a number, then
|
85 |
-
the indentation will be that many spaces.
|
86 |
-
|
87 |
-
Example:
|
88 |
-
|
89 |
-
text = JSON.stringify(['e', {pluribus: 'unum'}]);
|
90 |
-
// text is '["e",{"pluribus":"unum"}]'
|
91 |
-
|
92 |
-
|
93 |
-
text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
|
94 |
-
// text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
|
95 |
-
|
96 |
-
text = JSON.stringify([new Date()], function (key, value) {
|
97 |
-
return this[key] instanceof Date ?
|
98 |
-
'Date(' + this[key] + ')' : value;
|
99 |
-
});
|
100 |
-
// text is '["Date(---current time---)"]'
|
101 |
-
|
102 |
-
|
103 |
-
JSON.parse(text, reviver)
|
104 |
-
This method parses a JSON text to produce an object or array.
|
105 |
-
It can throw a SyntaxError exception.
|
106 |
-
|
107 |
-
The optional reviver parameter is a function that can filter and
|
108 |
-
transform the results. It receives each of the keys and values,
|
109 |
-
and its return value is used instead of the original value.
|
110 |
-
If it returns what it received, then the structure is not modified.
|
111 |
-
If it returns undefined then the member is deleted.
|
112 |
-
|
113 |
-
Example:
|
114 |
-
|
115 |
-
// Parse the text. Values that look like ISO date strings will
|
116 |
-
// be converted to Date objects.
|
117 |
-
|
118 |
-
myData = JSON.parse(text, function (key, value) {
|
119 |
-
var a;
|
120 |
-
if (typeof value === 'string') {
|
121 |
-
a =
|
122 |
-
/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
|
123 |
-
if (a) {
|
124 |
-
return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
|
125 |
-
+a[5], +a[6]));
|
126 |
-
}
|
127 |
-
}
|
128 |
-
return value;
|
129 |
-
});
|
130 |
-
|
131 |
-
myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
|
132 |
-
var d;
|
133 |
-
if (typeof value === 'string' &&
|
134 |
-
value.slice(0, 5) === 'Date(' &&
|
135 |
-
value.slice(-1) === ')') {
|
136 |
-
d = new Date(value.slice(5, -1));
|
137 |
-
if (d) {
|
138 |
-
return d;
|
139 |
-
}
|
140 |
-
}
|
141 |
-
return value;
|
142 |
-
});
|
143 |
-
|
144 |
-
|
145 |
-
This is a reference implementation. You are free to copy, modify, or
|
146 |
-
redistribute.
|
147 |
-
*/
|
148 |
-
|
149 |
-
/*jslint evil: true, strict: false */
|
150 |
-
|
151 |
-
/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
|
152 |
-
call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
|
153 |
-
getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
|
154 |
-
lastIndex, length, parse, prototype, push, replace, slice, stringify,
|
155 |
-
test, toJSON, toString, valueOf
|
156 |
-
*/
|
157 |
-
|
158 |
-
|
159 |
-
// Create a JSON object only if one does not already exist. We create the
|
160 |
-
// methods in a closure to avoid creating global variables.
|
161 |
-
|
162 |
-
if (!this.JSON) {
|
163 |
-
this.JSON = {};
|
164 |
-
}
|
165 |
-
|
166 |
-
(function () {
|
167 |
-
|
168 |
-
function f(n) {
|
169 |
-
// Format integers to have at least two digits.
|
170 |
-
return n < 10 ? '0' + n : n;
|
171 |
-
}
|
172 |
-
|
173 |
-
if (typeof Date.prototype.toJSON !== 'function') {
|
174 |
-
|
175 |
-
Date.prototype.toJSON = function (key) {
|
176 |
-
|
177 |
-
return isFinite(this.valueOf()) ?
|
178 |
-
this.getUTCFullYear() + '-' +
|
179 |
-
f(this.getUTCMonth() + 1) + '-' +
|
180 |
-
f(this.getUTCDate()) + 'T' +
|
181 |
-
f(this.getUTCHours()) + ':' +
|
182 |
-
f(this.getUTCMinutes()) + ':' +
|
183 |
-
f(this.getUTCSeconds()) + 'Z' : null;
|
184 |
-
};
|
185 |
-
|
186 |
-
String.prototype.toJSON =
|
187 |
-
Number.prototype.toJSON =
|
188 |
-
Boolean.prototype.toJSON = function (key) {
|
189 |
-
return this.valueOf();
|
190 |
-
};
|
191 |
-
}
|
192 |
-
|
193 |
-
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
194 |
-
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
195 |
-
gap,
|
196 |
-
indent,
|
197 |
-
meta = { // table of character substitutions
|
198 |
-
'\b': '\\b',
|
199 |
-
'\t': '\\t',
|
200 |
-
'\n': '\\n',
|
201 |
-
'\f': '\\f',
|
202 |
-
'\r': '\\r',
|
203 |
-
'"' : '\\"',
|
204 |
-
'\\': '\\\\'
|
205 |
-
},
|
206 |
-
rep;
|
207 |
-
|
208 |
-
|
209 |
-
function quote(string) {
|
210 |
-
|
211 |
-
// If the string contains no control characters, no quote characters, and no
|
212 |
-
// backslash characters, then we can safely slap some quotes around it.
|
213 |
-
// Otherwise we must also replace the offending characters with safe escape
|
214 |
-
// sequences.
|
215 |
-
|
216 |
-
escapable.lastIndex = 0;
|
217 |
-
return escapable.test(string) ?
|
218 |
-
'"' + string.replace(escapable, function (a) {
|
219 |
-
var c = meta[a];
|
220 |
-
return typeof c === 'string' ? c :
|
221 |
-
'\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
|
222 |
-
}) + '"' :
|
223 |
-
'"' + string + '"';
|
224 |
-
}
|
225 |
-
|
226 |
-
|
227 |
-
function str(key, holder) {
|
228 |
-
|
229 |
-
// Produce a string from holder[key].
|
230 |
-
|
231 |
-
var i, // The loop counter.
|
232 |
-
k, // The member key.
|
233 |
-
v, // The member value.
|
234 |
-
length,
|
235 |
-
mind = gap,
|
236 |
-
partial,
|
237 |
-
value = holder[key];
|
238 |
-
|
239 |
-
// If the value has a toJSON method, call it to obtain a replacement value.
|
240 |
-
|
241 |
-
if (value && typeof value === 'object' &&
|
242 |
-
typeof value.toJSON === 'function') {
|
243 |
-
value = value.toJSON(key);
|
244 |
-
}
|
245 |
-
|
246 |
-
// If we were called with a replacer function, then call the replacer to
|
247 |
-
// obtain a replacement value.
|
248 |
-
|
249 |
-
if (typeof rep === 'function') {
|
250 |
-
value = rep.call(holder, key, value);
|
251 |
-
}
|
252 |
-
|
253 |
-
// What happens next depends on the value's type.
|
254 |
-
|
255 |
-
switch (typeof value) {
|
256 |
-
case 'string':
|
257 |
-
return quote(value);
|
258 |
-
|
259 |
-
case 'number':
|
260 |
-
|
261 |
-
// JSON numbers must be finite. Encode non-finite numbers as null.
|
262 |
-
|
263 |
-
return isFinite(value) ? String(value) : 'null';
|
264 |
-
|
265 |
-
case 'boolean':
|
266 |
-
case 'null':
|
267 |
-
|
268 |
-
// If the value is a boolean or null, convert it to a string. Note:
|
269 |
-
// typeof null does not produce 'null'. The case is included here in
|
270 |
-
// the remote chance that this gets fixed someday.
|
271 |
-
|
272 |
-
return String(value);
|
273 |
-
|
274 |
-
// If the type is 'object', we might be dealing with an object or an array or
|
275 |
-
// null.
|
276 |
-
|
277 |
-
case 'object':
|
278 |
-
|
279 |
-
// Due to a specification blunder in ECMAScript, typeof null is 'object',
|
280 |
-
// so watch out for that case.
|
281 |
-
|
282 |
-
if (!value) {
|
283 |
-
return 'null';
|
284 |
-
}
|
285 |
-
|
286 |
-
// Make an array to hold the partial results of stringifying this object value.
|
287 |
-
|
288 |
-
gap += indent;
|
289 |
-
partial = [];
|
290 |
-
|
291 |
-
// Is the value an array?
|
292 |
-
|
293 |
-
if (Object.prototype.toString.apply(value) === '[object Array]') {
|
294 |
-
|
295 |
-
// The value is an array. Stringify every element. Use null as a placeholder
|
296 |
-
// for non-JSON values.
|
297 |
-
|
298 |
-
length = value.length;
|
299 |
-
for (i = 0; i < length; i += 1) {
|
300 |
-
partial[i] = str(i, value) || 'null';
|
301 |
-
}
|
302 |
-
|
303 |
-
// Join all of the elements together, separated with commas, and wrap them in
|
304 |
-
// brackets.
|
305 |
-
|
306 |
-
v = partial.length === 0 ? '[]' :
|
307 |
-
gap ? '[\n' + gap +
|
308 |
-
partial.join(',\n' + gap) + '\n' +
|
309 |
-
mind + ']' :
|
310 |
-
'[' + partial.join(',') + ']';
|
311 |
-
gap = mind;
|
312 |
-
return v;
|
313 |
-
}
|
314 |
-
|
315 |
-
// If the replacer is an array, use it to select the members to be stringified.
|
316 |
-
|
317 |
-
if (rep && typeof rep === 'object') {
|
318 |
-
length = rep.length;
|
319 |
-
for (i = 0; i < length; i += 1) {
|
320 |
-
k = rep[i];
|
321 |
-
if (typeof k === 'string') {
|
322 |
-
v = str(k, value);
|
323 |
-
if (v) {
|
324 |
-
partial.push(quote(k) + (gap ? ': ' : ':') + v);
|
325 |
-
}
|
326 |
-
}
|
327 |
-
}
|
328 |
-
} else {
|
329 |
-
|
330 |
-
// Otherwise, iterate through all of the keys in the object.
|
331 |
-
|
332 |
-
for (k in value) {
|
333 |
-
if (Object.hasOwnProperty.call(value, k)) {
|
334 |
-
v = str(k, value);
|
335 |
-
if (v) {
|
336 |
-
partial.push(quote(k) + (gap ? ': ' : ':') + v);
|
337 |
-
}
|
338 |
-
}
|
339 |
-
}
|
340 |
-
}
|
341 |
-
|
342 |
-
// Join all of the member texts together, separated with commas,
|
343 |
-
// and wrap them in braces.
|
344 |
-
|
345 |
-
v = partial.length === 0 ? '{}' :
|
346 |
-
gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
|
347 |
-
mind + '}' : '{' + partial.join(',') + '}';
|
348 |
-
gap = mind;
|
349 |
-
return v;
|
350 |
-
}
|
351 |
-
}
|
352 |
-
|
353 |
-
// If the JSON object does not yet have a stringify method, give it one.
|
354 |
-
|
355 |
-
if (typeof JSON.stringify !== 'function') {
|
356 |
-
JSON.stringify = function (value, replacer, space) {
|
357 |
-
|
358 |
-
// The stringify method takes a value and an optional replacer, and an optional
|
359 |
-
// space parameter, and returns a JSON text. The replacer can be a function
|
360 |
-
// that can replace values, or an array of strings that will select the keys.
|
361 |
-
// A default replacer method can be provided. Use of the space parameter can
|
362 |
-
// produce text that is more easily readable.
|
363 |
-
|
364 |
-
var i;
|
365 |
-
gap = '';
|
366 |
-
indent = '';
|
367 |
-
|
368 |
-
// If the space parameter is a number, make an indent string containing that
|
369 |
-
// many spaces.
|
370 |
-
|
371 |
-
if (typeof space === 'number') {
|
372 |
-
for (i = 0; i < space; i += 1) {
|
373 |
-
indent += ' ';
|
374 |
-
}
|
375 |
-
|
376 |
-
// If the space parameter is a string, it will be used as the indent string.
|
377 |
-
|
378 |
-
} else if (typeof space === 'string') {
|
379 |
-
indent = space;
|
380 |
-
}
|
381 |
-
|
382 |
-
// If there is a replacer, it must be a function or an array.
|
383 |
-
// Otherwise, throw an error.
|
384 |
-
|
385 |
-
rep = replacer;
|
386 |
-
if (replacer && typeof replacer !== 'function' &&
|
387 |
-
(typeof replacer !== 'object' ||
|
388 |
-
typeof replacer.length !== 'number')) {
|
389 |
-
throw new Error('JSON.stringify');
|
390 |
-
}
|
391 |
-
|
392 |
-
// Make a fake root object containing our value under the key of ''.
|
393 |
-
// Return the result of stringifying the value.
|
394 |
-
|
395 |
-
return str('', {'': value});
|
396 |
-
};
|
397 |
-
}
|
398 |
-
|
399 |
-
|
400 |
-
// If the JSON object does not yet have a parse method, give it one.
|
401 |
-
|
402 |
-
if (typeof JSON.parse !== 'function') {
|
403 |
-
JSON.parse = function (text, reviver) {
|
404 |
-
|
405 |
-
// The parse method takes a text and an optional reviver function, and returns
|
406 |
-
// a JavaScript value if the text is a valid JSON text.
|
407 |
-
|
408 |
-
var j;
|
409 |
-
|
410 |
-
function walk(holder, key) {
|
411 |
-
|
412 |
-
// The walk method is used to recursively walk the resulting structure so
|
413 |
-
// that modifications can be made.
|
414 |
-
|
415 |
-
var k, v, value = holder[key];
|
416 |
-
if (value && typeof value === 'object') {
|
417 |
-
for (k in value) {
|
418 |
-
if (Object.hasOwnProperty.call(value, k)) {
|
419 |
-
v = walk(value, k);
|
420 |
-
if (v !== undefined) {
|
421 |
-
value[k] = v;
|
422 |
-
} else {
|
423 |
-
delete value[k];
|
424 |
-
}
|
425 |
-
}
|
426 |
-
}
|
427 |
-
}
|
428 |
-
return reviver.call(holder, key, value);
|
429 |
-
}
|
430 |
-
|
431 |
-
|
432 |
-
// Parsing happens in four stages. In the first stage, we replace certain
|
433 |
-
// Unicode characters with escape sequences. JavaScript handles many characters
|
434 |
-
// incorrectly, either silently deleting them, or treating them as line endings.
|
435 |
-
|
436 |
-
text = String(text);
|
437 |
-
cx.lastIndex = 0;
|
438 |
-
if (cx.test(text)) {
|
439 |
-
text = text.replace(cx, function (a) {
|
440 |
-
return '\\u' +
|
441 |
-
('0000' + a.charCodeAt(0).toString(16)).slice(-4);
|
442 |
-
});
|
443 |
-
}
|
444 |
-
|
445 |
-
// In the second stage, we run the text against regular expressions that look
|
446 |
-
// for non-JSON patterns. We are especially concerned with '()' and 'new'
|
447 |
-
// because they can cause invocation, and '=' because it can cause mutation.
|
448 |
-
// But just to be safe, we want to reject all unexpected forms.
|
449 |
-
|
450 |
-
// We split the second stage into 4 regexp operations in order to work around
|
451 |
-
// crippling inefficiencies in IE's and Safari's regexp engines. First we
|
452 |
-
// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
|
453 |
-
// replace all simple value tokens with ']' characters. Third, we delete all
|
454 |
-
// open brackets that follow a colon or comma or that begin the text. Finally,
|
455 |
-
// we look to see that the remaining characters are only whitespace or ']' or
|
456 |
-
// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
|
457 |
-
|
458 |
-
if (/^[\],:{}\s]*$/.
|
459 |
-
test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
|
460 |
-
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
|
461 |
-
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
|
462 |
-
|
463 |
-
// In the third stage we use the eval function to compile the text into a
|
464 |
-
// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
|
465 |
-
// in JavaScript: it can begin a block or an object literal. We wrap the text
|
466 |
-
// in parens to eliminate the ambiguity.
|
467 |
-
|
468 |
-
j = eval('(' + text + ')');
|
469 |
-
|
470 |
-
// In the optional fourth stage, we recursively walk the new structure, passing
|
471 |
-
// each name/value pair to a reviver function for possible transformation.
|
472 |
-
|
473 |
-
return typeof reviver === 'function' ?
|
474 |
-
walk({'': j}, '') : j;
|
475 |
-
}
|
476 |
-
|
477 |
-
// If the text is not JSON parseable, then a SyntaxError is thrown.
|
478 |
-
|
479 |
-
throw new SyntaxError('JSON.parse');
|
480 |
-
};
|
481 |
-
}
|
482 |
-
}());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/md5.js
DELETED
@@ -1,195 +0,0 @@
|
|
1 |
-
var wsdMD5 = function (string)
|
2 |
-
{
|
3 |
-
function RotateLeft(lValue, iShiftBits) {
|
4 |
-
return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
|
5 |
-
}
|
6 |
-
|
7 |
-
function AddUnsigned(lX,lY) {
|
8 |
-
var lX4,lY4,lX8,lY8,lResult;
|
9 |
-
lX8 = (lX & 0x80000000);
|
10 |
-
lY8 = (lY & 0x80000000);
|
11 |
-
lX4 = (lX & 0x40000000);
|
12 |
-
lY4 = (lY & 0x40000000);
|
13 |
-
lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
|
14 |
-
if (lX4 & lY4) {
|
15 |
-
return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
|
16 |
-
}
|
17 |
-
if (lX4 | lY4) {
|
18 |
-
if (lResult & 0x40000000) {
|
19 |
-
return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
|
20 |
-
}
|
21 |
-
else {return (lResult ^ 0x40000000 ^ lX8 ^ lY8);}
|
22 |
-
}
|
23 |
-
else {return (lResult ^ lX8 ^ lY8);}
|
24 |
-
}
|
25 |
-
|
26 |
-
function F(x,y,z) { return (x & y) | ((~x) & z); }
|
27 |
-
function G(x,y,z) { return (x & z) | (y & (~z)); }
|
28 |
-
function H(x,y,z) { return (x ^ y ^ z); }
|
29 |
-
function I(x,y,z) { return (y ^ (x | (~z))); }
|
30 |
-
|
31 |
-
function FF(a,b,c,d,x,s,ac) {
|
32 |
-
a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
|
33 |
-
return AddUnsigned(RotateLeft(a, s), b);
|
34 |
-
};
|
35 |
-
|
36 |
-
function GG(a,b,c,d,x,s,ac) {
|
37 |
-
a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
|
38 |
-
return AddUnsigned(RotateLeft(a, s), b);
|
39 |
-
};
|
40 |
-
|
41 |
-
function HH(a,b,c,d,x,s,ac) {
|
42 |
-
a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
|
43 |
-
return AddUnsigned(RotateLeft(a, s), b);
|
44 |
-
};
|
45 |
-
|
46 |
-
function II(a,b,c,d,x,s,ac) {
|
47 |
-
a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
|
48 |
-
return AddUnsigned(RotateLeft(a, s), b);
|
49 |
-
};
|
50 |
-
|
51 |
-
function ConvertToWordArray(string) {
|
52 |
-
var lWordCount;
|
53 |
-
var lMessageLength = string.length;
|
54 |
-
var lNumberOfWords_temp1=lMessageLength + 8;
|
55 |
-
var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
|
56 |
-
var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
|
57 |
-
var lWordArray=Array(lNumberOfWords-1);
|
58 |
-
var lBytePosition = 0;
|
59 |
-
var lByteCount = 0;
|
60 |
-
while ( lByteCount < lMessageLength ) {
|
61 |
-
lWordCount = (lByteCount-(lByteCount % 4))/4;
|
62 |
-
lBytePosition = (lByteCount % 4)*8;
|
63 |
-
lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
|
64 |
-
lByteCount++;
|
65 |
-
}
|
66 |
-
lWordCount = (lByteCount-(lByteCount % 4))/4;
|
67 |
-
lBytePosition = (lByteCount % 4)*8;
|
68 |
-
lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
|
69 |
-
lWordArray[lNumberOfWords-2] = lMessageLength<<3;
|
70 |
-
lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
|
71 |
-
return lWordArray;
|
72 |
-
};
|
73 |
-
|
74 |
-
function WordToHex(lValue) {
|
75 |
-
var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
|
76 |
-
for (lCount = 0;lCount<=3;lCount++) {
|
77 |
-
lByte = (lValue>>>(lCount*8)) & 255;
|
78 |
-
WordToHexValue_temp = "0" + lByte.toString(16);
|
79 |
-
WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
|
80 |
-
}
|
81 |
-
return WordToHexValue;
|
82 |
-
};
|
83 |
-
|
84 |
-
function Utf8Encode(string) {
|
85 |
-
string = string.replace(/\r\n/g,"\n");
|
86 |
-
var utftext = "";
|
87 |
-
for (var n = 0; n < string.length; n++)
|
88 |
-
{
|
89 |
-
var c = string.charCodeAt(n);
|
90 |
-
if (c < 128) {
|
91 |
-
utftext += String.fromCharCode(c);
|
92 |
-
}
|
93 |
-
else if((c > 127) && (c < 2048)) {
|
94 |
-
utftext += String.fromCharCode((c >> 6) | 192);
|
95 |
-
utftext += String.fromCharCode((c & 63) | 128);
|
96 |
-
}
|
97 |
-
else {
|
98 |
-
utftext += String.fromCharCode((c >> 12) | 224);
|
99 |
-
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
|
100 |
-
utftext += String.fromCharCode((c & 63) | 128);
|
101 |
-
}
|
102 |
-
}
|
103 |
-
|
104 |
-
return utftext;
|
105 |
-
};
|
106 |
-
|
107 |
-
var x=Array();
|
108 |
-
var k,AA,BB,CC,DD,a,b,c,d;
|
109 |
-
var S11=7, S12=12, S13=17, S14=22;
|
110 |
-
var S21=5, S22=9 , S23=14, S24=20;
|
111 |
-
var S31=4, S32=11, S33=16, S34=23;
|
112 |
-
var S41=6, S42=10, S43=15, S44=21;
|
113 |
-
|
114 |
-
string = Utf8Encode(string);
|
115 |
-
|
116 |
-
x = ConvertToWordArray(string);
|
117 |
-
|
118 |
-
a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
|
119 |
-
|
120 |
-
for (k=0;k<x.length;k+=16) {
|
121 |
-
AA=a; BB=b; CC=c; DD=d;
|
122 |
-
a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
|
123 |
-
d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
|
124 |
-
c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
|
125 |
-
b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
|
126 |
-
a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
|
127 |
-
d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
|
128 |
-
c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
|
129 |
-
b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
|
130 |
-
a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
|
131 |
-
d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
|
132 |
-
c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
|
133 |
-
b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
|
134 |
-
a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
|
135 |
-
d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
|
136 |
-
c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
|
137 |
-
b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
|
138 |
-
a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
|
139 |
-
d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
|
140 |
-
c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
|
141 |
-
b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
|
142 |
-
a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
|
143 |
-
d=GG(d,a,b,c,x[k+10],S22,0x2441453);
|
144 |
-
c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
|
145 |
-
b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
|
146 |
-
a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
|
147 |
-
d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
|
148 |
-
c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
|
149 |
-
b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
|
150 |
-
a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
|
151 |
-
d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
|
152 |
-
c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
|
153 |
-
b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
|
154 |
-
a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
|
155 |
-
d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
|
156 |
-
c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
|
157 |
-
b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
|
158 |
-
a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
|
159 |
-
d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
|
160 |
-
c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
|
161 |
-
b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
|
162 |
-
a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
|
163 |
-
d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
|
164 |
-
c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
|
165 |
-
b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
|
166 |
-
a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
|
167 |
-
d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
|
168 |
-
c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
|
169 |
-
b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
|
170 |
-
a=II(a,b,c,d,x[k+0], S41,0xF4292244);
|
171 |
-
d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
|
172 |
-
c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
|
173 |
-
b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
|
174 |
-
a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
|
175 |
-
d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
|
176 |
-
c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
|
177 |
-
b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
|
178 |
-
a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
|
179 |
-
d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
|
180 |
-
c=II(c,d,a,b,x[k+6], S43,0xA3014314);
|
181 |
-
b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
|
182 |
-
a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
|
183 |
-
d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
|
184 |
-
c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
|
185 |
-
b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
|
186 |
-
a=AddUnsigned(a,AA);
|
187 |
-
b=AddUnsigned(b,BB);
|
188 |
-
c=AddUnsigned(c,CC);
|
189 |
-
d=AddUnsigned(d,DD);
|
190 |
-
}
|
191 |
-
|
192 |
-
var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
|
193 |
-
|
194 |
-
return temp.toLowerCase();
|
195 |
-
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/prepare_new_user_form.js
DELETED
@@ -1,44 +0,0 @@
|
|
1 |
-
/*$rev #1 07/16/2011 {c}*/
|
2 |
-
var recaptchaPublic = "6Ld1jcASAAAAAAyGvwtF6ujAd0yf3jFlj220qcrZ";
|
3 |
-
var waiting = 0;
|
4 |
-
function ifLoaded(){
|
5 |
-
waiting++;
|
6 |
-
if(waiting>=20){
|
7 |
-
return false
|
8 |
-
}
|
9 |
-
if( typeof(wsd_form_fields) != 'undefined' &&
|
10 |
-
typeof(Recaptcha) != 'undefined' &&
|
11 |
-
document.getElementById("sw_wsd_new_user_form") &&
|
12 |
-
typeof(wsd_commonPasswords) != 'undefined')
|
13 |
-
constructForm();
|
14 |
-
else
|
15 |
-
setTimeout(ifLoaded, 250);
|
16 |
-
}
|
17 |
-
function addInputElement(holder, name, type, label, description){
|
18 |
-
var inputRow = document.createElement("TR");
|
19 |
-
var cell = document.createElement("TH");
|
20 |
-
cell.innerHTML = '<label for="' + name + '">' + label + ':</label>'
|
21 |
-
cell.setAttribute("scope", "row");
|
22 |
-
inputRow.appendChild(cell);
|
23 |
-
var cell = document.createElement("TD");
|
24 |
-
if(name=="account_website")
|
25 |
-
cell.innerHTML = '<input id="wsd_' + name + '" name="' + name + '" type="' + type + '" class="regular-text" value="' + wordpress_site_name + '"/>' +
|
26 |
-
(description?'<label for"' + name + '">' + description + '</label>':'');
|
27 |
-
else
|
28 |
-
cell.innerHTML = '<input id="wsd_' + name + '" name="' + name + '" type="' + type + '" class="regular-text"/>' +
|
29 |
-
(description?'<label for"' + name + '">' + description + '</label>':'');
|
30 |
-
inputRow.appendChild(cell);
|
31 |
-
holder.appendChild(inputRow);
|
32 |
-
}
|
33 |
-
function constructForm(){
|
34 |
-
var inputHolder = document.getElementById("wsd_new_user_form_dynamic_inputs_table");
|
35 |
-
if(!inputHolder)return false;
|
36 |
-
for(var i=0; i<wsd_form_fields.length; i++){
|
37 |
-
addInputElement(inputHolder, wsd_form_fields[i].name, wsd_form_fields[i].type, wsd_form_fields[i].label, wsd_form_fields[i].descr);
|
38 |
-
}
|
39 |
-
Recaptcha.create(recaptchaPublic, "wsd_new_user_form_captcha_div", {theme: "red"});
|
40 |
-
formReady = true;
|
41 |
-
if(img=document.getElementById("img_loading_animation"))img.style.display="none";
|
42 |
-
if(div=document.getElementById("wsd_new_user_form_div"))div.style.visibility="visible";
|
43 |
-
}
|
44 |
-
setTimeout(ifLoaded, 250);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/remove_wp_version.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
jQuery(document).ready(function($) {$("#wp-version-message, #footer-upgrade").remove();});
|
|
js/sw_wsd.js
DELETED
@@ -1,183 +0,0 @@
|
|
1 |
-
if(console===undefined){var console={log:function(){return;}};}
|
2 |
-
|
3 |
-
|
4 |
-
function sw_wsdPassStrengthProvider($)
|
5 |
-
{
|
6 |
-
this.badPass=['abc123','password','computer','123456','tigger','a1b2c3','qwerty','password1','carmen','mickey','secret','summer','internet','service','canada','ranger','shadow','baseball','donald','harley','hockey','letmein','maggie','mustang','snoopy','buster','dragon','jordan','michael','michelle','patrick','123abc','andrew','calvin','changeme','diamond','fuckme','fuckyou','matthew','miller','trustno1','12345678','123456789','avalon','brandy','chelsea','coffee','falcon','freedom','gandalf','helpme','merlin','molson','newyork','soccer','thomas','wizard','Monday','asdfgh','bandit','batman','butthead','dorothy','eeyore','fishing',
|
7 |
-
'football','george','iloveyou','jennifer','jonathan','marina','master','monday','monkey','natasha','ncc1701','newpass','pamela','pepper','piglet','poohbear','pookie','rabbit','rachel','rocket','sparky','spring','steven','success','sunshine','thx1138','victoria','whatever','zapata','8675309','Internet','amanda','august','barney','biteme','boomer','cowboy','doctor','fisher','foobar','island','joshua','marley','orange','please','rascal','richard','scooter','shalom','silver','skippy','stanley','taylor','welcome','zephyr','111111','aaaaaa','access','albert','alexander','andrea','anthony','asdfjkl;','ashley','basketball',
|
8 |
-
'beavis','booboo','bradley','brandon','caitlin','camaro','charlie','chicken','cricket','dakota','dallas','daniel','debbie','dolphin','elephant','friend','fucker','ginger','goodluck','hammer','heather','iceman','jessica','joseph','jupiter','justin','knight','lacrosse','lakers','lizard','madison','mother','muffin','murphy','ncc1701d','newuser','nirvana','pentium','phoenix','picture','rainbow','saturn','shannon','shithead','skeeter','sophie','special','stephanie','stephen','sweetie','teacher','tennis','test123','topgun','tristan','william','wilson','1q2w3e','654321','666666','a12345','a1b2c3d4','angela','archie','blazer',
|
9 |
-
'bond007','booger','charles','christin','claire','control','david1','dennis','digital','disney','edward','flipper','franklin','horses','hunter','indigo','jasper','jeremy','julian','kelsey','killer','kingfish','lauren','maryjane','matrix','maverick','mayday','mercury','mitchell','morgan','mountain','niners','nothing','oliver','peanut','pearljam','phantom','popcorn','princess','psycho','pumpkin','purple','rebecca','reddog','robert','salmon','samson','sharon','sierra','smokey','startrek','steelers','stimpy','sunflower','superman','support','sydney','techno','telecom','walter','willie','willow','winner','zxcvbnm','absolut',
|
10 |
-
'alaska','alexis','animal','apples','babylon5','backup','barbara','benjamin','bird33','bluebird','bonnie','camera','chocolate','claudia','cocacola','compton','connect','cookie','cruise','deliver','douglas','dreamer','dreams','duckie','eagles','einstein','explorer','family','ferrari','flamingo','flower','foxtrot','francis','freddy','friday','froggy','galileo','giants','global','gopher','hansolo','happy1','hendrix','herman','houston','iguana','indiana','insane','inside','ironman','jasmin','jeanne','justice','katherine','kermit','leslie','martin','minnie','nascar','nelson','netware','pantera','parker','passwd','penguin',
|
11 |
-
'porsche911','prince','punkin','pyramid','raymond','rosebud','route66','running','security','sergei','sheena','sheila','skiing','snapple','snowball','sparrow','spencer','stealth','student','sylvia','tamara','taurus','teresa','theresa','thunderbird','tigers','toyota','training','travel','tuesday','victory','viper1','wesley','whisky','winnie','winter','wolves','xyz123','123123','1234567','696969','888888','Anthony','Bond007','Friday','Hendrix','Joshua','Matthew','October','Taurus','Tigger','abcdef','adidas','adrian','alexandr','alfred','arthur','athena','austin','awesome','badger','bamboo','beagle','beatles','beautiful',
|
12 |
-
'beaver','bigmac','blonde','boogie','boston','brenda','bright','bubba1','bubbles','button','buttons','cactus','captain','carlos','caroline','carrie','casper','catalog','catch22','challenge','chance','charity','charlotte','cheese','cheryl','chris1','clancy','clipper','coltrane','compaq','conrad','cooper','cooter','copper','cosmos','cougar','cracker','crawford','crystal','curtis','cyclone','cyrano','deutsch','diablo','dilbert','dollars','dookie','dumbass','dundee','e-mail','elizabeth','europe','export','farmer','firebird','fletcher','fluffy','fountain','france','freak1','friends','fuckoff','gabriel','gabriell','galaxy',
|
13 |
-
'gambit','garden','garfield','garlic','garnet','genesis','genius','godzilla','goforit','golfer','goober','grateful','greenday','groovy','grover','guitar','hacker','hector','herbert','horizon','hornet','howard','icecream','imagine','impala','informix','janice','jasmine','jason1','jeanette','jeffrey','jenifer','jesus1','jewels','julie1','junior','justin1','kathleen','kelly1','kennedy','kevin1','knicks','larry1','ledzep','leonard','lestat','library','lincoln','lionking','london','louise','lucky1','maddog','mailman','majordomo','mantra','margaret','mariposa','market','marlboro','martin1','master1','mazda1','mensuck','mercedes',
|
14 |
-
'metallic','midori','millie','mirage','money1','monica','monopoly','mookie','moroni','nathan','ncc1701e','nesbitt','nguyen','nicholas','nicole','nimrod','october','olivia','online','oxford','pacific','painter','peaches','penelope','petunia','philip','phoenix1','pickle','player','poiuyt','porsche','porter','python','quality','raquel','remember','republic','research','robbie','robert1','runner','russell','sailing','sailor','samantha','savage','scarlett','school','shadow1','shelby','simple','skipper','smiley','snickers','sniper','snoopdog','snowman','spitfire','sprite','spunky','starwars','station','stella','stingray',
|
15 |
-
'stormy','stupid','sumuinen','sunny1','sunrise','surfer','teddy1','testing','theboss','theking','thumper','tintin','tomcat','trebor','trevor','tweety','unicorn','valentine','valerie','vanilla','veronica','victor','vincent','warrior','warriors','weasel','wheels','wilbur','winston','wisdom','wombat','xanadu','xavier','yellow','zaphod','zeppelin','!@#$%^','!@#$%^&*','10sne1','1p2o3i','3bears','Andrew','Broadway','Champs','Family','Fisher','Friends','Jeanne','Killer','Knight','Master','Michael','Michelle','Pentium','Pepper','Raistlin','Sierra','Snoopy','Tennis','Tuesday','abacab','abcd1234','abcdefg','abigail','account',
|
16 |
-
'acropolis','alice1','allison','alpine','anders','andre1','andrea1','angel1','annette','antares','apache','apollo','aragorn','arizona','arnold','arsenal','asdfasdf','asdfghjk','avenger','avenir','babydoll','bailey','banana','basket','batman1','beaner','beatrice','bertha','bigben','bigdog','biggles','bigman','biology','bishop','blondie','blowfish','bluefish','bobcat','braves','brazil','bridges','brutus','buffalo','bulldog','bullet','bullshit','business','butler','butter','california','cannondale','carebear','carol1','carole','cassie','castle','catalina','catherine','catnip','cccccc','celine','center','champion','chanel',
|
17 |
-
'chelsea1','chester1','chicago','christian','christy','church','cinder','colleen','colorado','columbia','commander','connie','content','cookies','cooking','cordelia','corona','cowboys','coyote','crack1','creative','cuddles','cuervo','daisie','daniel1','danielle','database','davids','deadhead','denali','depeche','design','destiny','dickens','dickhead','digger','dodger','dougie','dragonfly','eclipse','electric','emerald','emmitt','entropy','etoile','excalibur','express','farout','farside','feedback','fender','fireman','firenze','fletch','florida','flowers','foster','fozzie','francesco','francine','francois','french','fuckface',
|
18 |
-
'gargoyle','gasman','gemini','general','gerald','germany','gilbert','goaway','golden','goldfish','gordon','graham','graphic','gregory','gretchen','gunner','hal9000','hannah','harold','harrison','harvey','hawkeye','heaven','helena','herzog','hithere','hobbit','ibanez','idontknow','integra','intern','intrepid','ireland','isabel','jackie','jackson','jaguar','jamaica','jenny1','jessie','jethrotull','jkl123','johanna1','johnny','joker1','jordan23','judith','jumanji','kangaroo','karen1','keepout','keith1','kenneth','kidder','kimberly','kingdom','kitkat','kramer','kristen','lambda','laurie','lawrence','lawyer','legend','liberty',
|
19 |
-
'lindsay','lindsey','liverpool','logical','lonely','lorrie','lovely','loveme','madonna','malcolm','malibu','marathon','marcel','maria1','mariah','mariah1','marilyn','mariner','marvin','maurice','maxine','maxwell','meggie','melanie','melissa','melody','merlot','mexico','michael1','michele','midnight','midway','miracle','mishka','mmouse','molly1','monique','montreal','moocow','morris','mortimer','mouse1','mulder','nautica','nellie','nermal','newton','nicarao','nirvana1','nissan','norman','notebook','olivier','oranges','oregon','overkill','pacers','packer','pandora','panther','passion','patricia','peewee','pencil','people',
|
20 |
-
'person','peter1','picard','picasso','pierre','pinkfloyd','polaris','police','pookie1','predator','preston','primus','prometheus','public','q1w2e3','queenie','quentin','random','rangers','raptor','rastafarian','reality','redrum','remote','reptile','reynolds','rhonda','ricardo','ricardo1','roadrunner','robinhood','robotech','rocknroll','rocky1','ronald','ruthie','sabrina','sakura','salasana','sampson','samuel','sandra','sapphire','scarecrow','scarlet','scorpio','scott1','scottie','scruffy','scuba1','seattle','serena','sergey','shanti','shogun','singer','skibum','skywalker','slacker','smashing','smiles','snowflake','snowski',
|
21 |
-
'snuffy','soccer1','soleil','spanky','speedy','spider','spooky','stacey','star69','starter','steven1','sting1','stinky','strawberry','stuart','sunbird','sundance','superfly','suzanne','suzuki','swimmer','swimming','system','tarzan','teddybear','teflon','temporal','terminal','theatre','thejudge','thunder','thursday','tinker','tootsie','tornado','tricia','trident','trojan','truman','trumpet','tucker','turtle','utopia','valhalla','voyager','warcraft','warlock','warren','williams','windsurf','winona','woofwoof','wrangler','wright','xcountry','xfiles','xxxxxx','yankees','yvonne','zenith','zigzag','zombie','zxc123','000000',
|
22 |
-
'007007','11111111','123321','171717','181818','1a2b3c','1chris','1kitty','1qw23e','4runner','57chevy','7777777','789456','7dwarfs','88888888','Abcdefg','Alexis','Animals','Bailey','Bastard','Beavis','Bismillah','Booboo','Boston','Canucks','Cardinal','Celtics','ChangeMe','Charlie','Computer','Cougar','Creative','Curtis','Daniel','Darkman','Denise','Dragon','Eagles','Elizabeth','Esther','Figaro','Fishing','Fortune','Freddy','Front242','Gandalf','Geronimo','Gingers','Golden','Goober','Gretel','HARLEY','Hacker','Hammer','Harley','Heather','Hershey','Jackson','Jennifer','Jersey','Jessica','Joanna','Johnson','Jordan','KILLER',
|
23 |
-
'Kitten','Liberty','Lindsay','Lizard','Madeline','Margaret','Maxwell','Mellon','Merlot','Metallic','Michel1','Monster','Montreal','Newton','Nicholas','Noriko','Paladin','Pamela','Password','Peaches','Peanuts','Phoenix','Piglet','Pookie','Princess','Purple','Rabbit','Raiders','Random','Rebecca','Robert','Russell','Saturn','Service','Shadow','Sidekick','Skeeter','Smokey','Sparky','Speedy','Sterling','Steven','Summer','Sunshine','Superman','Sverige','Swoosh','Taylor','Theresa','Thomas','Thunder','Vernon','Victoria','Vincent','Waterloo','Webster','Willow','Winnie','Wolverine','Woodrow','aardvark','abbott','abcd123','accord',
|
24 |
-
'active','admin1','adrock','aerobics','africa','airborne','airwolf','aki123','alfaro','alicia','aliens','alison','allegro','allstate','alpha1','altamira','althea','altima','altima1','amanda1','amazing','america','anderson','andrew!','andrew1','andromed','angels','angie1','anneli','anything','apple1','apple2','applepie','aptiva','aquarius','ariane','arlene','artemis','asdf1234','asdf;lkj','asdfjkl','ashley1','ashraf','ashton','assmunch','asterix','attila','autumn','avatar','ayelet','aylmer','baraka','barbie','barney1','barnyard','barrett','bartman','beaches','beanie','beasty','beauty','beavis1','belgium','belize','belmont',
|
25 |
-
'benson','beowulf','bernardo','betacam','bharat','bichon','bigboss','bigred','billy1','bimmer','bioboy','biochem','birdie','birthday','biscuit','bitter','blackjack','blanche','blinds','blowjob','blowme','blueeyes','bluejean','bogart','bombay','boobie','bootsie','boulder','bourbon','boxers','branch','brandi','brewster','bridge','britain','broker','bronco','bronte','brooke','brother','bubble','buddha','budgie','buffett','burton','butterfly','c00per','calendar','calgary','calvin1','camille','campbell','camping','cancer','canela','cannon','carbon','carnage','carolyn','carrot','cascade','catfish','catwoman','cecile','celica',
|
26 |
-
'cement','cessna','chainsaw','chameleon','change','chantal','charger','cherry','chiara','chiefs','chinacat','chinook','chouette','chris123','christ1','christmas','christopher','chronos','cicero','cindy1','cinema','circuit','cirque','cirrus','clapton','clarkson','claude','claudel','clueless','cobain','colette','college','colors','colt45','concept','concorde','confused','coolbean','cornflake','corvette','corwin','country','courier','crescent','crowley','crusader','cthulhu','cunningham','cupcake','current','cutlass','cynthia','daedalus','dagger','dagger1','dammit','damogran','dancer','daphne','darkstar','darren','darryl',
|
27 |
-
'darwin','datatrain','daytek','deborah','december','decker','deedee','deeznuts','delano','delete','denise','desert','deskjet','detroit','devine','dexter','dharma','dianne','diesel','dillweed','dipper','director','dodgers','dogbert','doitnow','dollar','dominique','domino','dontknow','doogie','doudou','downtown','dragon1','driver','dudley','dutchess','dwight','eagle1','easter','eastern','edmund','element','elina1','elissa','elliot','empire','engage','enigma','enterprise','ernie1','escort','escort1','estelle','eugene','evelyn','explore','faculty','fairview','family1','fatboy','felipe','fenris','ferguson','ferret','ferris',
|
28 |
-
'finance','fireball','fishes','fishhead','fishie','flanders','fleurs','flight','florida1','flowerpot','flyboy','forward','franka','freddie','frederic','freebird','freeman','frisco','froggie','froggies','front242','frontier','fugazi','funguy','funtime','future','gaelic','gambler','gammaphi','garcia','garfunkel','gaston','gateway','gateway2','gator1','george1','georgia','german','germany1','getout','ggeorge','gibbons','gibson','gilgamesh','giselle','glider1','gmoney','goblin','goblue','godiva','goethe','gofish','gollum','gramps','grandma','gravis','gremlin','gretzky','grizzly','grumpy','guitar1','gustavo','h2opolo','haggis',
|
29 |
-
'hailey','halloween','hallowell','hamilton','hamlet','hanson','happy123','happyday','hardcore','harley1','harriet','harris','harvard','hawkeye1','health','health1','heather1','heather2','hedgehog','heikki','helene','hello1','hello123','hello8','hellohello','help123','helper','hermes','heythere','highland','hillary','histoire','history','hitler','hobbes','holiday','homerj','honda1','hongkong','hoosier','hootie','hosehead','hotrod','hudson','hummer','huskies','hydrogen','ib6ub9','if6was9','iforget','ilmari','iloveu','impact','indonesia','ingvar','insight','instruct','integral','iomega','irmeli','isabelle','israel','italia',
|
30 |
-
'j1l2t3','jackie1','james1','jamesbond','jamjam','jeepster','jeffrey1','jennie','jensen','jesse1','jester','jethro','jetta1','jimbob','joanie','joanna','joelle','john316','jordie','journey','jubilee','juhani','julia2','julien','juliet','junebug','juniper','justdoit','justice4','kalamazo','karine','katerina','katie1','keeper','keller','kendall','kerala','kerrya','ketchup','kissa2','kissme','kitten','kittycat','kkkkkk','kleenex','kombat','kristi','kristine','labtec','laddie','ladybug','laserjet','lassie1','laurel','lawson','leader','leblanc','leland','lester','letter','letters','lexus1','lights','lionel','lissabon','little',
|
31 |
-
'logger','loislane','lolita','lonestar','longer','longhorn','looney','lovers','loveyou','lucifer','lucky14','macross','macse30','maddie','madmax','madoka','magic1','magnum','maiden','makeitso','mallard','manageme','manson','manuel','marcus','marielle','marine','marino','marshall','martha','matti1','mattingly','maxmax','meatloaf','mechanic','medical','meister','melina','memphis','mercer','mermaid','merrill','michal','michel','michigan','michou','mickel','mickey1','microsoft','midvale','mikael','milano','millenium','million','miranda','miriam','mission','mmmmmm','mobile','mobydick','monkey1','monroe','montana','montana3',
|
32 |
-
'montrose','moomoo','moonbeam','morecats','morpheus','motorola','movies','mowgli','mozart','mulder1','munchkin','murray','muscle','mustang1','nadine','napoleon','nation','national','nesbit','nestle','neutrino','newaccount','newlife','newyork1','nexus6','nichole','nicklaus','nightshadow','nightwind','nikita','nintendo','nomore','nopass','normal','norton','notta1','nouveau','novell','nugget','number9','numbers','nutmeg','oaxaca','obiwan','obsession','ohshit','oicu812','openup','orchid','orlando','orville','paagal','packard','packers','packrat','paloma','pancake','paradigm','parola','parrot','partner','pascal','patches',
|
33 |
-
'patriots','pauline','payton','peanuts','pedro1','perfect','performa','peterk','peterpan','phialpha','philips','phillips','phishy','piano1','pianoman','pianos','pierce','pigeon','pioneer','pipeline','piper1','pirate','pisces','playboy','poetic','poetry','pontiac','pookey','popeye','prayer','precious','prelude','premier','printing','provider','puddin','pulsar','pussy1','qqq111','quebec','qwerty12','qwertyui','rabbit1','racerx','rachelle','racoon','rafiki','raleigh','randy1','rasta1','ravens','redcloud','redfish','redman','redskins','redwing','redwood','reggae','reggie','reliant','renegade','rescue','revolution','reznor',
|
34 |
-
'rhjrjlbk','richard1','richards','richmond','ripper','ripple','roberts','robocop','robotics','rocket1','rockie','rockon','roger1','rogers','roland','rommel','rookie','rootbeer','rossigno','rugger','ruthless','sabbath','sabina','safety','safety1','saigon','samIam','samiam','sammie','samsam','sanjose','saphire','sarah1','saskia','satori','saturday','saturn5','schnapps','science','scooby','scoobydoo','scooter1','scorpion','scotch','scotty','scouts','search','secret3','seeker','september','server','services','seven7','shaggy','shanghai','shanny','shaolin','shasta','shayne','shazam','shelly','shelter','sherry','shirley',
|
35 |
-
'shorty','shotgun','sidney','sigmachi','signal','signature','simba1','simsim','sinatra','sirius','skipper1','skydive','skyler','slayer','sleepy','slider','smegma','smile1','smiths','smitty','smurfy','snakes','snapper','sober1','solomon','sonics','sophia','sparks','spartan','sphynx','spike1','sponge','sprocket','squash','starbuck','stargate','starlight','steph1','stephi','steve1','stevens','stewart','stivers','stocks','storage','stranger','strato','stretch','strong','student2','studio','stumpy','sucker','suckme','sultan','summit','sunfire','sunset','superstar','surfing','susan1','susanna','sutton','swanson','sweden',
|
36 |
-
'sweetpea','sweety','switzer','swordfish','system5','t-bone','tabatha','tacobell','taiwan','tamtam','tanner','tapani','targas','target','tarheel','tattoo','tazdevil','tequila','terry1','tester','testtest','thankyou','theend','thelorax','thisisit','thompson','thorne','thrasher','tiger2','tightend','timber','timothy','tinkerbell','topcat','topher','toshiba','tototo','toucan','transfer','transit','transport','trapper','travis','treasure','tricky','triton','trombone','trophy','trouble','trucker','tucson','turbo2','tyler1','ultimate','unique','united','upsilon','ursula','vacation','valley','vampire','vanessa','vedder',
|
37 |
-
'venice','vermont','victor1','vikram','vincent1','violet','violin','virago','virgil','virginia','vision','visual','volcano','volley','voodoo','vortex','waiting','walden','walleye','wanker','warner','water1','wayne1','webmaster','webster','weezer','wendy1','western','whale1','whitney','whocares','whoville','wibble','wildcat','william1','window','winniethepooh','wolfgang','wolverine','wombat1','wonder','x-files','xxx123','xxxxxxxx','yamaha','yankee','yogibear','yolanda','yomama','yvette','zachary','zebras','zepplin','zoltan','zoomer','zxcvbn','!@#$%^&','00000000','121212','1234qwer','131313','21122112','99999999',
|
38 |
-
'@#$%^&','ABC123','Abcdef','Asdfgh','Changeme','FuckYou','Fuckyou','JSBach','Michel','NCC1701','Qwerty','Windows','Zxcvbnm','action','amelie','anaconda','apollo13','artist','asshole','benoit','bernard','bernie','bigbird','blizzard','bluesky','bonjour','booster','byteme','caesar','cardinal','carolina','chandler','changeit','chapman','charlie1','chiquita','chocolat','christia','christoph','classroom','cloclo','corrado','cougars','courtney','dolphins','dominic','donkey','eminem','energy','fearless','fiction','forest','forever','french1','gilles','gocougs','good-luck','graymail','guinness','hilbert','homebrew','hotdog',
|
39 |
-
'indian','johnson','kristin','lorraine','m1911a1','macintosh','mailer','maxime','memory','mirror','ne1410s','ne1469','ne14a69','nebraska','nemesis','network','newcourt','notused','oatmeal','patton','planet','players','politics','portland','praise','property','protel','psalms','qwaszx','raiders','rambo1','rancid','scrooge','shelley','skidoo','softball','speedo','sports','ssssss','steele','stephani','sunday','sylvie','symbol','tiffany','toronto','trixie','undead','valentin','velvet','viking','walker','watson','zhongguo','babygirl','1234567890','pretty','hottie','987654321','naruto','spongebob','daniela','princesa',
|
40 |
-
'christ','blessed','single','qazwsx','pokemon','iloveyou1','iloveyou2','fuckyou1','hahaha','blessing','blahblah','blink182','123qwe','trinity','passw0rd','google','looking','spirit','iloveyou!','qwerty1','rotimi','onelove','mylove','222222','ilovegod','football1','loving','emmanuel','1q2w3e4r','red123','blabla','112233'];
|
41 |
-
|
42 |
-
this.showPassStrength = function(score)
|
43 |
-
{
|
44 |
-
var ind = $('.password-meter');
|
45 |
-
if(score == undefined)
|
46 |
-
{
|
47 |
-
ind.hide();
|
48 |
-
ind.css('background-color','#ffffff');
|
49 |
-
return;
|
50 |
-
}
|
51 |
-
ind.show();
|
52 |
-
if(score == -1)
|
53 |
-
{
|
54 |
-
ind.html('Too Short');
|
55 |
-
ind.css('background-color','#ee0000');
|
56 |
-
}
|
57 |
-
else if(score == 0)
|
58 |
-
{
|
59 |
-
ind.html('Obvious');
|
60 |
-
ind.css('background-color','#ee0000');
|
61 |
-
}
|
62 |
-
else if(score < 34)
|
63 |
-
{
|
64 |
-
ind.html('Bad');
|
65 |
-
ind.css('background-color','#eeaaaa');
|
66 |
-
}
|
67 |
-
else if(score < 68)
|
68 |
-
{
|
69 |
-
ind.html('Good');
|
70 |
-
ind.css('background-color','#ffff00');
|
71 |
-
}
|
72 |
-
else
|
73 |
-
{
|
74 |
-
ind.html('Strong');
|
75 |
-
ind.css('background-color','#00ff00');
|
76 |
-
}
|
77 |
-
};
|
78 |
-
|
79 |
-
this.getPassStrength = function(pass)
|
80 |
-
{
|
81 |
-
if(typeof pass != 'string'){ this.showPassStrength();return -1;}
|
82 |
-
var len = pass.length;
|
83 |
-
if(len == 0){this.showPassStrength();return -1;}
|
84 |
-
if(len < 6)
|
85 |
-
{
|
86 |
-
this.showPassStrength(-1);
|
87 |
-
return -1;
|
88 |
-
}
|
89 |
-
for(var i=0;i<this.badPass.length;i++)
|
90 |
-
if(this.badPass[i] == pass)
|
91 |
-
{
|
92 |
-
this.showPassStrength(0);
|
93 |
-
return 0;
|
94 |
-
}
|
95 |
-
var score=len*4;
|
96 |
-
var a=0;
|
97 |
-
var C=0;
|
98 |
-
var n=0;
|
99 |
-
var s=0;
|
100 |
-
var l='';
|
101 |
-
for(var i=0;i<len;i++)
|
102 |
-
{
|
103 |
-
if(l==pass.charAt(i)) score -= 1; else l=pass.charAt(i);
|
104 |
-
if((pass.charAt(i)>='a')&&(pass.charAt(i)<='z')){a++;continue;}
|
105 |
-
if((pass.charAt(i)>='A')&&(pass.charAt(i)<='Z')){C++;continue;}
|
106 |
-
if((pass.charAt(i)>='0')&&(pass.charAt(i)<='9')){n++;continue;}
|
107 |
-
s++;
|
108 |
-
}
|
109 |
-
if(len == a) score -= 10;
|
110 |
-
if(len == n) score -= 10;
|
111 |
-
if(len == C) score -= 10;
|
112 |
-
if(n > 0) score += 5;
|
113 |
-
if(C > 0) score += 5;
|
114 |
-
if(s > 0) score += 5;
|
115 |
-
if((n>0)&&(a>0)) score += 15;
|
116 |
-
if((C>0)&&(a>0)) score += 15;
|
117 |
-
if((s>0)&&(a>0)) score += 15;
|
118 |
-
if(score > 100) score = 100;
|
119 |
-
|
120 |
-
this.showPassStrength(score);
|
121 |
-
return score;
|
122 |
-
};
|
123 |
-
|
124 |
-
|
125 |
-
// called on document.ready
|
126 |
-
this.init = function() {
|
127 |
-
var $wsd_new_user_form = $('#sw_wsd_new_user_form');
|
128 |
-
// Hook for keyup events to display password strength
|
129 |
-
$wsd_new_user_form.delegate('#wsd_new_user_password', 'keyup',
|
130 |
-
function() {
|
131 |
-
_sw_wsdPassStrengthProvider.getPassStrength($('#wsd_new_user_password').val());
|
132 |
-
});
|
133 |
-
|
134 |
-
// Hook for submit event to prevent form submision if password strength is <= BAD
|
135 |
-
$wsd_new_user_form.delegate('#wsd-new-user', 'click',
|
136 |
-
function() {
|
137 |
-
var $wsd_new_user_password = $('#wsd_new_user_password');
|
138 |
-
var $wsd_new_user_password_re = $('#wsd_new_user_password_re');
|
139 |
-
|
140 |
-
if ($wsd_new_user_password.val() != $wsd_new_user_password_re.val()) {
|
141 |
-
alert('Passwords do not match.');
|
142 |
-
return false;
|
143 |
-
}
|
144 |
-
|
145 |
-
var score = _sw_wsdPassStrengthProvider.getPassStrength($wsd_new_user_password.val());
|
146 |
-
|
147 |
-
if (score <= 1) {
|
148 |
-
alert('The selected password is weak! Please select passwords with a minimum length of 6 characters, also including numbers and/or special characters is recomended.');
|
149 |
-
$wsd_new_user_password.val('');
|
150 |
-
$wsd_new_user_password_re.val('');
|
151 |
-
_sw_wsdPassStrengthProvider.showPassStrength(score);
|
152 |
-
return false;
|
153 |
-
}
|
154 |
-
else {
|
155 |
-
var password = $wsd_new_user_password.val();
|
156 |
-
var passwordHash = wsdMD5(password);
|
157 |
-
|
158 |
-
$wsd_new_user_password.val(passwordHash);
|
159 |
-
$wsd_new_user_password_re.val(passwordHash);
|
160 |
-
}
|
161 |
-
return true;
|
162 |
-
});
|
163 |
-
|
164 |
-
var $wsd_login_form = $('#sw_wsd_login_form');
|
165 |
-
if ($wsd_login_form.length > 0) {
|
166 |
-
$wsd_login_form.delegate('#wsd-login', 'click',
|
167 |
-
function() {
|
168 |
-
var $wsd_login_form_password = $('#wsd_login_form_password');
|
169 |
-
var password = $wsd_login_form_password.val();
|
170 |
-
if (password != '') {
|
171 |
-
var passwordHash = wsdMD5(password);
|
172 |
-
$wsd_login_form_password.val(passwordHash);
|
173 |
-
}
|
174 |
-
else {
|
175 |
-
alert('Password is required!');
|
176 |
-
$wsd_login_form_password.focus();
|
177 |
-
return false;
|
178 |
-
}
|
179 |
-
return true;
|
180 |
-
});
|
181 |
-
}
|
182 |
-
};
|
183 |
-
}// end of wsdPassStrengthProvider
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/sw_wsd_scripts.js
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* wsd registration form
|
3 |
-
* $rev #1 07/15/2011 k$
|
4 |
-
*/
|
5 |
-
var _sw_wsdPassStrengthProvider = null;
|
6 |
-
jQuery(document).ready(function($) {
|
7 |
-
_sw_wsdPassStrengthProvider = new sw_wsdPassStrengthProvider($);
|
8 |
-
_sw_wsdPassStrengthProvider.init();
|
9 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/verify_form.js
DELETED
@@ -1,137 +0,0 @@
|
|
1 |
-
var wsd_commonPasswords=['abc123','password','computer','123456','tigger','a1b2c3','qwerty','password1','carmen','mickey','secret','summer','internet','service','canada','ranger','shadow','baseball','donald','harley','hockey','letmein','maggie','mustang','snoopy','buster','dragon','jordan','michael','michelle','patrick','123abc','andrew','calvin','changeme','diamond','fuckme','fuckyou','matthew','miller','trustno1','12345678','123456789','avalon','brandy','chelsea','coffee','falcon','freedom','gandalf','helpme','merlin','molson','newyork','soccer','thomas','wizard','Monday','asdfgh','bandit','batman','butthead','dorothy','eeyore','fishing','football','george','iloveyou','jennifer','jonathan','marina','master','monday','monkey','natasha','ncc1701','newpass','pamela','pepper','piglet','poohbear','pookie','rabbit','rachel','rocket','sparky','spring','steven','success','sunshine','thx1138','victoria','whatever','zapata','8675309','Internet','amanda','august','barney','biteme','boomer','cowboy','doctor','fisher','foobar','island','joshua','marley','orange','please','rascal','richard','scooter','shalom','silver','skippy','stanley','taylor','welcome','zephyr','111111','aaaaaa','access','albert','alexander','andrea','anthony','asdfjkl;','ashley','basketball','beavis','booboo','bradley','brandon','caitlin','camaro','charlie','chicken','cricket','dakota','dallas','daniel','debbie','dolphin','elephant','friend','fucker','ginger','goodluck','hammer','heather','iceman','jessica','joseph','jupiter','justin','knight','lacrosse','lakers','lizard','madison','mother','muffin','murphy','ncc1701d','newuser','nirvana','pentium','phoenix','picture','rainbow','saturn','shannon','shithead','skeeter','sophie','special','stephanie','stephen','sweetie','teacher','tennis','test123','topgun','tristan','william','wilson','1q2w3e','654321','666666','a12345','a1b2c3d4','angela','archie','blazer','bond007','booger','charles','christin','claire','control','david1','dennis','digital','disney','edward','flipper','franklin','horses','hunter','indigo','jasper','jeremy','julian','kelsey','killer','kingfish','lauren','maryjane','matrix','maverick','mayday','mercury','mitchell','morgan','mountain','niners','nothing','oliver','peanut','pearljam','phantom','popcorn','princess','psycho','pumpkin','purple','rebecca','reddog','robert','salmon','samson','sharon','sierra','smokey','startrek','steelers','stimpy','sunflower','superman','support','sydney','techno','telecom','walter','willie','willow','winner','zxcvbnm','absolut','alaska','alexis','animal','apples','babylon5','backup','barbara','benjamin','bird33','bluebird','bonnie','camera','chocolate','claudia','cocacola','compton','connect','cookie','cruise','deliver','douglas','dreamer','dreams','duckie','eagles','einstein','explorer','family','ferrari','flamingo','flower','foxtrot','francis','freddy','friday','froggy','galileo','giants','global','gopher','hansolo','happy1','hendrix','herman','houston','iguana','indiana','insane','inside','ironman','jasmin','jeanne','justice','katherine','kermit','leslie','martin','minnie','nascar','nelson','netware','pantera','parker','passwd','penguin','porsche911','prince','punkin','pyramid','raymond','rosebud','route66','running','security','sergei','sheena','sheila','skiing','snapple','snowball','sparrow','spencer','stealth','student','sylvia','tamara','taurus','teresa','theresa','thunderbird','tigers','toyota','training','travel','tuesday','victory','viper1','wesley','whisky','winnie','winter','wolves','xyz123','123123','1234567','696969','888888','Anthony','Bond007','Friday','Hendrix','Joshua','Matthew','October','Taurus','Tigger','abcdef','adidas','adrian','alexandr','alfred','arthur','athena','austin','awesome','badger','bamboo','beagle','beatles','beautiful','beaver','bigmac','blonde','boogie','boston','brenda','bright','bubba1','bubbles','button','buttons','cactus','captain','carlos','caroline','carrie','casper','catalog','catch22','challenge','chance','charity','charlotte','cheese','cheryl','chris1','clancy','clipper','coltrane','compaq','conrad','cooper','cooter','copper','cosmos','cougar','cracker','crawford','crystal','curtis','cyclone','cyrano','deutsch','diablo','dilbert','dollars','dookie','dumbass','dundee','e-mail','elizabeth','europe','export','farmer','firebird','fletcher','fluffy','fountain','france','freak1','friends','fuckoff','gabriel','gabriell','galaxy','gambit','garden','garfield','garlic','garnet','genesis','genius','godzilla','goforit','golfer','goober','grateful','greenday','groovy','grover','guitar','hacker','hector','herbert','horizon','hornet','howard','icecream','imagine','impala','informix','janice','jasmine','jason1','jeanette','jeffrey','jenifer','jesus1','jewels','julie1','junior','justin1','kathleen','kelly1','kennedy','kevin1','knicks','larry1','ledzep','leonard','lestat','library','lincoln','lionking','london','louise','lucky1','maddog','mailman','majordomo','mantra','margaret','mariposa','market','marlboro','martin1','master1','mazda1','mensuck','mercedes','metallic','midori','millie','mirage','money1','monica','monopoly','mookie','moroni','nathan','ncc1701e','nesbitt','nguyen','nicholas','nicole','nimrod','october','olivia','online','oxford','pacific','painter','peaches','penelope','petunia','philip','phoenix1','pickle','player','poiuyt','porsche','porter','python','quality','raquel','remember','republic','research','robbie','robert1','runner','russell','sailing','sailor','samantha','savage','scarlett','school','shadow1','shelby','simple','skipper','smiley','snickers','sniper','snoopdog','snowman','spitfire','sprite','spunky','starwars','station','stella','stingray','stormy','stupid','sumuinen','sunny1','sunrise','surfer','teddy1','testing','theboss','theking','thumper','tintin','tomcat','trebor','trevor','tweety','unicorn','valentine','valerie','vanilla','veronica','victor','vincent','warrior','warriors','weasel','wheels','wilbur','winston','wisdom','wombat','xanadu','xavier','yellow','zaphod','zeppelin','!@#$%^','!@#$%^&*','10sne1','1p2o3i','3bears','Andrew','Broadway','Champs','Family','Fisher','Friends','Jeanne','Killer','Knight','Master','Michael','Michelle','Pentium','Pepper','Raistlin','Sierra','Snoopy','Tennis','Tuesday','abacab','abcd1234','abcdefg','abigail','account','acropolis','alice1','allison','alpine','anders','andre1','andrea1','angel1','annette','antares','apache','apollo','aragorn','arizona','arnold','arsenal','asdfasdf','asdfghjk','avenger','avenir','babydoll','bailey','banana','basket','batman1','beaner','beatrice','bertha','bigben','bigdog','biggles','bigman','biology','bishop','blondie','blowfish','bluefish','bobcat','braves','brazil','bridges','brutus','buffalo','bulldog','bullet','bullshit','business','butler','butter','california','cannondale','carebear','carol1','carole','cassie','castle','catalina','catherine','catnip','cccccc','celine','center','champion','chanel','chelsea1','chester1','chicago','christian','christy','church','cinder','colleen','colorado','columbia','commander','connie','content','cookies','cooking','cordelia','corona','cowboys','coyote','crack1','creative','cuddles','cuervo','daisie','daniel1','danielle','database','davids','deadhead','denali','depeche','design','destiny','dickens','dickhead','digger','dodger','dougie','dragonfly','eclipse','electric','emerald','emmitt','entropy','etoile','excalibur','express','farout','farside','feedback','fender','fireman','firenze','fletch','florida','flowers','foster','fozzie','francesco','francine','francois','french','fuckface','gargoyle','gasman','gemini','general','gerald','germany','gilbert','goaway','golden','goldfish','gordon','graham','graphic','gregory','gretchen','gunner','hal9000','hannah','harold','harrison','harvey','hawkeye','heaven','helena','herzog','hithere','hobbit','ibanez','idontknow','integra','intern','intrepid','ireland','isabel','jackie','jackson','jaguar','jamaica','jenny1','jessie','jethrotull','jkl123','johanna1','johnny','joker1','jordan23','judith','jumanji','kangaroo','karen1','keepout','keith1','kenneth','kidder','kimberly','kingdom','kitkat','kramer','kristen','lambda','laurie','lawrence','lawyer','legend','liberty','lindsay','lindsey','liverpool','logical','lonely','lorrie','lovely','loveme','madonna','malcolm','malibu','marathon','marcel','maria1','mariah','mariah1','marilyn','mariner','marvin','maurice','maxine','maxwell','meggie','melanie','melissa','melody','merlot','mexico','michael1','michele','midnight','midway','miracle','mishka','mmouse','molly1','monique','montreal','moocow','morris','mortimer','mouse1','mulder','nautica','nellie','nermal','newton','nicarao','nirvana1','nissan','norman','notebook','olivier','oranges','oregon','overkill','pacers','packer','pandora','panther','passion','patricia','peewee','pencil','people','person','peter1','picard','picasso','pierre','pinkfloyd','polaris','police','pookie1','predator','preston','primus','prometheus','public','q1w2e3','queenie','quentin','random','rangers','raptor','rastafarian','reality','redrum','remote','reptile','reynolds','rhonda','ricardo','ricardo1','roadrunner','robinhood','robotech','rocknroll','rocky1','ronald','ruthie','sabrina','sakura','salasana','sampson','samuel','sandra','sapphire','scarecrow','scarlet','scorpio','scott1','scottie','scruffy','scuba1','seattle','serena','sergey','shanti','shogun','singer','skibum','skywalker','slacker','smashing','smiles','snowflake','snowski','snuffy','soccer1','soleil','spanky','speedy','spider','spooky','stacey','star69','starter','steven1','sting1','stinky','strawberry','stuart','sunbird','sundance','superfly','suzanne','suzuki','swimmer','swimming','system','tarzan','teddybear','teflon','temporal','terminal','theatre','thejudge','thunder','thursday','tinker','tootsie','tornado','tricia','trident','trojan','truman','trumpet','tucker','turtle','utopia','valhalla','voyager','warcraft','warlock','warren','williams','windsurf','winona','woofwoof','wrangler','wright','xcountry','xfiles','xxxxxx','yankees','yvonne','zenith','zigzag','zombie','zxc123','000000','007007','11111111','123321','171717','181818','1a2b3c','1chris','1kitty','1qw23e','4runner','57chevy','7777777','789456','7dwarfs','88888888','Abcdefg','Alexis','Animals','Bailey','Bastard','Beavis','Bismillah','Booboo','Boston','Canucks','Cardinal','Celtics','ChangeMe','Charlie','Computer','Cougar','Creative','Curtis','Daniel','Darkman','Denise','Dragon','Eagles','Elizabeth','Esther','Figaro','Fishing','Fortune','Freddy','Front242','Gandalf','Geronimo','Gingers','Golden','Goober','Gretel','HARLEY','Hacker','Hammer','Harley','Heather','Hershey','Jackson','Jennifer','Jersey','Jessica','Joanna','Johnson','Jordan','KILLER','Kitten','Liberty','Lindsay','Lizard','Madeline','Margaret','Maxwell','Mellon','Merlot','Metallic','Michel1','Monster','Montreal','Newton','Nicholas','Noriko','Paladin','Pamela','Password','Peaches','Peanuts','Phoenix','Piglet','Pookie','Princess','Purple','Rabbit','Raiders','Random','Rebecca','Robert','Russell','Saturn','Service','Shadow','Sidekick','Skeeter','Smokey','Sparky','Speedy','Sterling','Steven','Summer','Sunshine','Superman','Sverige','Swoosh','Taylor','Theresa','Thomas','Thunder','Vernon','Victoria','Vincent','Waterloo','Webster','Willow','Winnie','Wolverine','Woodrow','aardvark','abbott','abcd123','accord','active','admin1','adrock','aerobics','africa','airborne','airwolf','aki123','alfaro','alicia','aliens','alison','allegro','allstate','alpha1','altamira','althea','altima','altima1','amanda1','amazing','america','anderson','andrew!','andrew1','andromed','angels','angie1','anneli','anything','apple1','apple2','applepie','aptiva','aquarius','ariane','arlene','artemis','asdf1234','asdf;lkj','asdfjkl','ashley1','ashraf','ashton','assmunch','asterix','attila','autumn','avatar','ayelet','aylmer','baraka','barbie','barney1','barnyard','barrett','bartman','beaches','beanie','beasty','beauty','beavis1','belgium','belize','belmont','benson','beowulf','bernardo','betacam','bharat','bichon','bigboss','bigred','billy1','bimmer','bioboy','biochem','birdie','birthday','biscuit','bitter','blackjack','blanche','blinds','blowjob','blowme','blueeyes','bluejean','bogart','bombay','boobie','bootsie','boulder','bourbon','boxers','branch','brandi','brewster','bridge','britain','broker','bronco','bronte','brooke','brother','bubble','buddha','budgie','buffett','burton','butterfly','c00per','calendar','calgary','calvin1','camille','campbell','camping','cancer','canela','cannon','carbon','carnage','carolyn','carrot','cascade','catfish','catwoman','cecile','celica','cement','cessna','chainsaw','chameleon','change','chantal','charger','cherry','chiara','chiefs','chinacat','chinook','chouette','chris123','christ1','christmas','christopher','chronos','cicero','cindy1','cinema','circuit','cirque','cirrus','clapton','clarkson','claude','claudel','clueless','cobain','colette','college','colors','colt45','concept','concorde','confused','coolbean','cornflake','corvette','corwin','country','courier','crescent','crowley','crusader','cthulhu','cunningham','cupcake','current','cutlass','cynthia','daedalus','dagger','dagger1','dammit','damogran','dancer','daphne','darkstar','darren','darryl','darwin','datatrain','daytek','deborah','december','decker','deedee','deeznuts','delano','delete','denise','desert','deskjet','detroit','devine','dexter','dharma','dianne','diesel','dillweed','dipper','director','dodgers','dogbert','doitnow','dollar','dominique','domino','dontknow','doogie','doudou','downtown','dragon1','driver','dudley','dutchess','dwight','eagle1','easter','eastern','edmund','element','elina1','elissa','elliot','empire','engage','enigma','enterprise','ernie1','escort','escort1','estelle','eugene','evelyn','explore','faculty','fairview','family1','fatboy','felipe','fenris','ferguson','ferret','ferris','finance','fireball','fishes','fishhead','fishie','flanders','fleurs','flight','florida1','flowerpot','flyboy','forward','franka','freddie','frederic','freebird','freeman','frisco','froggie','froggies','front242','frontier','fugazi','funguy','funtime','future','gaelic','gambler','gammaphi','garcia','garfunkel','gaston','gateway','gateway2','gator1','george1','georgia','german','germany1','getout','ggeorge','gibbons','gibson','gilgamesh','giselle','glider1','gmoney','goblin','goblue','godiva','goethe','gofish','gollum','gramps','grandma','gravis','gremlin','gretzky','grizzly','grumpy','guitar1','gustavo','h2opolo','haggis','hailey','halloween','hallowell','hamilton','hamlet','hanson','happy123','happyday','hardcore','harley1','harriet','harris','harvard','hawkeye1','health','health1','heather1','heather2','hedgehog','heikki','helene','hello1','hello123','hello8','hellohello','help123','helper','hermes','heythere','highland','hillary','histoire','history','hitler','hobbes','holiday','homerj','honda1','hongkong','hoosier','hootie','hosehead','hotrod','hudson','hummer','huskies','hydrogen','ib6ub9','if6was9','iforget','ilmari','iloveu','impact','indonesia','ingvar','insight','instruct','integral','iomega','irmeli','isabelle','israel','italia','j1l2t3','jackie1','james1','jamesbond','jamjam','jeepster','jeffrey1','jennie','jensen','jesse1','jester','jethro','jetta1','jimbob','joanie','joanna','joelle','john316','jordie','journey','jubilee','juhani','julia2','julien','juliet','junebug','juniper','justdoit','justice4','kalamazo','karine','katerina','katie1','keeper','keller','kendall','kerala','kerrya','ketchup','kissa2','kissme','kitten','kittycat','kkkkkk','kleenex','kombat','kristi','kristine','labtec','laddie','ladybug','laserjet','lassie1','laurel','lawson','leader','leblanc','leland','lester','letter','letters','lexus1','lights','lionel','lissabon','little','logger','loislane','lolita','lonestar','longer','longhorn','looney','lovers','loveyou','lucifer','lucky14','macross','macse30','maddie','madmax','madoka','magic1','magnum','maiden','makeitso','mallard','manageme','manson','manuel','marcus','marielle','marine','marino','marshall','martha','matti1','mattingly','maxmax','meatloaf','mechanic','medical','meister','melina','memphis','mercer','mermaid','merrill','michal','michel','michigan','michou','mickel','mickey1','microsoft','midvale','mikael','milano','millenium','million','miranda','miriam','mission','mmmmmm','mobile','mobydick','monkey1','monroe','montana','montana3','montrose','moomoo','moonbeam','morecats','morpheus','motorola','movies','mowgli','mozart','mulder1','munchkin','murray','muscle','mustang1','nadine','napoleon','nation','national','nesbit','nestle','neutrino','newaccount','newlife','newyork1','nexus6','nichole','nicklaus','nightshadow','nightwind','nikita','nintendo','nomore','nopass','normal','norton','notta1','nouveau','novell','nugget','number9','numbers','nutmeg','oaxaca','obiwan','obsession','ohshit','oicu812','openup','orchid','orlando','orville','paagal','packard','packers','packrat','paloma','pancake','paradigm','parola','parrot','partner','pascal','patches','patriots','pauline','payton','peanuts','pedro1','perfect','performa','peterk','peterpan','phialpha','philips','phillips','phishy','piano1','pianoman','pianos','pierce','pigeon','pioneer','pipeline','piper1','pirate','pisces','playboy','poetic','poetry','pontiac','pookey','popeye','prayer','precious','prelude','premier','printing','provider','puddin','pulsar','pussy1','qqq111','quebec','qwerty12','qwertyui','rabbit1','racerx','rachelle','racoon','rafiki','raleigh','randy1','rasta1','ravens','redcloud','redfish','redman','redskins','redwing','redwood','reggae','reggie','reliant','renegade','rescue','revolution','reznor','rhjrjlbk','richard1','richards','richmond','ripper','ripple','roberts','robocop','robotics','rocket1','rockie','rockon','roger1','rogers','roland','rommel','rookie','rootbeer','rossigno','rugger','ruthless','sabbath','sabina','safety','safety1','saigon','samIam','samiam','sammie','samsam','sanjose','saphire','sarah1','saskia','satori','saturday','saturn5','schnapps','science','scooby','scoobydoo','scooter1','scorpion','scotch','scotty','scouts','search','secret3','seeker','september','server','services','seven7','shaggy','shanghai','shanny','shaolin','shasta','shayne','shazam','shelly','shelter','sherry','shirley','shorty','shotgun','sidney','sigmachi','signal','signature','simba1','simsim','sinatra','sirius','skipper1','skydive','skyler','slayer','sleepy','slider','smegma','smile1','smiths','smitty','smurfy','snakes','snapper','sober1','solomon','sonics','sophia','sparks','spartan','sphynx','spike1','sponge','sprocket','squash','starbuck','stargate','starlight','steph1','stephi','steve1','stevens','stewart','stivers','stocks','storage','stranger','strato','stretch','strong','student2','studio','stumpy','sucker','suckme','sultan','summit','sunfire','sunset','superstar','surfing','susan1','susanna','sutton','swanson','sweden','sweetpea','sweety','switzer','swordfish','system5','t-bone','tabatha','tacobell','taiwan','tamtam','tanner','tapani','targas','target','tarheel','tattoo','tazdevil','tequila','terry1','tester','testtest','thankyou','theend','thelorax','thisisit','thompson','thorne','thrasher','tiger2','tightend','timber','timothy','tinkerbell','topcat','topher','toshiba','tototo','toucan','transfer','transit','transport','trapper','travis','treasure','tricky','triton','trombone','trophy','trouble','trucker','tucson','turbo2','tyler1','ultimate','unique','united','upsilon','ursula','vacation','valley','vampire','vanessa','vedder','venice','vermont','victor1','vikram','vincent1','violet','violin','virago','virgil','virginia','vision','visual','volcano','volley','voodoo','vortex','waiting','walden','walleye','wanker','warner','water1','wayne1','webmaster','webster','weezer','wendy1','western','whale1','whitney','whocares','whoville','wibble','wildcat','william1','window','winniethepooh','wolfgang','wolverine','wombat1','wonder','x-files','xxx123','xxxxxxxx','yamaha','yankee','yogibear','yolanda','yomama','yvette','zachary','zebras','zepplin','zoltan','zoomer','zxcvbn','!@#$%^&','00000000','121212','1234qwer','131313','21122112','99999999','@#$%^&','ABC123','Abcdef','Asdfgh','Changeme','FuckYou','Fuckyou','JSBach','Michel','NCC1701','Qwerty','Windows','Zxcvbnm','action','amelie','anaconda','apollo13','artist','asshole','benoit','bernard','bernie','bigbird','blizzard','bluesky','bonjour','booster','byteme','caesar','cardinal','carolina','chandler','changeit','chapman','charlie1','chiquita','chocolat','christia','christoph','classroom','cloclo','corrado','cougars','courtney','dolphins','dominic','donkey','eminem','energy','fearless','fiction','forest','forever','french1','gilles','gocougs','good-luck','graymail','guinness','hilbert','homebrew','hotdog','indian','johnson','kristin','lorraine','m1911a1','macintosh','mailer','maxime','memory','mirror','ne1410s','ne1469','ne14a69','nebraska','nemesis','network','newcourt','notused','oatmeal','patton','planet','players','politics','portland','praise','property','protel','psalms','qwaszx','raiders','rambo1','rancid','scrooge','shelley','skidoo','softball','speedo','sports','ssssss','steele','stephani','sunday','sylvie','symbol','tiffany','toronto','trixie','undead','valentin','velvet','viking','walker','watson','zhongguo','babygirl','1234567890','pretty','hottie','987654321','naruto','spongebob','daniela','princesa','christ','blessed','single','qazwsx','pokemon','iloveyou1','iloveyou2','fuckyou1','hahaha','blessing','blahblah','blink182','123qwe','trinity','passw0rd','google','looking','spirit','iloveyou!','qwerty1','rotimi','onelove','mylove','222222','ilovegod','football1','loving','emmanuel','1q2w3e4r','red123','blabla','112233'];
|
2 |
-
|
3 |
-
function showPasswordStrength(score)
|
4 |
-
{
|
5 |
-
var strengthDiv = document.getElementById("wsd_password_strength");
|
6 |
-
if(!strengthDiv)return false;
|
7 |
-
if(score == undefined)
|
8 |
-
{
|
9 |
-
strengthDiv.style.visibility = "hidden";
|
10 |
-
return true;
|
11 |
-
}
|
12 |
-
else {
|
13 |
-
strengthDiv.style.visibility = "visible";
|
14 |
-
if(score == -1)
|
15 |
-
{
|
16 |
-
strengthDiv.innerHTML = "too short";
|
17 |
-
strengthDiv.style.backgroundColor = "#ee0000"
|
18 |
-
}
|
19 |
-
else if(score == 0)
|
20 |
-
{
|
21 |
-
strengthDiv.innerHTML = "too obvious";
|
22 |
-
strengthDiv.style.backgroundColor = "#ee0000";
|
23 |
-
}
|
24 |
-
else if(score < 34)
|
25 |
-
{
|
26 |
-
strengthDiv.innerHTML = "not strong enough";
|
27 |
-
strengthDiv.style.backgroundColor = "#eeaaaa";
|
28 |
-
}
|
29 |
-
else if(score < 68)
|
30 |
-
{
|
31 |
-
strengthDiv.innerHTML = "good";
|
32 |
-
strengthDiv.style.backgroundColor = "#ffff00";
|
33 |
-
}
|
34 |
-
else
|
35 |
-
{
|
36 |
-
strengthDiv.innerHTML = "strong";
|
37 |
-
strengthDiv.style.backgroundColor = "#00ff00";
|
38 |
-
}
|
39 |
-
}
|
40 |
-
}
|
41 |
-
|
42 |
-
function evaluatePassStrength(pass)
|
43 |
-
{
|
44 |
-
if(typeof pass != 'string'){
|
45 |
-
showPasswordStrength();
|
46 |
-
return -1;
|
47 |
-
}
|
48 |
-
var len = pass.length;
|
49 |
-
if(len == 0){
|
50 |
-
showPasswordStrength();
|
51 |
-
return -1;
|
52 |
-
}
|
53 |
-
if(len < 6) {
|
54 |
-
showPasswordStrength(-1);
|
55 |
-
return -1;
|
56 |
-
}
|
57 |
-
for(var i=0;i<wsd_commonPasswords.length;i++) {
|
58 |
-
if(wsd_commonPasswords[i] == pass) {
|
59 |
-
showPasswordStrength(0);
|
60 |
-
return 0;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
var score=len*4;
|
65 |
-
var a=0;
|
66 |
-
var C=0;
|
67 |
-
var n=0;
|
68 |
-
var s=0;
|
69 |
-
var l='';
|
70 |
-
for(var i=0;i<len;i++){
|
71 |
-
if(l==pass.charAt(i)) score -= 1; else l=pass.charAt(i);
|
72 |
-
if((pass.charAt(i)>='a')&&(pass.charAt(i)<='z')){a++;continue;}
|
73 |
-
if((pass.charAt(i)>='A')&&(pass.charAt(i)<='Z')){C++;continue;}
|
74 |
-
if((pass.charAt(i)>='0')&&(pass.charAt(i)<='9')){n++;continue;}
|
75 |
-
s++;
|
76 |
-
}
|
77 |
-
if(len == a) score -= 10;
|
78 |
-
if(len == n) score -= 10;
|
79 |
-
if(len == C) score -= 10;
|
80 |
-
if(n > 0) score += 5;
|
81 |
-
if(C > 0) score += 5;
|
82 |
-
if(s > 0) score += 5;
|
83 |
-
if((n>0)&&(a>0)) score += 15;
|
84 |
-
if((C>0)&&(a>0)) score += 15;
|
85 |
-
if((s>0)&&(a>0)) score += 15;
|
86 |
-
if(score > 100) score = 100;
|
87 |
-
|
88 |
-
showPasswordStrength(score);
|
89 |
-
return score;
|
90 |
-
}
|
91 |
-
|
92 |
-
function onPasswordChange(){
|
93 |
-
var passInput = document.getElementById("wsd_account_pass");
|
94 |
-
if(passInput){
|
95 |
-
evaluatePassStrength(passInput.value);
|
96 |
-
passwordMatch();
|
97 |
-
}
|
98 |
-
}
|
99 |
-
|
100 |
-
function passwordMatch(){
|
101 |
-
var passInput1 = document.getElementById("wsd_account_pass");
|
102 |
-
var passInput2 = document.getElementById("wsd_account_pass_re");
|
103 |
-
if(passInput1 && passInput2){
|
104 |
-
var match = (passInput1.value==passInput2.value);
|
105 |
-
var matchhDiv = document.getElementById("wsd_password_match");
|
106 |
-
if(match)matchhDiv.style.visibility = "hidden";
|
107 |
-
else {
|
108 |
-
matchhDiv.style.visibility = "visible";
|
109 |
-
matchhDiv.innerHTML = "passwords don't match";
|
110 |
-
matchhDiv.style.backgroundColor = "#eeaaaa";
|
111 |
-
}
|
112 |
-
return match;
|
113 |
-
}
|
114 |
-
else
|
115 |
-
return true;
|
116 |
-
}
|
117 |
-
|
118 |
-
function submitForm(){
|
119 |
-
var agree = document.getElementById("wsd_account_agree");
|
120 |
-
var passInput1 = document.getElementById("wsd_account_pass");
|
121 |
-
var passInput2 = document.getElementById("wsd_account_pass_re");
|
122 |
-
|
123 |
-
if(!agree || !passInput1 || !passInput2)return;
|
124 |
-
|
125 |
-
var errors = '';
|
126 |
-
if(passInput1.value == "")errors += " - Password cannot be blank\n";
|
127 |
-
else if(evaluatePassStrength(passInput1.value) <= 34)errors += " - Choose a better password\n";
|
128 |
-
if(!passwordMatch())errors += " - Passwords don't match\n";
|
129 |
-
if(agree.checked != 1)errors += " - You have to agree with the terms of service\n";
|
130 |
-
if(errors!=''){
|
131 |
-
alert("Please correct the following errors and try again:\n" + errors)
|
132 |
-
}
|
133 |
-
else {
|
134 |
-
if(form=document.getElementById("sw_wsd_new_user_form"))form.submit();
|
135 |
-
Recaptcha.reload();
|
136 |
-
}
|
137 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-ar.mo
DELETED
Binary file
|
languages/secure_wp-ar.po
DELETED
@@ -1,225 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2009-06-22 12:29+0100\n"
|
6 |
-
"PO-Revision-Date: 2010-05-24 13:50+0300\n"
|
7 |
-
"Last-Translator: www.r-sn.com <web.rsn@gmail.com>\n"
|
8 |
-
"Language-Team: مدونة رسين <web.rsn@gmail.com>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
13 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
14 |
-
"X-Poedit-Basepath: ../\n"
|
15 |
-
"X-Textdomain-Support: yes\n"
|
16 |
-
"X-Poedit-Language: Arabic\n"
|
17 |
-
"X-Poedit-Country: SAUDI ARABIA\n"
|
18 |
-
"X-Poedit-SearchPath-0: .\n"
|
19 |
-
|
20 |
-
#: secure-wordpress.php:323
|
21 |
-
msgid "Settings"
|
22 |
-
msgstr "الإعدادات"
|
23 |
-
|
24 |
-
#@ secure_wp
|
25 |
-
#: secure-wordpress.php:352
|
26 |
-
#: secure-wordpress.php:389
|
27 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
28 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">معلومات</a>"
|
29 |
-
|
30 |
-
#@ secure_wp
|
31 |
-
#: secure-wordpress.php:369
|
32 |
-
msgid "Options update."
|
33 |
-
msgstr "تحديث الإعدادات"
|
34 |
-
|
35 |
-
#@ secure_wp
|
36 |
-
#: secure-wordpress.php:371
|
37 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
38 |
-
msgstr "تم مسح جميع الإدخالات في قاعدة البيانات. تم تعطيل الإضافة ."
|
39 |
-
|
40 |
-
#@ secure_wp
|
41 |
-
#: secure-wordpress.php:385
|
42 |
-
#: secure-wordpress.php:392
|
43 |
-
msgid "Secure WP"
|
44 |
-
msgstr "تأمين WP"
|
45 |
-
|
46 |
-
#@ secure_wp
|
47 |
-
#: secure-wordpress.php:388
|
48 |
-
#: secure-wordpress.php:614
|
49 |
-
msgid "Secure WordPress"
|
50 |
-
msgstr "تأمين الوورد بريس"
|
51 |
-
|
52 |
-
#: secure-wordpress.php:412
|
53 |
-
msgid "Version"
|
54 |
-
msgstr "الإصدار"
|
55 |
-
|
56 |
-
#@ secure_wp
|
57 |
-
#: secure-wordpress.php:412
|
58 |
-
msgid "History"
|
59 |
-
msgstr "السجل"
|
60 |
-
|
61 |
-
#: secure-wordpress.php:412
|
62 |
-
msgid "Author"
|
63 |
-
msgstr "الكاتب"
|
64 |
-
|
65 |
-
#@ secure_wp
|
66 |
-
#: secure-wordpress.php:542
|
67 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
68 |
-
msgstr "الخيارات لم يتم تحديثها .. لا تملك الصلاحيات"
|
69 |
-
|
70 |
-
#@ secure_wp
|
71 |
-
#: secure-wordpress.php:562
|
72 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
73 |
-
msgstr "لايمكن حذف الادخالات .. لا تملك الصلاحيات"
|
74 |
-
|
75 |
-
#@ secure_wp
|
76 |
-
#: secure-wordpress.php:570
|
77 |
-
msgid "Entries was not delleted - check the checkbox!"
|
78 |
-
msgstr "لايمكن حذف الادخالات .. تحقق من الصندوق"
|
79 |
-
|
80 |
-
#@ secure_wp
|
81 |
-
#: secure-wordpress.php:590
|
82 |
-
msgid "All entries in the database was cleared."
|
83 |
-
msgstr "تم مسح جميع الإدخالات في قاعدة البيانات."
|
84 |
-
|
85 |
-
#@ secure_wp
|
86 |
-
#: secure-wordpress.php:594
|
87 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
88 |
-
msgstr "لا يمكن حذف الادخالات .. تحقق من الصندوق أو أنك لاتملك الصلاحيات"
|
89 |
-
|
90 |
-
#: secure-wordpress.php:619
|
91 |
-
#: secure-wordpress.php:734
|
92 |
-
#: secure-wordpress.php:754
|
93 |
-
msgid "Click to toggle"
|
94 |
-
msgstr "انقر للتبديل"
|
95 |
-
|
96 |
-
#@ secure_wp
|
97 |
-
#: secure-wordpress.php:620
|
98 |
-
msgid "Configuration"
|
99 |
-
msgstr "التكوين"
|
100 |
-
|
101 |
-
#@ secure_wp
|
102 |
-
#: secure-wordpress.php:630
|
103 |
-
msgid "Error-Messages"
|
104 |
-
msgstr "رسالة خطأ"
|
105 |
-
|
106 |
-
#@ secure_wp
|
107 |
-
#: secure-wordpress.php:634
|
108 |
-
msgid "deactivates tooltip and error message at login of WordPress"
|
109 |
-
msgstr "تعطيل tooltip و إظهار رسالة خطأ عند تسجيل الدخول"
|
110 |
-
|
111 |
-
#@ secure_wp
|
112 |
-
#: secure-wordpress.php:640
|
113 |
-
msgid "WordPress Version"
|
114 |
-
msgstr "إصدار الوورد بريس"
|
115 |
-
|
116 |
-
#@ secure_wp
|
117 |
-
#: secure-wordpress.php:644
|
118 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
119 |
-
msgstr "إزالة إصدار الوورد بريس في جميع المجالات ، بما في ذلك الخلاصات ، وليس في الادارة"
|
120 |
-
|
121 |
-
#@ secure_wp
|
122 |
-
#: secure-wordpress.php:650
|
123 |
-
msgid "index.html"
|
124 |
-
msgstr "index.html"
|
125 |
-
|
126 |
-
#@ secure_wp
|
127 |
-
#: secure-wordpress.php:660
|
128 |
-
msgid "Really Simple Discovery"
|
129 |
-
msgstr "Really Simple Discovery"
|
130 |
-
|
131 |
-
#@ secure_wp
|
132 |
-
#: secure-wordpress.php:664
|
133 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
134 |
-
msgstr "إزالة ارتباط Really Simple Discovery من <code>wp_head</code> من الواجهة"
|
135 |
-
|
136 |
-
#@ secure_wp
|
137 |
-
#: secure-wordpress.php:670
|
138 |
-
msgid "Windows Live Writer"
|
139 |
-
msgstr "Windows Live Writer"
|
140 |
-
|
141 |
-
#@ secure_wp
|
142 |
-
#: secure-wordpress.php:674
|
143 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
144 |
-
msgstr "إزالة ارتباط Windows Live Writer من <code>wp_head</code> من الواجهة"
|
145 |
-
|
146 |
-
#@ secure_wp
|
147 |
-
#: secure-wordpress.php:680
|
148 |
-
msgid "Core Update"
|
149 |
-
msgstr "تحديث الأصل"
|
150 |
-
|
151 |
-
#@ secure_wp
|
152 |
-
#: secure-wordpress.php:684
|
153 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
154 |
-
msgstr "إزالة المطالبة بتحديث إصدار الوورد بريس لغير المدراء .. مع ظهور رسالة التحديث "
|
155 |
-
|
156 |
-
#@ secure_wp
|
157 |
-
#: secure-wordpress.php:690
|
158 |
-
msgid "Plugin Update"
|
159 |
-
msgstr "تحديث الإضافة"
|
160 |
-
|
161 |
-
#@ secure_wp
|
162 |
-
#: secure-wordpress.php:694
|
163 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
164 |
-
msgstr "إزالة المطالبة بتحديث إصدارات الإضافات لغير المدراء .. مع ظهور رسالة التحديث "
|
165 |
-
|
166 |
-
#@ secure_wp
|
167 |
-
#: secure-wordpress.php:701
|
168 |
-
msgid "Theme Update"
|
169 |
-
msgstr "تحديث القالب"
|
170 |
-
|
171 |
-
#@ secure_wp
|
172 |
-
#: secure-wordpress.php:705
|
173 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
174 |
-
msgstr "إزالة المطالبة بتحديث إصدارات القوالب لغير المدراء .. مع ظهور رسالة التحديث "
|
175 |
-
|
176 |
-
#@ secure_wp
|
177 |
-
#: secure-wordpress.php:712
|
178 |
-
msgid "WP Scanner"
|
179 |
-
msgstr "WP مسح"
|
180 |
-
|
181 |
-
#@ secure_wp
|
182 |
-
#: secure-wordpress.php:716
|
183 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
184 |
-
msgstr "يجب عليك إضافة هذا الكود لقالبك <code><!-- wpscanner --></code> ثم إذهب لصفحة <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> وأضغط مسح .."
|
185 |
-
|
186 |
-
#@ secure_wp
|
187 |
-
#: secure-wordpress.php:724
|
188 |
-
msgid "Save Changes"
|
189 |
-
msgstr "حفظ التغييرات"
|
190 |
-
|
191 |
-
#@ secure_wp
|
192 |
-
#: secure-wordpress.php:735
|
193 |
-
msgid "Clear Options"
|
194 |
-
msgstr "حذف الخيارات"
|
195 |
-
|
196 |
-
#@ secure_wp
|
197 |
-
#: secure-wordpress.php:738
|
198 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
199 |
-
msgstr "عند الضغط على زر الحذف سيتم حذف جميع إعدادات الإضافة التي تم إنشاؤها من قبل"
|
200 |
-
|
201 |
-
#@ secure_wp
|
202 |
-
#: secure-wordpress.php:743
|
203 |
-
msgid "Delete Options"
|
204 |
-
msgstr "حذف الخيارات"
|
205 |
-
|
206 |
-
#@ secure_wp
|
207 |
-
#: secure-wordpress.php:755
|
208 |
-
msgid "About the plugin"
|
209 |
-
msgstr "معلومات عن الإضافة"
|
210 |
-
|
211 |
-
#@ secure_wp
|
212 |
-
#: secure-wordpress.php:768
|
213 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
214 |
-
msgstr "للمزيد من المعلومات قم بزيارة <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">صفحة الإضافة </a> أو <a href=\"http://www.r-sn.com/wp/archives/1848/\">مدونة رسين </a> وطرح الاستفسارات لمن يواجه مشكلة أو لمزيد من المعلومات"
|
215 |
-
|
216 |
-
#@ secure_wp
|
217 |
-
#: secure-wordpress.php:768
|
218 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
219 |
-
msgstr "قم بزيارتي <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
220 |
-
|
221 |
-
#@ secure_wp
|
222 |
-
#: secure-wordpress.php:654
|
223 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
224 |
-
msgstr "إنشاء <code>index.php</code> في <code>/plugins/</code> و <code>/themes/</code> مهم جداً لأجل أن لايتم استعراض المجلدات .."
|
225 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-be_BY.mo
DELETED
Binary file
|
languages/secure_wp-be_BY.po
DELETED
@@ -1,237 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2009-05-08 12:17+0100\n"
|
6 |
-
"PO-Revision-Date: \n"
|
7 |
-
"Last-Translator: Fat Cow <zhr@tut.by>\n"
|
8 |
-
"Language-Team: Fat Cow <zhr@tut.by>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: Belarusian\n"
|
14 |
-
"X-Poedit-Country: BELARUS\n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
17 |
-
"X-Poedit-Basepath: .\n"
|
18 |
-
"X-Poedit-Bookmarks: \n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
"X-Textdomain-Support: yes"
|
21 |
-
|
22 |
-
#: secure-wordpress.php:330
|
23 |
-
msgid "Settings"
|
24 |
-
msgstr "Настройки"
|
25 |
-
|
26 |
-
#: secure-wordpress.php:359
|
27 |
-
#: secure-wordpress.php:402
|
28 |
-
#@ secure_wp
|
29 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
30 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Документация</a>"
|
31 |
-
|
32 |
-
#: secure-wordpress.php:382
|
33 |
-
#@ secure_wp
|
34 |
-
msgid "Options update."
|
35 |
-
msgstr "Опции обновлены."
|
36 |
-
|
37 |
-
#: secure-wordpress.php:384
|
38 |
-
#@ secure_wp
|
39 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
40 |
-
msgstr "Все элементы в базе данных были очищены. Сейчас деактивируйте плагин."
|
41 |
-
|
42 |
-
#: secure-wordpress.php:398
|
43 |
-
#: secure-wordpress.php:405
|
44 |
-
#@ secure_wp
|
45 |
-
msgid "Secure WP"
|
46 |
-
msgstr "Secure WP"
|
47 |
-
|
48 |
-
#: secure-wordpress.php:401
|
49 |
-
#: secure-wordpress.php:641
|
50 |
-
#@ secure_wp
|
51 |
-
msgid "Secure WordPress"
|
52 |
-
msgstr "Безопасность WordPress"
|
53 |
-
|
54 |
-
#: secure-wordpress.php:425
|
55 |
-
msgid "Version"
|
56 |
-
msgstr "Версия"
|
57 |
-
|
58 |
-
#: secure-wordpress.php:425
|
59 |
-
#@ secure_wp
|
60 |
-
msgid "History"
|
61 |
-
msgstr "История"
|
62 |
-
|
63 |
-
#: secure-wordpress.php:425
|
64 |
-
msgid "Author"
|
65 |
-
msgstr "Автор"
|
66 |
-
|
67 |
-
#: secure-wordpress.php:568
|
68 |
-
#@ secure_wp
|
69 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
70 |
-
msgstr "Опции не обновлены - у вас нет привилегий для этого!"
|
71 |
-
|
72 |
-
#: secure-wordpress.php:588
|
73 |
-
#@ secure_wp
|
74 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
75 |
-
msgstr "Элементы не удалены - у вас нет привилегий для этого!"
|
76 |
-
|
77 |
-
#: secure-wordpress.php:596
|
78 |
-
#@ secure_wp
|
79 |
-
msgid "Entries was not delleted - check the checkbox!"
|
80 |
-
msgstr "Элементы не удалены - отметьте поля!"
|
81 |
-
|
82 |
-
#: secure-wordpress.php:616
|
83 |
-
#@ secure_wp
|
84 |
-
msgid "All entries in the database was cleared."
|
85 |
-
msgstr "Все элементы удалены из базы!"
|
86 |
-
|
87 |
-
#: secure-wordpress.php:620
|
88 |
-
#@ secure_wp
|
89 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
90 |
-
msgstr "Элементы не удалены - отметьте поля или же у вас нет прав для этого!"
|
91 |
-
|
92 |
-
#: secure-wordpress.php:646
|
93 |
-
#: secure-wordpress.php:771
|
94 |
-
#: secure-wordpress.php:791
|
95 |
-
msgid "Click to toggle"
|
96 |
-
msgstr "Нажмите для разворачивания"
|
97 |
-
|
98 |
-
#: secure-wordpress.php:647
|
99 |
-
#@ secure_wp
|
100 |
-
msgid "Configuration"
|
101 |
-
msgstr "Конфигурация"
|
102 |
-
|
103 |
-
#: secure-wordpress.php:657
|
104 |
-
#@ secure_wp
|
105 |
-
msgid "Error-Messages"
|
106 |
-
msgstr "Сообщения об ошибках"
|
107 |
-
|
108 |
-
#: secure-wordpress.php:661
|
109 |
-
#@ secure_wp
|
110 |
-
msgid "deactivates tooltip and error message at login of WordPress"
|
111 |
-
msgstr "деактивирует подсказки и сообщения об ошибке при выходе из WordPress"
|
112 |
-
|
113 |
-
#: secure-wordpress.php:667
|
114 |
-
#@ secure_wp
|
115 |
-
msgid "WordPress Version"
|
116 |
-
msgstr "версия WordPress"
|
117 |
-
|
118 |
-
#: secure-wordpress.php:671
|
119 |
-
#@ secure_wp
|
120 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
121 |
-
msgstr "Удаление версии WordPress во всех областях, в том числе и в ленте, не в Admin режиме"
|
122 |
-
|
123 |
-
#: secure-wordpress.php:697
|
124 |
-
#@ secure_wp
|
125 |
-
msgid "Really Simple Discovery"
|
126 |
-
msgstr "Really Simple Discovery"
|
127 |
-
|
128 |
-
#: secure-wordpress.php:701
|
129 |
-
#@ secure_wp
|
130 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
131 |
-
msgstr "Удалите ссылку Really Simple Discovery с <code>wp_head</code> панели."
|
132 |
-
|
133 |
-
#: secure-wordpress.php:707
|
134 |
-
#@ secure_wp
|
135 |
-
msgid "Windows Live Writer"
|
136 |
-
msgstr "Windows Live Writer"
|
137 |
-
|
138 |
-
#: secure-wordpress.php:711
|
139 |
-
#@ secure_wp
|
140 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
141 |
-
msgstr "Удалите Windows Live Writer из <code>wp_head</code> панели."
|
142 |
-
|
143 |
-
#: secure-wordpress.php:717
|
144 |
-
#@ secure_wp
|
145 |
-
msgid "Core Update"
|
146 |
-
msgstr "Обновления ядра"
|
147 |
-
|
148 |
-
#: secure-wordpress.php:721
|
149 |
-
#@ secure_wp
|
150 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
151 |
-
msgstr "Деактивировать обновление ядра для не-администраторов. Показать сообщение о новой версии WordPress только пользователям с правом обновления."
|
152 |
-
|
153 |
-
#: secure-wordpress.php:727
|
154 |
-
#@ secure_wp
|
155 |
-
msgid "Plugin Update"
|
156 |
-
msgstr "Обновление плагина"
|
157 |
-
|
158 |
-
#: secure-wordpress.php:731
|
159 |
-
#@ secure_wp
|
160 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
161 |
-
msgstr "Деактивировать обновление плагина для не-администраторов. Показать сообщение о новой версии WordPress только пользователям с правом редактирования плагинов."
|
162 |
-
|
163 |
-
#: secure-wordpress.php:749
|
164 |
-
#@ secure_wp
|
165 |
-
msgid "WP Scanner"
|
166 |
-
msgstr "WP Scanner"
|
167 |
-
|
168 |
-
#: secure-wordpress.php:753
|
169 |
-
#@ secure_wp
|
170 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
171 |
-
msgstr "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
172 |
-
|
173 |
-
#: secure-wordpress.php:761
|
174 |
-
#@ secure_wp
|
175 |
-
msgid "Save Changes"
|
176 |
-
msgstr "Сохранить настройки"
|
177 |
-
|
178 |
-
#: secure-wordpress.php:772
|
179 |
-
#@ secure_wp
|
180 |
-
msgid "Clear Options"
|
181 |
-
msgstr "Очистить опции"
|
182 |
-
|
183 |
-
#: secure-wordpress.php:775
|
184 |
-
#@ secure_wp
|
185 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
186 |
-
msgstr "Нажмите на эту кнопку, чтобы удалить настройки этого плагина. Отключение Secure WordPress удалит все данные, которые могли быть созданы."
|
187 |
-
|
188 |
-
#: secure-wordpress.php:780
|
189 |
-
#@ secure_wp
|
190 |
-
msgid "Delete Options"
|
191 |
-
msgstr "Удалить опции"
|
192 |
-
|
193 |
-
#: secure-wordpress.php:792
|
194 |
-
#@ secure_wp
|
195 |
-
msgid "About the plugin"
|
196 |
-
msgstr "Об этом плагине"
|
197 |
-
|
198 |
-
#: secure-wordpress.php:805
|
199 |
-
#@ secure_wp
|
200 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
201 |
-
msgstr "Дополнительная информация: посетите <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">домашнюю страницу плагина</a> для дополнительной информации и получения последней версии плагина."
|
202 |
-
|
203 |
-
#: secure-wordpress.php:805
|
204 |
-
#@ secure_wp
|
205 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
206 |
-
msgstr "Хотите поблагодарить меня? Посетите мой <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
207 |
-
|
208 |
-
#: secure-wordpress.php:691
|
209 |
-
#@ secure_wp
|
210 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
211 |
-
msgstr "tworzy <code>index.php</code> w pliku <code>/plugins/</code> i <code>/themes/</code>, aby zachować jej wyświetlaniu listy katalogów"
|
212 |
-
|
213 |
-
#: secure-wordpress.php:738
|
214 |
-
#@ secure_wp
|
215 |
-
msgid "Theme Update"
|
216 |
-
msgstr "Theme Update"
|
217 |
-
|
218 |
-
#: secure-wordpress.php:742
|
219 |
-
#@ secure_wp
|
220 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
221 |
-
msgstr "Usuń aktualizację tematem niż administratorzy. Pokaż wiadomość do nowej wersji tematem zainstalować bloga tylko dla użytkowników z prawami do edycji tematów."
|
222 |
-
|
223 |
-
#: secure-wordpress.php:677
|
224 |
-
#@ secure_wp
|
225 |
-
msgid "WordPress Version in Backend"
|
226 |
-
msgstr ""
|
227 |
-
|
228 |
-
#: secure-wordpress.php:687
|
229 |
-
#@ secure_wp
|
230 |
-
msgid "index.php"
|
231 |
-
msgstr ""
|
232 |
-
|
233 |
-
#: secure-wordpress.php:681
|
234 |
-
#@ secure_wp
|
235 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
236 |
-
msgstr ""
|
237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-da_DK.mo
DELETED
Binary file
|
languages/secure_wp-da_DK.po
DELETED
@@ -1,425 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPres 0.8.5\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-06-16 15:22+0100\n"
|
6 |
-
"PO-Revision-Date: \n"
|
7 |
-
"Last-Translator: Team Blogos <wordpress@blogos.dk>\n"
|
8 |
-
"Language-Team: Team Blogos <wordpress@blogos.dk>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2;plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: Danish\n"
|
14 |
-
"X-Poedit-Country: DENMARK\n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;_n:1,2;__ngettext:1,2;__ngettext_noop:1,2;_nc:1,2;_nx:1,2;_n_noop:1,2;_nx_noop;_x;_c;esc_html__;esc_html_e;esc_html_x;esc_attr__;esc_attr_e;esc_attr_x\n"
|
17 |
-
"X-Poedit-Basepath: d:\\wordpress\\plugins\\secure-wordpress\n"
|
18 |
-
"X-Poedit-SearchPath-0: d:\\wordpress\\plugins\\secure-wordpress\n"
|
19 |
-
|
20 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:364
|
21 |
-
msgid "Settings"
|
22 |
-
msgstr "Indstillinger"
|
23 |
-
|
24 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:393
|
25 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:440
|
26 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
27 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Dokumentation</a>"
|
28 |
-
|
29 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:416
|
30 |
-
msgid "Options update."
|
31 |
-
msgstr "Update om indstillinger"
|
32 |
-
|
33 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:418
|
34 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
35 |
-
msgstr "Alle pluginnets poster i databasen blev ryddet. Deaktivér dette plugin nu."
|
36 |
-
|
37 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:432
|
38 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:443
|
39 |
-
msgid "Secure WP"
|
40 |
-
msgstr "Secure WP"
|
41 |
-
|
42 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:439
|
43 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:738
|
44 |
-
msgid "Secure WordPress"
|
45 |
-
msgstr "Secure WordPress"
|
46 |
-
|
47 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:463
|
48 |
-
msgid "Version"
|
49 |
-
msgstr "version"
|
50 |
-
|
51 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:463
|
52 |
-
msgid "History"
|
53 |
-
msgstr "Historik"
|
54 |
-
|
55 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:463
|
56 |
-
msgid "Author"
|
57 |
-
msgstr "Forfatter"
|
58 |
-
|
59 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:664
|
60 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
61 |
-
msgstr "Indstillingerne blev ikke opdateret – du har ikke rettigheder til at gøre dette!"
|
62 |
-
|
63 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:684
|
64 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
65 |
-
msgstr "Posterne blev ikke slettet – du har ikke rettigheder til at gøre dette!"
|
66 |
-
|
67 |
-
# type: deleted
|
68 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:692
|
69 |
-
msgid "Entries were not deleted - check the checkbox!"
|
70 |
-
msgstr "Posterne blev ikke slettet – tjek afkrydsningsfeltet!"
|
71 |
-
|
72 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:712
|
73 |
-
msgid "All entries in the database were cleared."
|
74 |
-
msgstr "Alle poster i databasen blev tømt."
|
75 |
-
|
76 |
-
# typo: deleted
|
77 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:716
|
78 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
79 |
-
msgstr "Posterne blev ikke slettet – tjek afkrydsningsfeltet. Eller også har du ikke rettigheder til at gøre dette!"
|
80 |
-
|
81 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:743
|
82 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:878
|
83 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:988
|
84 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1101
|
85 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1121
|
86 |
-
msgid "Click to toggle"
|
87 |
-
msgstr "Klik for slå til/fra"
|
88 |
-
|
89 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:744
|
90 |
-
msgid "Configuration"
|
91 |
-
msgstr "Opsætning"
|
92 |
-
|
93 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:754
|
94 |
-
msgid "Error-Messages"
|
95 |
-
msgstr "Fejlmeddelelser"
|
96 |
-
|
97 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:758
|
98 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
99 |
-
msgstr "Deaktiverer tooltip og fejlmeddelelse ved login til WordPress"
|
100 |
-
|
101 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:764
|
102 |
-
msgid "WordPress Version"
|
103 |
-
msgstr "WordPress-version"
|
104 |
-
|
105 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:768
|
106 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
107 |
-
msgstr "Fjerner WordPress-version alle steder, også i feeds, men ikke i admin"
|
108 |
-
|
109 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:774
|
110 |
-
msgid "WordPress Version in Backend"
|
111 |
-
msgstr "WordPress-version i kontrolpanel"
|
112 |
-
|
113 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:778
|
114 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
115 |
-
msgstr "Fjern WordPress-version i admin-området for ikke-admins. Vis kun meddelelse om WordPress-version til de brugere, der har rettigheder til at redigere plugins."
|
116 |
-
|
117 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:784
|
118 |
-
msgid "index.php"
|
119 |
-
msgstr "index.php"
|
120 |
-
|
121 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:788
|
122 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
123 |
-
msgstr "Opretter en <code>index.php</code> fil i <code>/plugins/</code>-mappen, så der ikke bliver vist nogen mappeoversigt"
|
124 |
-
|
125 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:794
|
126 |
-
msgid "Really Simple Discovery"
|
127 |
-
msgstr "Really Simple Discovery"
|
128 |
-
|
129 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:798
|
130 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
131 |
-
msgstr "Fjern Really Simple Discovery-linket i <code>wp_head</code> ude i bloggen"
|
132 |
-
|
133 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:804
|
134 |
-
msgid "Windows Live Writer"
|
135 |
-
msgstr "Windows Live Writer"
|
136 |
-
|
137 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:808
|
138 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
139 |
-
msgstr "Fjern Windows Live Writer-linket i <code>wp_head</code> ude i bloggen"
|
140 |
-
|
141 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:814
|
142 |
-
msgid "Core Update"
|
143 |
-
msgstr "Kerne-opdatering"
|
144 |
-
|
145 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:818
|
146 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
147 |
-
msgstr "Fjern WordPress Core-opdatering fra ikke-admins. Vis kun meddelelse om ny WordPress-version til de brugere, der har rettigheder til at opdatere."
|
148 |
-
|
149 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:824
|
150 |
-
msgid "Plugin Update"
|
151 |
-
msgstr "Plugin-opdatering"
|
152 |
-
|
153 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:828
|
154 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
155 |
-
msgstr "Fjern plugin-opdatering for ikke-admins. Vis kun meddelelse om ny version af et plugin i din WordPress-installation til de brugere, der har rettigheder til at redigere plugins."
|
156 |
-
|
157 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:835
|
158 |
-
msgid "Theme Update"
|
159 |
-
msgstr "Tema-opdatering"
|
160 |
-
|
161 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:839
|
162 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
163 |
-
msgstr "Fjern tema-opdatering for ikke-admins. Vis kun meddelelse om ny version af et tema i din blogs installation til de brugere, der har rettigheder til at redigere temaer."
|
164 |
-
|
165 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:846
|
166 |
-
msgid "WP Scanner"
|
167 |
-
msgstr "WP-scanner"
|
168 |
-
|
169 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:850
|
170 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
171 |
-
msgstr "WordPress-scanner er en gratis online-ressource, som blogadministratorer kan bruge til at undersøge niveauet af deres WordPress-sikkerhed. Hvis du vil køre WP-scanner, så markér denne indstilling og tilføj <code><!-- wpscanner --></code> til dit aktuelle WordPress-tema. Gå derefter til <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> og scan din site."
|
172 |
-
|
173 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:856
|
174 |
-
msgid "Block bad queries"
|
175 |
-
msgstr "Blokér ondsindede forespørgsler"
|
176 |
-
|
177 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:860
|
178 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
179 |
-
msgstr "Beskyt WordPress mod ondsindede URL-forespørgsler; få flere oplysninger i <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"læs dette indlæg\" >indlæg fra Jeff Starr</a>"
|
180 |
-
|
181 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:868
|
182 |
-
msgid "Save Changes"
|
183 |
-
msgstr "Gem ændringer"
|
184 |
-
|
185 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:879
|
186 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
187 |
-
msgstr "Validér din site med en gratis malware-scan fra www.sitesecuritymonitor.com"
|
188 |
-
|
189 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:882
|
190 |
-
msgid "Take us for a Test Drive - Free Scan"
|
191 |
-
msgstr "Lad os teste – Gratis scan"
|
192 |
-
|
193 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:883
|
194 |
-
msgid "We understand you may have questions:"
|
195 |
-
msgstr "Det er forståeligt, hvis du har et spørgsmål:"
|
196 |
-
|
197 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:884
|
198 |
-
msgid "What does this do for me?"
|
199 |
-
msgstr "Hvad får jeg ud af det?"
|
200 |
-
|
201 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:885
|
202 |
-
msgid "Am I really safe? I need to be sure."
|
203 |
-
msgstr "Er jeg helt sikret? Jeg skal være sikker!"
|
204 |
-
|
205 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:886
|
206 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
207 |
-
msgstr "Du kan være sikker på, at Site Security Monitor sikrer dig."
|
208 |
-
|
209 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:888
|
210 |
-
msgid "FREE scan looks for malware"
|
211 |
-
msgstr "Gratis scan søger efter malware"
|
212 |
-
|
213 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:889
|
214 |
-
msgid "FREE report of website vulnerabilities found"
|
215 |
-
msgstr "Gratis rapport over fundne sårbarheder på din site"
|
216 |
-
|
217 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:890
|
218 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
219 |
-
msgstr "Ingen opsætning, indstilling eller installation på din site – scan begynder med det samme"
|
220 |
-
|
221 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:892
|
222 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
223 |
-
msgstr "Du får en detaljeret mailware- og websårbarhedsrapport – helt gratis. Du er velkommen til at bruge denne rapport til at løse problemer, at vise din chef, at siten er ok, eller at vise dine klienter, at den site, du har udviklet, er sikker!"
|
224 |
-
|
225 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:893
|
226 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
227 |
-
msgstr "Bonus: Du vil få lov til at bruge Site Security Monitors <span title=\"Sikkerhedssegl\">Safe-Seal</span> på din site efter scanningen. Det viser verden, at du ikke har malware på din site!"
|
228 |
-
|
229 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:895
|
230 |
-
msgid "The form"
|
231 |
-
msgstr "Formularen"
|
232 |
-
|
233 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:896
|
234 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
235 |
-
msgstr "Brug den følgende formular eller brug den på <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">din website</a>."
|
236 |
-
|
237 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:928
|
238 |
-
msgid "Full Name"
|
239 |
-
msgstr "Fuld navn"
|
240 |
-
|
241 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:931
|
242 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:939
|
243 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:947
|
244 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:955
|
245 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:971
|
246 |
-
msgid "*required"
|
247 |
-
msgstr "* skal udfyldes"
|
248 |
-
|
249 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:936
|
250 |
-
msgid "eMail Adress"
|
251 |
-
msgstr "E-mail-adresse"
|
252 |
-
|
253 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:939
|
254 |
-
msgid ", eMail Address must match domain name"
|
255 |
-
msgstr ", e-mail-adresse skal matche domænenavn"
|
256 |
-
|
257 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:944
|
258 |
-
msgid "Website"
|
259 |
-
msgstr "Website"
|
260 |
-
|
261 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:952
|
262 |
-
msgid "Phone"
|
263 |
-
msgstr "Telefon"
|
264 |
-
|
265 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:960
|
266 |
-
msgid "Yes, I need help!"
|
267 |
-
msgstr "Ja, jeg har brug for hjælp!"
|
268 |
-
|
269 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:963
|
270 |
-
msgid "Call me"
|
271 |
-
msgstr "Ring til mig"
|
272 |
-
|
273 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:968
|
274 |
-
msgid "Terms and Conditions"
|
275 |
-
msgstr "Vilkår og betingelser"
|
276 |
-
|
277 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:971
|
278 |
-
msgid ", I accept"
|
279 |
-
msgstr ", jeg accepterer"
|
280 |
-
|
281 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:978
|
282 |
-
msgid "Get my Free Web Scan"
|
283 |
-
msgstr "Brug den gratis webscan"
|
284 |
-
|
285 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:989
|
286 |
-
msgid "Safe Seal"
|
287 |
-
msgstr "<span title=\"Sikkerhedssegl\">Safe Seal</span>"
|
288 |
-
|
289 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:992
|
290 |
-
msgid "Thankyou for using our scan. You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
291 |
-
msgstr "Tak, fordi du bruger vores scanner. Du er velkommen til at bruge scanneren nedenfor (den genererer HTML, som du slet kan indsætte) på din egen blog. Dette segl udfører ikke nogen scanning, men kun basal WordPress-sikkerhed, sådan som fællesskabet og vores egne kundeerfaringer anbefaler.<br/>Ønsker du at foretage regelmæssige skanninger for sårbarheder og malware, så <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">besøg vores hovedside ...</a>"
|
292 |
-
|
293 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1020
|
294 |
-
msgid "Color"
|
295 |
-
msgstr "Farve"
|
296 |
-
|
297 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1024
|
298 |
-
msgid "Green"
|
299 |
-
msgstr "Grøn"
|
300 |
-
|
301 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1025
|
302 |
-
msgid "Blue"
|
303 |
-
msgstr "Blå"
|
304 |
-
|
305 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1026
|
306 |
-
msgid "Red"
|
307 |
-
msgstr "Rød"
|
308 |
-
|
309 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1027
|
310 |
-
msgid "Brown"
|
311 |
-
msgstr "Brun"
|
312 |
-
|
313 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1028
|
314 |
-
msgid "Gray"
|
315 |
-
msgstr "Grå"
|
316 |
-
|
317 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1037
|
318 |
-
msgid "Text"
|
319 |
-
msgstr "Tekst"
|
320 |
-
|
321 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1041
|
322 |
-
msgid "Protected"
|
323 |
-
msgstr "Beskyttet"
|
324 |
-
|
325 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1042
|
326 |
-
msgid "Secured"
|
327 |
-
msgstr "Sikrer"
|
328 |
-
|
329 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1043
|
330 |
-
msgid "Scanned"
|
331 |
-
msgstr "Scannet"
|
332 |
-
|
333 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1044
|
334 |
-
msgid "Protected by"
|
335 |
-
msgstr "Beskyttet af"
|
336 |
-
|
337 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1050
|
338 |
-
msgid "Orientation"
|
339 |
-
msgstr "Retning"
|
340 |
-
|
341 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1054
|
342 |
-
msgid "Horizontal"
|
343 |
-
msgstr "Horisontalt"
|
344 |
-
|
345 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1055
|
346 |
-
msgid "Vertical"
|
347 |
-
msgstr "Vertikalt"
|
348 |
-
|
349 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1061
|
350 |
-
msgid "Image border"
|
351 |
-
msgstr "Billedramme"
|
352 |
-
|
353 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1069
|
354 |
-
msgid "Language"
|
355 |
-
msgstr "Sprog"
|
356 |
-
|
357 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1073
|
358 |
-
msgid "English (US)"
|
359 |
-
msgstr "Engelsk (US)"
|
360 |
-
|
361 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1074
|
362 |
-
msgid "English (UK)"
|
363 |
-
msgstr "Engelsk (UK)"
|
364 |
-
|
365 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1075
|
366 |
-
msgid "Spanish"
|
367 |
-
msgstr "Spansk"
|
368 |
-
|
369 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1076
|
370 |
-
msgid "German"
|
371 |
-
msgstr "Tysk"
|
372 |
-
|
373 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1077
|
374 |
-
msgid "Italian"
|
375 |
-
msgstr "Italiensk"
|
376 |
-
|
377 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1078
|
378 |
-
msgid "Japanese"
|
379 |
-
msgstr "Japansk"
|
380 |
-
|
381 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1079
|
382 |
-
msgid "Chinese (Simplified)"
|
383 |
-
msgstr "Kinesisk (Forsimplet)"
|
384 |
-
|
385 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1080
|
386 |
-
msgid "Chinese (Traditional)"
|
387 |
-
msgstr "Kinesisk (Traditionel)"
|
388 |
-
|
389 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1088
|
390 |
-
msgid "Source"
|
391 |
-
msgstr "Kilde"
|
392 |
-
|
393 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1089
|
394 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
395 |
-
msgstr "Her er din genererede kode. Placér den (som HTML-widget) på din website for at vise, at du er beskyttet."
|
396 |
-
|
397 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1102
|
398 |
-
msgid "Clear Options"
|
399 |
-
msgstr "Ryd indstillinger"
|
400 |
-
|
401 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1105
|
402 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
403 |
-
msgstr "Klik på denne knap, hvis du vil slette pluginnets indstillinger. Deaktivering af Secure WordPress-pluginnet fjerner al data, det måtte have oprettet."
|
404 |
-
|
405 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1110
|
406 |
-
msgid "Delete Options"
|
407 |
-
msgstr "Slet indstillinger"
|
408 |
-
|
409 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1122
|
410 |
-
msgid "About the plugin"
|
411 |
-
msgstr "Om pluginnet"
|
412 |
-
|
413 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1127
|
414 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1129
|
415 |
-
msgid "Scan this QR Code to donate for me"
|
416 |
-
msgstr "Scan denne QR-kode og foretag en donation på mine vegne"
|
417 |
-
|
418 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1142
|
419 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
420 |
-
msgstr "Yderligere information: Besøg <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">pluginnets hjemmeside</a> for mere information eller for at hente den seneste udgave af dette plugin."
|
421 |
-
|
422 |
-
#: d:\wordpress\plugins\secure-wordpress/secure-wordpress.php:1142
|
423 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
424 |
-
msgstr "Ønsker du at takke mig? Kig på min <a href=\"http://bueltge.de/wunschliste/\">ønskeliste</a>."
|
425 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-de_DE.mo
DELETED
Binary file
|
languages/secure_wp-de_DE.po
DELETED
@@ -1,533 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-05-16 12:34+0100\n"
|
6 |
-
"PO-Revision-Date: 2010-07-09 13:20+0100\n"
|
7 |
-
"Last-Translator: Frank Bueltge <frank@bueltge.de>\n"
|
8 |
-
"Language-Team: \n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: \n"
|
14 |
-
"X-Poedit-Country: \n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
17 |
-
"X-Poedit-Basepath: ../\n"
|
18 |
-
"X-Poedit-Bookmarks: \n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
"X-Textdomain-Support: yes"
|
21 |
-
|
22 |
-
#. translators: plugin header field 'Description'
|
23 |
-
#: secure-wordpress.php:0
|
24 |
-
#@ secure_wp
|
25 |
-
msgid "Little basics for secure your WordPress-installation."
|
26 |
-
msgstr "Kleine Grundlagen für die Sicherheit deiner WordPress Installation"
|
27 |
-
|
28 |
-
#: secure-wordpress.php:370
|
29 |
-
#@ default
|
30 |
-
msgid "Settings"
|
31 |
-
msgstr "Einstellungen"
|
32 |
-
|
33 |
-
#: secure-wordpress.php:399
|
34 |
-
#: secure-wordpress.php:446
|
35 |
-
#@ secure_wp
|
36 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
37 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Dokumentation</a>"
|
38 |
-
|
39 |
-
#: secure-wordpress.php:422
|
40 |
-
#@ secure_wp
|
41 |
-
msgid "Options update."
|
42 |
-
msgstr "Einstellungen aktualisiert."
|
43 |
-
|
44 |
-
#: secure-wordpress.php:424
|
45 |
-
#@ secure_wp
|
46 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
47 |
-
msgstr "Alle Einträge in der Datenbank wurden entfernt. Jetzt deaktiviere das Plugin."
|
48 |
-
|
49 |
-
#: secure-wordpress.php:438
|
50 |
-
#: secure-wordpress.php:449
|
51 |
-
#@ secure_wp
|
52 |
-
msgid "Secure WP"
|
53 |
-
msgstr "Secure WP"
|
54 |
-
|
55 |
-
#. translators: plugin header field 'Name'
|
56 |
-
#: secure-wordpress.php:0
|
57 |
-
#: secure-wordpress.php:445
|
58 |
-
#: secure-wordpress.php:773
|
59 |
-
#@ secure_wp
|
60 |
-
msgid "Secure WordPress"
|
61 |
-
msgstr "Secure WordPress"
|
62 |
-
|
63 |
-
#: secure-wordpress.php:469
|
64 |
-
#@ default
|
65 |
-
msgid "Version"
|
66 |
-
msgstr "Version"
|
67 |
-
|
68 |
-
#: secure-wordpress.php:469
|
69 |
-
#@ secure_wp
|
70 |
-
msgid "History"
|
71 |
-
msgstr "Historie"
|
72 |
-
|
73 |
-
#: secure-wordpress.php:469
|
74 |
-
#@ default
|
75 |
-
msgid "Author"
|
76 |
-
msgstr "Autor"
|
77 |
-
|
78 |
-
#: secure-wordpress.php:698
|
79 |
-
#@ secure_wp
|
80 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
81 |
-
msgstr "Einstellungen wurden nicht aktualisiert - du hast nicht genügend Rechte dazu!"
|
82 |
-
|
83 |
-
#: secure-wordpress.php:718
|
84 |
-
#@ secure_wp
|
85 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
86 |
-
msgstr "Einstellungen wurden nicht entfernt - du hast nicht genügend Rechte dazu!"
|
87 |
-
|
88 |
-
#: secure-wordpress.php:726
|
89 |
-
#@ secure_wp
|
90 |
-
msgid "Entries were not deleted - check the checkbox!"
|
91 |
-
msgstr "Einstellungen wurden nicht entfernt - prüfe dich Checkbox!"
|
92 |
-
|
93 |
-
#: secure-wordpress.php:746
|
94 |
-
#@ secure_wp
|
95 |
-
msgid "All entries in the database were cleared."
|
96 |
-
msgstr "Alle Einträge in der Datenbank wurden entfernt."
|
97 |
-
|
98 |
-
#: secure-wordpress.php:750
|
99 |
-
#@ secure_wp
|
100 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
101 |
-
msgstr "Einstellungen wurden nicht entfernt - prüfe dich Checkbox oder du hast nicht genügend Rechte dazu!"
|
102 |
-
|
103 |
-
#: secure-wordpress.php:778
|
104 |
-
#: secure-wordpress.php:914
|
105 |
-
#: secure-wordpress.php:1027
|
106 |
-
#: secure-wordpress.php:1141
|
107 |
-
#@ default
|
108 |
-
msgid "Click to toggle"
|
109 |
-
msgstr "Zum umschalten klicken"
|
110 |
-
|
111 |
-
#: secure-wordpress.php:779
|
112 |
-
#@ secure_wp
|
113 |
-
msgid "Configuration"
|
114 |
-
msgstr "Einstellungen"
|
115 |
-
|
116 |
-
#: secure-wordpress.php:789
|
117 |
-
#@ secure_wp
|
118 |
-
msgid "Error-Messages"
|
119 |
-
msgstr "Fehler-Meldungen"
|
120 |
-
|
121 |
-
#: secure-wordpress.php:793
|
122 |
-
#@ secure_wp
|
123 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
124 |
-
msgstr "Deaktivert die Hinweis- und Fehlermeldung beim Login von WordPress"
|
125 |
-
|
126 |
-
#: secure-wordpress.php:799
|
127 |
-
#@ secure_wp
|
128 |
-
msgid "WordPress Version"
|
129 |
-
msgstr "WordPress Version"
|
130 |
-
|
131 |
-
#: secure-wordpress.php:803
|
132 |
-
#@ secure_wp
|
133 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
134 |
-
msgstr "Entfernen der Version von WordPress in allen Bereichen, inkl. Feed, nicht im Admin-Bereich"
|
135 |
-
|
136 |
-
#: secure-wordpress.php:809
|
137 |
-
#@ secure_wp
|
138 |
-
msgid "WordPress Version in Backend"
|
139 |
-
msgstr "WordPress Version im Administrationsbereich"
|
140 |
-
|
141 |
-
#: secure-wordpress.php:813
|
142 |
-
#@ secure_wp
|
143 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
144 |
-
msgstr "Entfernen der Version von WordPress im Admin-Bereich für Nicht-Administratoren. Die WordPress Version deines Blogs wird ausschließlich Nutzern dargestellt, die die Rechte zum Editieren von Plugins haben."
|
145 |
-
|
146 |
-
#: secure-wordpress.php:819
|
147 |
-
#@ secure_wp
|
148 |
-
msgid "index.php"
|
149 |
-
msgstr "index.php"
|
150 |
-
|
151 |
-
#: secure-wordpress.php:823
|
152 |
-
#@ secure_wp
|
153 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
154 |
-
msgstr "hinterlegt eine <code>index.php</code> in <code>/plugins/</code> und <code>/themes/</code> um das Auslesen des Verzeichnis zu vermeiden"
|
155 |
-
|
156 |
-
#: secure-wordpress.php:829
|
157 |
-
#@ secure_wp
|
158 |
-
msgid "Really Simple Discovery"
|
159 |
-
msgstr "Really Simple Discovery"
|
160 |
-
|
161 |
-
#: secure-wordpress.php:833
|
162 |
-
#@ secure_wp
|
163 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
164 |
-
msgstr "Entfernt den link für Really Simple Discovery im head des Frontend"
|
165 |
-
|
166 |
-
#: secure-wordpress.php:839
|
167 |
-
#@ secure_wp
|
168 |
-
msgid "Windows Live Writer"
|
169 |
-
msgstr "Windows Live Writer"
|
170 |
-
|
171 |
-
#: secure-wordpress.php:843
|
172 |
-
#@ secure_wp
|
173 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
174 |
-
msgstr "Entfernt den link für Windows Live Writer im head des Frontend"
|
175 |
-
|
176 |
-
#: secure-wordpress.php:849
|
177 |
-
#@ secure_wp
|
178 |
-
msgid "Core Update"
|
179 |
-
msgstr "Core Update"
|
180 |
-
|
181 |
-
#: secure-wordpress.php:853
|
182 |
-
#@ secure_wp
|
183 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
184 |
-
msgstr "Deaktiviert das Core-Update für Nicht-Admin's. Die Mitteilung einer neuen Version von WordPress wird ausschließlich Nutzern gezeigt, die die Rechte zum Editieren von Plugins haben."
|
185 |
-
|
186 |
-
#: secure-wordpress.php:859
|
187 |
-
#@ secure_wp
|
188 |
-
msgid "Plugin Update"
|
189 |
-
msgstr "Plugin Update"
|
190 |
-
|
191 |
-
#: secure-wordpress.php:863
|
192 |
-
#@ secure_wp
|
193 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
194 |
-
msgstr "Deaktiviert das Plugin-Update für Nicht-Admin's. Die Mitteilung einer neuen Version von WordPress zu Plugins wird ausschließlich Nutzern gezeigt, die die Rechte zum Editieren von Plugins haben."
|
195 |
-
|
196 |
-
#: secure-wordpress.php:870
|
197 |
-
#@ secure_wp
|
198 |
-
msgid "Theme Update"
|
199 |
-
msgstr "Theme Update"
|
200 |
-
|
201 |
-
#: secure-wordpress.php:874
|
202 |
-
#@ secure_wp
|
203 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
204 |
-
msgstr "Deaktiviert das Theme-Update für Nicht-Admin's. Die Mitteilung einer neuen Version von WordPress zum Theme wird ausschließlich Nutzern gezeigt, die die Rechte zum Editieren von Themes haben."
|
205 |
-
|
206 |
-
#: secure-wordpress.php:891
|
207 |
-
#@ secure_wp
|
208 |
-
msgid "Block bad queries"
|
209 |
-
msgstr "Blocke negative Abfragen"
|
210 |
-
|
211 |
-
#: secure-wordpress.php:895
|
212 |
-
#@ secure_wp
|
213 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
214 |
-
msgstr "WordPress gegen bösartige URL-Anforderungen schützen, mehr Informationen gibt es im <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >Beitrag von Jeff Starr</a>"
|
215 |
-
|
216 |
-
#: secure-wordpress.php:903
|
217 |
-
#@ secure_wp
|
218 |
-
msgid "Save Changes"
|
219 |
-
msgstr "Einstellungen aktualisieren"
|
220 |
-
|
221 |
-
#: secure-wordpress.php:915
|
222 |
-
#@ secure_wp
|
223 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
224 |
-
msgstr "Überprüfe deine Seite mit einem freien Malware-Scan von www.sitesecuritymonitor.com"
|
225 |
-
|
226 |
-
#: secure-wordpress.php:918
|
227 |
-
#@ secure_wp
|
228 |
-
msgid "Take us for a Test Drive - Free Scan"
|
229 |
-
msgstr "Nutze uns für eine Probefahrt - freier Scan"
|
230 |
-
|
231 |
-
#: secure-wordpress.php:919
|
232 |
-
#@ secure_wp
|
233 |
-
msgid "We understand you may have questions:"
|
234 |
-
msgstr "Wie verstehen, dass du Fragen hast:"
|
235 |
-
|
236 |
-
#: secure-wordpress.php:920
|
237 |
-
#@ secure_wp
|
238 |
-
msgid "What does this do for me?"
|
239 |
-
msgstr "Was bedeutet der Scan für mich?"
|
240 |
-
|
241 |
-
#: secure-wordpress.php:921
|
242 |
-
#@ secure_wp
|
243 |
-
msgid "Am I really safe? I need to be sure."
|
244 |
-
msgstr "Bin ich wirklich sicher? Ich muss sicher sein."
|
245 |
-
|
246 |
-
#: secure-wordpress.php:922
|
247 |
-
#@ secure_wp
|
248 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
249 |
-
msgstr "Sei dir sicher, Site Security Monitor ist sicher."
|
250 |
-
|
251 |
-
#: secure-wordpress.php:924
|
252 |
-
#@ secure_wp
|
253 |
-
msgid "FREE scan looks for malware"
|
254 |
-
msgstr "FREIER scan um Malware zu finden"
|
255 |
-
|
256 |
-
#: secure-wordpress.php:925
|
257 |
-
#@ secure_wp
|
258 |
-
msgid "FREE report of website vulnerabilities found"
|
259 |
-
msgstr "FREIE Auswertung der gefundenen Schwachstellen auf einer Webseite"
|
260 |
-
|
261 |
-
#: secure-wordpress.php:926
|
262 |
-
#@ secure_wp
|
263 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
264 |
-
msgstr "Keine Einrichtung, keine Anpassunge und Installationen auf deiner Site - der Scan kann sofort starten"
|
265 |
-
|
266 |
-
#: secure-wordpress.php:928
|
267 |
-
#@ secure_wp
|
268 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
269 |
-
msgstr "Wir liefern einen detaillierten Bericht zu Schwachstellen und Malware (Schadprogrammen) - kostenlos. Du kannst entscheiden, wie du den Bericht verwendest um Probleme zu lösen, es werden Hinweise zum Problem gegeben. Zeigen den anderen, dass die Site sauber und sicher ist."
|
270 |
-
|
271 |
-
#: secure-wordpress.php:929
|
272 |
-
#@ secure_wp
|
273 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
274 |
-
msgstr "** Bonus: Du kannst das Site Security Monitor \"Safe-Seal\" in deine Site integrieren - zeige der Welt, dass du frei von Malware bist."
|
275 |
-
|
276 |
-
#: secure-wordpress.php:931
|
277 |
-
#@ secure_wp
|
278 |
-
msgid "The form"
|
279 |
-
msgstr "Das Formular"
|
280 |
-
|
281 |
-
#: secure-wordpress.php:932
|
282 |
-
#@ secure_wp
|
283 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
284 |
-
msgstr "Nutze das Formular oder gehe direkt über <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">unsere Website</a>."
|
285 |
-
|
286 |
-
#: secure-wordpress.php:967
|
287 |
-
#@ secure_wp
|
288 |
-
msgid "Full Name"
|
289 |
-
msgstr "Name, Vorname"
|
290 |
-
|
291 |
-
#: secure-wordpress.php:970
|
292 |
-
#: secure-wordpress.php:978
|
293 |
-
#: secure-wordpress.php:986
|
294 |
-
#: secure-wordpress.php:994
|
295 |
-
#: secure-wordpress.php:1010
|
296 |
-
#@ secure_wp
|
297 |
-
msgid "*required"
|
298 |
-
msgstr "*Pflichtfeld"
|
299 |
-
|
300 |
-
#: secure-wordpress.php:975
|
301 |
-
#@ secure_wp
|
302 |
-
msgid "eMail Adress"
|
303 |
-
msgstr "E-Mail Adresse"
|
304 |
-
|
305 |
-
#: secure-wordpress.php:978
|
306 |
-
#@ secure_wp
|
307 |
-
msgid ", eMail Address must match domain name"
|
308 |
-
msgstr ", die E-Mail Adresse muss den Domain-Namen enthalten"
|
309 |
-
|
310 |
-
#: secure-wordpress.php:983
|
311 |
-
#@ secure_wp
|
312 |
-
msgid "Website"
|
313 |
-
msgstr "Website"
|
314 |
-
|
315 |
-
#: secure-wordpress.php:991
|
316 |
-
#@ secure_wp
|
317 |
-
msgid "Phone"
|
318 |
-
msgstr "Telefon"
|
319 |
-
|
320 |
-
#: secure-wordpress.php:999
|
321 |
-
#@ secure_wp
|
322 |
-
msgid "Yes, I need help!"
|
323 |
-
msgstr "Ja, ich brauche Hilfe!"
|
324 |
-
|
325 |
-
#: secure-wordpress.php:1002
|
326 |
-
#@ secure_wp
|
327 |
-
msgid "Call me"
|
328 |
-
msgstr "Rufe mich an"
|
329 |
-
|
330 |
-
#: secure-wordpress.php:1007
|
331 |
-
#@ secure_wp
|
332 |
-
msgid "Terms and Conditions"
|
333 |
-
msgstr "Allgemeine Geschäftsbedingungen"
|
334 |
-
|
335 |
-
#: secure-wordpress.php:1010
|
336 |
-
#@ secure_wp
|
337 |
-
msgid ", I accept"
|
338 |
-
msgstr ", ich akzeptiere"
|
339 |
-
|
340 |
-
#: secure-wordpress.php:1017
|
341 |
-
#@ secure_wp
|
342 |
-
msgid "Get my Free Web Scan"
|
343 |
-
msgstr "Starte meinen freien Web-Scan"
|
344 |
-
|
345 |
-
#: secure-wordpress.php:1028
|
346 |
-
#@ secure_wp
|
347 |
-
msgid "Safe Seal"
|
348 |
-
msgstr "Safe Seal"
|
349 |
-
|
350 |
-
#: secure-wordpress.php:1058
|
351 |
-
#@ secure_wp
|
352 |
-
msgid "Color"
|
353 |
-
msgstr "Farbe"
|
354 |
-
|
355 |
-
#: secure-wordpress.php:1062
|
356 |
-
#@ secure_wp
|
357 |
-
msgid "Green"
|
358 |
-
msgstr "Grün"
|
359 |
-
|
360 |
-
#: secure-wordpress.php:1063
|
361 |
-
#@ secure_wp
|
362 |
-
msgid "Blue"
|
363 |
-
msgstr "Blau"
|
364 |
-
|
365 |
-
#: secure-wordpress.php:1064
|
366 |
-
#@ secure_wp
|
367 |
-
msgid "Red"
|
368 |
-
msgstr "Rot"
|
369 |
-
|
370 |
-
#: secure-wordpress.php:1065
|
371 |
-
#@ secure_wp
|
372 |
-
msgid "Brown"
|
373 |
-
msgstr "Braun"
|
374 |
-
|
375 |
-
#: secure-wordpress.php:1066
|
376 |
-
#@ secure_wp
|
377 |
-
msgid "Gray"
|
378 |
-
msgstr "Grau"
|
379 |
-
|
380 |
-
#: secure-wordpress.php:1075
|
381 |
-
#@ secure_wp
|
382 |
-
msgid "Text"
|
383 |
-
msgstr "Text"
|
384 |
-
|
385 |
-
#: secure-wordpress.php:1079
|
386 |
-
#@ secure_wp
|
387 |
-
msgid "Protected"
|
388 |
-
msgstr "Geschützt"
|
389 |
-
|
390 |
-
#: secure-wordpress.php:1080
|
391 |
-
#@ secure_wp
|
392 |
-
msgid "Secured"
|
393 |
-
msgstr "Sicher"
|
394 |
-
|
395 |
-
#: secure-wordpress.php:1081
|
396 |
-
#@ secure_wp
|
397 |
-
msgid "Scanned"
|
398 |
-
msgstr "Gescannt"
|
399 |
-
|
400 |
-
#: secure-wordpress.php:1082
|
401 |
-
#@ secure_wp
|
402 |
-
msgid "Protected by"
|
403 |
-
msgstr "Geschützt durch"
|
404 |
-
|
405 |
-
#: secure-wordpress.php:1088
|
406 |
-
#@ secure_wp
|
407 |
-
msgid "Orientation"
|
408 |
-
msgstr "Orientierung"
|
409 |
-
|
410 |
-
#: secure-wordpress.php:1092
|
411 |
-
#@ secure_wp
|
412 |
-
msgid "Horizontal"
|
413 |
-
msgstr "Horizontal"
|
414 |
-
|
415 |
-
#: secure-wordpress.php:1093
|
416 |
-
#@ secure_wp
|
417 |
-
msgid "Vertical"
|
418 |
-
msgstr "Vertical"
|
419 |
-
|
420 |
-
#: secure-wordpress.php:1099
|
421 |
-
#@ secure_wp
|
422 |
-
msgid "Image border"
|
423 |
-
msgstr "Bilder-Rahmen"
|
424 |
-
|
425 |
-
#: secure-wordpress.php:1107
|
426 |
-
#@ secure_wp
|
427 |
-
msgid "Language"
|
428 |
-
msgstr "Sprache"
|
429 |
-
|
430 |
-
#: secure-wordpress.php:1111
|
431 |
-
#@ secure_wp
|
432 |
-
msgid "English (US)"
|
433 |
-
msgstr "Englisch (US)"
|
434 |
-
|
435 |
-
#: secure-wordpress.php:1112
|
436 |
-
#@ secure_wp
|
437 |
-
msgid "English (UK)"
|
438 |
-
msgstr "Englisch (UK)"
|
439 |
-
|
440 |
-
#: secure-wordpress.php:1113
|
441 |
-
#@ secure_wp
|
442 |
-
msgid "Spanish"
|
443 |
-
msgstr "Spanisch"
|
444 |
-
|
445 |
-
#: secure-wordpress.php:1114
|
446 |
-
#@ secure_wp
|
447 |
-
msgid "German"
|
448 |
-
msgstr "Deutsch"
|
449 |
-
|
450 |
-
#: secure-wordpress.php:1115
|
451 |
-
#@ secure_wp
|
452 |
-
msgid "Italian"
|
453 |
-
msgstr "Italienisch"
|
454 |
-
|
455 |
-
#: secure-wordpress.php:1116
|
456 |
-
#@ secure_wp
|
457 |
-
msgid "Japanese"
|
458 |
-
msgstr "Japanisch"
|
459 |
-
|
460 |
-
#: secure-wordpress.php:1117
|
461 |
-
#@ secure_wp
|
462 |
-
msgid "Chinese (Simplified)"
|
463 |
-
msgstr "Chinesisch (Einfach)"
|
464 |
-
|
465 |
-
#: secure-wordpress.php:1118
|
466 |
-
#@ secure_wp
|
467 |
-
msgid "Chinese (Traditional)"
|
468 |
-
msgstr "Chinesisch (Traditonell)"
|
469 |
-
|
470 |
-
#: secure-wordpress.php:1127
|
471 |
-
#@ secure_wp
|
472 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
473 |
-
msgstr "Hier ist der erstellte Code, platziere in ihn in deiner Site (als HTML Widget) um zu zeigen, dass du geschützt bist."
|
474 |
-
|
475 |
-
#: secure-wordpress.php:1142
|
476 |
-
#@ secure_wp
|
477 |
-
msgid "Clear Options"
|
478 |
-
msgstr "Einstellungen löschen"
|
479 |
-
|
480 |
-
#: secure-wordpress.php:1145
|
481 |
-
#@ secure_wp
|
482 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
483 |
-
msgstr "Nutze diese Möglichkeit um alle Einstellungen des Plugins in der Datenbank zu löschen. Das Plugin löscht ebenfalls alle Einstellungen wenn du es deaktivierst oder aus dem Backend heraus entfernst."
|
484 |
-
|
485 |
-
#: secure-wordpress.php:1150
|
486 |
-
#@ secure_wp
|
487 |
-
msgid "Delete Options"
|
488 |
-
msgstr "Einstellungen löschen"
|
489 |
-
|
490 |
-
#. translators: plugin header field 'PluginURI'
|
491 |
-
#: secure-wordpress.php:0
|
492 |
-
#@ secure_wp
|
493 |
-
msgid "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
494 |
-
msgstr ""
|
495 |
-
|
496 |
-
#. translators: plugin header field 'Author'
|
497 |
-
#: secure-wordpress.php:0
|
498 |
-
#@ secure_wp
|
499 |
-
msgid "jremillard"
|
500 |
-
msgstr ""
|
501 |
-
|
502 |
-
#. translators: plugin header field 'AuthorURI'
|
503 |
-
#: secure-wordpress.php:0
|
504 |
-
#@ secure_wp
|
505 |
-
msgid "http://www.sitesecuritymonitor.com/"
|
506 |
-
msgstr ""
|
507 |
-
|
508 |
-
#: secure-wordpress.php:1031
|
509 |
-
#@ secure_wp
|
510 |
-
msgid "Thankyou for using our plugin! You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
511 |
-
msgstr ""
|
512 |
-
|
513 |
-
#: secure-wordpress.php:1126
|
514 |
-
#@ secure_wp
|
515 |
-
msgid "Source"
|
516 |
-
msgstr "Quellcode"
|
517 |
-
|
518 |
-
#. translators: plugin header field 'Version'
|
519 |
-
#: secure-wordpress.php:0
|
520 |
-
#@ secure_wp
|
521 |
-
msgid "1.0.5"
|
522 |
-
msgstr ""
|
523 |
-
|
524 |
-
#: secure-wordpress.php:881
|
525 |
-
#@ secure_wp
|
526 |
-
msgid "WP Version on Scripts/Styles"
|
527 |
-
msgstr "WP Version bei Scripten/Stylesheets"
|
528 |
-
|
529 |
-
#: secure-wordpress.php:885
|
530 |
-
#@ secure_wp
|
531 |
-
msgid "Removes version of WordPress on the url form scripts and stylesheets only on frontend."
|
532 |
-
msgstr "Entfernt die WordPress Version an den URLs von Scripten und Stylesheets, nur im Frontend."
|
533 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-es_ES.mo
DELETED
Binary file
|
languages/secure_wp-es_ES.po
DELETED
@@ -1,241 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: secure_wp\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2009-06-22 12:29+0100\n"
|
6 |
-
"PO-Revision-Date: \n"
|
7 |
-
"Last-Translator: Pablo <pjimcal@yahoo.com>\n"
|
8 |
-
"Language-Team: \n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Poedit-Language: Spanish\n"
|
13 |
-
"X-Poedit-Country: SPAIN\n"
|
14 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
15 |
-
|
16 |
-
#: secure-wordpress.php:337
|
17 |
-
msgid "Settings"
|
18 |
-
msgstr "Configuración"
|
19 |
-
|
20 |
-
# @ secure_wp
|
21 |
-
#: secure-wordpress.php:366
|
22 |
-
#: secure-wordpress.php:413
|
23 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
24 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentación</a>"
|
25 |
-
|
26 |
-
# @ secure_wp
|
27 |
-
#: secure-wordpress.php:389
|
28 |
-
msgid "Options update."
|
29 |
-
msgstr "Opciones de actualización."
|
30 |
-
|
31 |
-
# @ secure_wp
|
32 |
-
#: secure-wordpress.php:391
|
33 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
34 |
-
msgstr "Todas las entradas en la base de datos fueron borradas. Ahora desactive este plugin."
|
35 |
-
|
36 |
-
# @ secure_wp
|
37 |
-
#: secure-wordpress.php:405
|
38 |
-
#: secure-wordpress.php:416
|
39 |
-
msgid "Secure WP"
|
40 |
-
msgstr "WP Seguro(Secure WP)"
|
41 |
-
|
42 |
-
# @ secure_wp
|
43 |
-
#: secure-wordpress.php:412
|
44 |
-
#: secure-wordpress.php:703
|
45 |
-
msgid "Secure WordPress"
|
46 |
-
msgstr "WordPress Seguro(Secure WordPress)"
|
47 |
-
|
48 |
-
#: secure-wordpress.php:436
|
49 |
-
msgid "Version"
|
50 |
-
msgstr "Versión"
|
51 |
-
|
52 |
-
# @ secure_wp
|
53 |
-
#: secure-wordpress.php:436
|
54 |
-
msgid "History"
|
55 |
-
msgstr "Historia"
|
56 |
-
|
57 |
-
#: secure-wordpress.php:436
|
58 |
-
msgid "Author"
|
59 |
-
msgstr "Autor"
|
60 |
-
|
61 |
-
# @ secure_wp
|
62 |
-
#: secure-wordpress.php:629
|
63 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
64 |
-
msgstr "Opciones no actualizadas. Usted no tiene los privilegios para hacer esto!"
|
65 |
-
|
66 |
-
# @ secure_wp
|
67 |
-
#: secure-wordpress.php:649
|
68 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
69 |
-
msgstr "Las entradas no fueron eliminadas - Usted no tiene los privilegios para hacer esto!"
|
70 |
-
|
71 |
-
# @ secure_wp
|
72 |
-
#: secure-wordpress.php:657
|
73 |
-
msgid "Entries was not delleted - check the checkbox!"
|
74 |
-
msgstr "Las entradas no fueron eliminadas - Revise la casilla de verificación!(checkbox)"
|
75 |
-
|
76 |
-
# @ secure_wp
|
77 |
-
#: secure-wordpress.php:677
|
78 |
-
msgid "All entries in the database was cleared."
|
79 |
-
msgstr "Todas las entradas en la Base de Datos fueron borradas."
|
80 |
-
|
81 |
-
# @ secure_wp
|
82 |
-
#: secure-wordpress.php:681
|
83 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
84 |
-
msgstr "Las entradas no fueron eliminadas - Revise la casilla de verificación!(checkbox) o Usted no tiene los privilegios para hacer esto!"
|
85 |
-
|
86 |
-
#: secure-wordpress.php:708
|
87 |
-
#: secure-wordpress.php:843
|
88 |
-
#: secure-wordpress.php:863
|
89 |
-
msgid "Click to toggle"
|
90 |
-
msgstr "Haga clic para alternar"
|
91 |
-
|
92 |
-
# @ secure_wp
|
93 |
-
#: secure-wordpress.php:709
|
94 |
-
msgid "Configuration"
|
95 |
-
msgstr "Configuración"
|
96 |
-
|
97 |
-
# @ secure_wp
|
98 |
-
#: secure-wordpress.php:719
|
99 |
-
msgid "Error-Messages"
|
100 |
-
msgstr "Mensaje de error"
|
101 |
-
|
102 |
-
# @ secure_wp
|
103 |
-
#: secure-wordpress.php:729
|
104 |
-
msgid "WordPress Version"
|
105 |
-
msgstr "Versión de WordPress"
|
106 |
-
|
107 |
-
# @ secure_wp
|
108 |
-
#: secure-wordpress.php:733
|
109 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
110 |
-
msgstr "Remover versión de WordPress de todas las areas, tambien de los feeds (no del escritorio/dashboard)"
|
111 |
-
|
112 |
-
# @ secure_wp
|
113 |
-
#: secure-wordpress.php:759
|
114 |
-
msgid "Really Simple Discovery"
|
115 |
-
msgstr "Really Simple Discovery"
|
116 |
-
|
117 |
-
# @ secure_wp
|
118 |
-
#: secure-wordpress.php:763
|
119 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
120 |
-
msgstr "Remover el link \"Really Simple Discovery\" ubicado en <code>wp_head</code> de la interfaz del ususario(frontend)"
|
121 |
-
|
122 |
-
# @ secure_wp
|
123 |
-
#: secure-wordpress.php:769
|
124 |
-
msgid "Windows Live Writer"
|
125 |
-
msgstr "Windows Live Writer"
|
126 |
-
|
127 |
-
# @ secure_wp
|
128 |
-
#: secure-wordpress.php:773
|
129 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
130 |
-
msgstr "Remover el link \"Windows Live Writer\" ubicado en <code>wp_head</code> de la interfaz del ususario(frontend)"
|
131 |
-
|
132 |
-
# @ secure_wp
|
133 |
-
#: secure-wordpress.php:779
|
134 |
-
msgid "Core Update"
|
135 |
-
msgstr "Actualización del Core "
|
136 |
-
|
137 |
-
# @ secure_wp
|
138 |
-
#: secure-wordpress.php:783
|
139 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
140 |
-
msgstr "Remover la actualización del core de WordPress a no-administradores. Solo se muestra el mensaje de nueva versión del core, a usuarios con derecho para actualizar."
|
141 |
-
|
142 |
-
# @ secure_wp
|
143 |
-
#: secure-wordpress.php:789
|
144 |
-
msgid "Plugin Update"
|
145 |
-
msgstr "Actualización de Plugin"
|
146 |
-
|
147 |
-
# @ secure_wp
|
148 |
-
#: secure-wordpress.php:793
|
149 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
150 |
-
msgstr "Remover actualizaciónes de Plugin a no-administradores. Solo se muestra el mensaje de nueva versionde plugin, a usuarios con derechos para editar plugins."
|
151 |
-
|
152 |
-
# @ secure_wp
|
153 |
-
#: secure-wordpress.php:800
|
154 |
-
msgid "Theme Update"
|
155 |
-
msgstr "Actualización de tema"
|
156 |
-
|
157 |
-
# @ secure_wp
|
158 |
-
#: secure-wordpress.php:804
|
159 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
160 |
-
msgstr "Remover Actualización del tema a no-administradores.Solo se muestra el mensaje de nueva versión de tema, a usuarios con derechos para editar temas."
|
161 |
-
|
162 |
-
# @ secure_wp
|
163 |
-
#: secure-wordpress.php:811
|
164 |
-
msgid "WP Scanner"
|
165 |
-
msgstr "Escáner WP(WP Scanner)"
|
166 |
-
|
167 |
-
# @ secure_wp
|
168 |
-
#: secure-wordpress.php:815
|
169 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
170 |
-
msgstr "Escáner WP(WP Scanner) es un recurso gratuito en línea que los administradores de blog puede utilizar para proporcionar un nivel mayor de seguridad a wordpress. Para ejecutar wp-scanner marca esta opción y se añadira <code> <! - Wpscanner --></ code> a su plantilla actual de wordpress. Después de esto, visita <a href=\"http://blogsecurity.net/wpscan\"> http://blogsecurity.net/wpscan </ a> y scanee su sitio."
|
171 |
-
|
172 |
-
# @ secure_wp
|
173 |
-
#: secure-wordpress.php:833
|
174 |
-
msgid "Save Changes"
|
175 |
-
msgstr "Guardar Cambios"
|
176 |
-
|
177 |
-
# @ secure_wp
|
178 |
-
#: secure-wordpress.php:844
|
179 |
-
msgid "Clear Options"
|
180 |
-
msgstr "Limpiar Opciones"
|
181 |
-
|
182 |
-
# @ secure_wp
|
183 |
-
#: secure-wordpress.php:847
|
184 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
185 |
-
msgstr "Presione este botón para eliminar la configuración de este plugin. Desactivando el plugin Secure WordPress se removerá cualquier dato que haya sido creado."
|
186 |
-
|
187 |
-
# @ secure_wp
|
188 |
-
#: secure-wordpress.php:852
|
189 |
-
msgid "Delete Options"
|
190 |
-
msgstr "Eliminar Opciones"
|
191 |
-
|
192 |
-
# @ secure_wp
|
193 |
-
#: secure-wordpress.php:864
|
194 |
-
msgid "About the plugin"
|
195 |
-
msgstr "Acerca del Plugin"
|
196 |
-
|
197 |
-
# @ secure_wp
|
198 |
-
#: secure-wordpress.php:877
|
199 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
200 |
-
msgstr "Más información: Visite la <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">página principal del Plugin</ a> para obtener más información o para tomar la última versión de este plugin ."
|
201 |
-
|
202 |
-
# @ secure_wp
|
203 |
-
#: secure-wordpress.php:877
|
204 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
205 |
-
msgstr "¿Desea agradecerme? Visita mi <a href=\"http://bueltge.de/wunschliste/\">Lista de deseos</a>."
|
206 |
-
|
207 |
-
# @ secure_wp
|
208 |
-
#: secure-wordpress.php:753
|
209 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
210 |
-
msgstr "Crear un archivo <code>index.php</code> en <code>/plugins/</code> y<code>/themes/</code>, para evitar que se muestre su lista de directorios."
|
211 |
-
|
212 |
-
# @ secure_wp
|
213 |
-
#: secure-wordpress.php:739
|
214 |
-
msgid "WordPress Version in Backend"
|
215 |
-
msgstr "Versión de WordPress en la parte interna(Backend)"
|
216 |
-
|
217 |
-
# @ secure_wp
|
218 |
-
#: secure-wordpress.php:749
|
219 |
-
msgid "index.php"
|
220 |
-
msgstr "index.php"
|
221 |
-
|
222 |
-
# @ secure_wp
|
223 |
-
#: secure-wordpress.php:743
|
224 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
225 |
-
msgstr "Remover la versión de WordPress del escritorio(dashboard) a no-administradores. Solo se muestra la versión de WordPress a usuarios con derechos para editar plugins."
|
226 |
-
|
227 |
-
# @ secure_wp
|
228 |
-
#: secure-wordpress.php:723
|
229 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
230 |
-
msgstr "Desactivar la descripción y el mensaje de error, en el formulario de inicio de sesión de WordPress."
|
231 |
-
|
232 |
-
# @ secure_wp
|
233 |
-
#: secure-wordpress.php:821
|
234 |
-
msgid "Block bad queries"
|
235 |
-
msgstr "Bloqueo de peticiones maliciosas"
|
236 |
-
|
237 |
-
# @ secure_wp
|
238 |
-
#: secure-wordpress.php:825
|
239 |
-
msgid "Protect WordPress against malicious URL requests, see more informations on the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
240 |
-
msgstr "Proteger a WordPress de peticiones de URL maliciosas, ver más información en el <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"leer este post\" >post de Jeff Starr</a>"
|
241 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-fa_IR.mo
DELETED
Binary file
|
languages/secure_wp-fa_IR.po
DELETED
@@ -1,441 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: secure-wordpress-fa_IR\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-05-16 12:34+0100\n"
|
6 |
-
"PO-Revision-Date: \n"
|
7 |
-
"Last-Translator: ALiRezaCH <alirezach70@gmail.com>\n"
|
8 |
-
"Language-Team: AliRezaCH.co.cc\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Poedit-KeywordsList: __\n"
|
13 |
-
"X-Poedit-Basepath: C:\\xampp\\htdocs\\wp3\\wp-content\\plugins\\secure-wordpress\n"
|
14 |
-
|
15 |
-
#: secure-wordpress.php:13
|
16 |
-
msgid "Little basics for secure your WordPress-installation."
|
17 |
-
msgstr "آموزشي كوچك براي براي امنيت در نصب وردپرس"
|
18 |
-
|
19 |
-
#: secure-wordpress.php:364
|
20 |
-
msgid "Settings"
|
21 |
-
msgstr "تنظيمات"
|
22 |
-
|
23 |
-
# @ secure_wp
|
24 |
-
#: secure-wordpress.php:393
|
25 |
-
#: secure-wordpress.php:440
|
26 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
27 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">افزونه</a>"
|
28 |
-
|
29 |
-
# @ secure_wp
|
30 |
-
#: secure-wordpress.php:416
|
31 |
-
msgid "Options update."
|
32 |
-
msgstr "گزينهها بهروز شد."
|
33 |
-
|
34 |
-
# @ secure_wp
|
35 |
-
#: secure-wordpress.php:418
|
36 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
37 |
-
msgstr "تمامي وروديهاي ديتابيس حذف شدند. اكنون افزونه غيرفعال هست."
|
38 |
-
|
39 |
-
# @ secure_wp
|
40 |
-
#: secure-wordpress.php:432
|
41 |
-
#: secure-wordpress.php:443
|
42 |
-
msgid "Secure WP"
|
43 |
-
msgstr "وردپرس ايمن"
|
44 |
-
|
45 |
-
# @ secure_wp
|
46 |
-
#: secure-wordpress.php:439
|
47 |
-
#: secure-wordpress.php:738
|
48 |
-
msgid "Secure WordPress"
|
49 |
-
msgstr "وردپرس ايمن"
|
50 |
-
|
51 |
-
#: secure-wordpress.php:463
|
52 |
-
msgid "Version"
|
53 |
-
msgstr "نسخه"
|
54 |
-
|
55 |
-
# @ secure_wp
|
56 |
-
#: secure-wordpress.php:463
|
57 |
-
msgid "History"
|
58 |
-
msgstr "تاريخچه"
|
59 |
-
|
60 |
-
#: secure-wordpress.php:463
|
61 |
-
msgid "Author"
|
62 |
-
msgstr "تهيهكننده"
|
63 |
-
|
64 |
-
# @ secure_wp
|
65 |
-
#: secure-wordpress.php:664
|
66 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
67 |
-
msgstr "گزينهها به روز نشد. شما به گزينهاي ارجحيت داديد."
|
68 |
-
|
69 |
-
# @ secure_wp
|
70 |
-
#: secure-wordpress.php:684
|
71 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
72 |
-
msgstr "وروديها پاك نشدند. شما داراي مزيتي براي اين هستيد."
|
73 |
-
|
74 |
-
# @ secure_wp
|
75 |
-
#: secure-wordpress.php:692
|
76 |
-
msgid "Entries were not deleted - check the checkbox!"
|
77 |
-
msgstr "وروديها پاك نشدند- چكباكس را چك كنيد."
|
78 |
-
|
79 |
-
# @ secure_wp
|
80 |
-
#: secure-wordpress.php:712
|
81 |
-
msgid "All entries in the database were cleared."
|
82 |
-
msgstr "تمامي وروديهاي ديتابيس حذف شدند."
|
83 |
-
|
84 |
-
# @ secure_wp
|
85 |
-
#: secure-wordpress.php:716
|
86 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
87 |
-
msgstr "وروديها پاك نشدند. چكباكس خود را چك كنيد و يا شايد ارجحيتي ايجاد كردهايد."
|
88 |
-
|
89 |
-
#: secure-wordpress.php:743
|
90 |
-
#: secure-wordpress.php:878
|
91 |
-
#: secure-wordpress.php:988
|
92 |
-
#: secure-wordpress.php:1101
|
93 |
-
#: secure-wordpress.php:1121
|
94 |
-
msgid "Click to toggle"
|
95 |
-
msgstr "Click to toggle"
|
96 |
-
|
97 |
-
# @ secure_wp
|
98 |
-
#: secure-wordpress.php:744
|
99 |
-
msgid "Configuration"
|
100 |
-
msgstr "پيكربندي"
|
101 |
-
|
102 |
-
# @ secure_wp
|
103 |
-
#: secure-wordpress.php:754
|
104 |
-
msgid "Error-Messages"
|
105 |
-
msgstr "پيامهاي خطا"
|
106 |
-
|
107 |
-
# @ secure_wp
|
108 |
-
#: secure-wordpress.php:758
|
109 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
110 |
-
msgstr "غيرفعال كردن پيغامهاي خطا در زمان ورود به وردپرس"
|
111 |
-
|
112 |
-
# @ secure_wp
|
113 |
-
#: secure-wordpress.php:764
|
114 |
-
msgid "WordPress Version"
|
115 |
-
msgstr "نسخهي وردپرس"
|
116 |
-
|
117 |
-
# @ secure_wp
|
118 |
-
#: secure-wordpress.php:768
|
119 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
120 |
-
msgstr "حذف نسخه وردپرس در تمام قسمتها، كه شامل خوراك نيز ميشود، البته غير از مديريت."
|
121 |
-
|
122 |
-
# @ secure_wp
|
123 |
-
#: secure-wordpress.php:774
|
124 |
-
msgid "WordPress Version in Backend"
|
125 |
-
msgstr "عدمنمايش نسخه وردپرس"
|
126 |
-
|
127 |
-
# @ secure_wp
|
128 |
-
#: secure-wordpress.php:778
|
129 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
130 |
-
msgstr "حذف نسخهي وردپرس در قسمتهاي مديريت براي غيرمديرها. نشان دادن نسخهي وردپرس در وبلاگ شما فقط براي كاربران و ويرايش افزونهها."
|
131 |
-
|
132 |
-
# @ secure_wp
|
133 |
-
#: secure-wordpress.php:784
|
134 |
-
msgid "index.php"
|
135 |
-
msgstr "index.php"
|
136 |
-
|
137 |
-
# @ secure_wp
|
138 |
-
#: secure-wordpress.php:788
|
139 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
140 |
-
msgstr "ساختن <code>index.php</code> در <code>/plugins/</code> und <code>/themes/</code> براي نگهداشتن آن از نشان دادن فهرست دايركتوري آن. "
|
141 |
-
|
142 |
-
# @ secure_wp
|
143 |
-
#: secure-wordpress.php:794
|
144 |
-
msgid "Really Simple Discovery"
|
145 |
-
msgstr "Really Simple Discovery"
|
146 |
-
|
147 |
-
# @ secure_wp
|
148 |
-
#: secure-wordpress.php:798
|
149 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
150 |
-
msgstr "حذف پيوند Really Simple Discovery در <code>wp_head</code>"
|
151 |
-
|
152 |
-
# @ secure_wp
|
153 |
-
#: secure-wordpress.php:804
|
154 |
-
msgid "Windows Live Writer"
|
155 |
-
msgstr "Windows Live Writer"
|
156 |
-
|
157 |
-
# @ secure_wp
|
158 |
-
#: secure-wordpress.php:808
|
159 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
160 |
-
msgstr "حذف پيوند Windows Live Writer در <code>wp_head</code>"
|
161 |
-
|
162 |
-
# @ secure_wp
|
163 |
-
#: secure-wordpress.php:814
|
164 |
-
msgid "Core Update"
|
165 |
-
msgstr "بهروز كردن هسته"
|
166 |
-
|
167 |
-
# @ secure_wp
|
168 |
-
#: secure-wordpress.php:818
|
169 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
170 |
-
msgstr "حذف بهروزكردن هستهي وردپرس براي غير مدير سيستم. نشان دادن پيام نسخهي جديد وردپرس به درستي به روز شد."
|
171 |
-
|
172 |
-
# @ secure_wp
|
173 |
-
#: secure-wordpress.php:824
|
174 |
-
msgid "Plugin Update"
|
175 |
-
msgstr "به روزكردن افزونه"
|
176 |
-
|
177 |
-
# @ secure_wp
|
178 |
-
#: secure-wordpress.php:828
|
179 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
180 |
-
msgstr "حذف به روز كردن افزونهها براي غير مديرها. پيام افزونهي جديد بر روي وبلاگ نصب شد براي كاربران نشان دادهشود."
|
181 |
-
|
182 |
-
# @ secure_wp
|
183 |
-
#: secure-wordpress.php:835
|
184 |
-
msgid "Theme Update"
|
185 |
-
msgstr "بهروز كردن پوسته"
|
186 |
-
|
187 |
-
# @ secure_wp
|
188 |
-
#: secure-wordpress.php:839
|
189 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
190 |
-
msgstr "حذف بهروز كردن پوسته براي غيرمديريت. پيام نسخهي جديد پوسته بر روي وبلاگ نصب شد براي كاربران نشان دادهمي َود."
|
191 |
-
|
192 |
-
# @ secure_wp
|
193 |
-
#: secure-wordpress.php:846
|
194 |
-
msgid "WP Scanner"
|
195 |
-
msgstr "اسكنر وردپرس"
|
196 |
-
|
197 |
-
# @ secure_wp
|
198 |
-
#: secure-wordpress.php:850
|
199 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
200 |
-
msgstr "اسكنر وردپرس، منبعي آنلاين و رايگان است كه مديريت وبلاگ ميتواند امنيت وردپرس خود را محاسبه كند كه در چه سطحي است.. براي برپايي اسكنر وردپرس گزينهها را انتخاب كنيد و اين كد را در <code><!-- wpscanner --></code>قالب كنوني وردپرس خود وارد كنيد.. بد از آن به اينجا برويد <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> و سايت خود را اسكن كنيد."
|
201 |
-
|
202 |
-
# @ secure_wp
|
203 |
-
#: secure-wordpress.php:856
|
204 |
-
msgid "Block bad queries"
|
205 |
-
msgstr "بلوكهكردن جستوجوهاي بد"
|
206 |
-
|
207 |
-
# @ secure_wp
|
208 |
-
#: secure-wordpress.php:860
|
209 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
210 |
-
msgstr "ايمن كردن وردپرس شما در برابر درخواستهاي مخالف، براي اطلاعات بيشتر اينجا را بخوانيد. <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >نوشتهاي از Jeff Starr</a>"
|
211 |
-
|
212 |
-
# @ secure_wp
|
213 |
-
#: secure-wordpress.php:868
|
214 |
-
msgid "Save Changes"
|
215 |
-
msgstr "دخيرهي تنظيمات"
|
216 |
-
|
217 |
-
#: secure-wordpress.php:879
|
218 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
219 |
-
msgstr "معتبر ساختن تارنماي شما با اسكنر رايگان بدافزار در www.sitesecuritymonitor.com"
|
220 |
-
|
221 |
-
#: secure-wordpress.php:882
|
222 |
-
msgid "Take us for a Test Drive - Free Scan"
|
223 |
-
msgstr "درخواست از ما براي آزمايش و اسكن رايگان"
|
224 |
-
|
225 |
-
#: secure-wordpress.php:883
|
226 |
-
msgid "We understand you may have questions:"
|
227 |
-
msgstr "ما ميدانيم كه شما چند سؤال داريد:"
|
228 |
-
|
229 |
-
#: secure-wordpress.php:884
|
230 |
-
msgid "What does this do for me?"
|
231 |
-
msgstr "چه كاري شما براي من انجام ميدهيد؟"
|
232 |
-
|
233 |
-
#: secure-wordpress.php:885
|
234 |
-
msgid "Am I really safe? I need to be sure."
|
235 |
-
msgstr "آيا من واقعاً در امنيت هستم؟ من نياز دارم كه مطمئن شوم."
|
236 |
-
|
237 |
-
#: secure-wordpress.php:886
|
238 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
239 |
-
msgstr "در اطمينان باشيد، Site Security Monitor پشتيبان شما خواهدبود."
|
240 |
-
|
241 |
-
#: secure-wordpress.php:888
|
242 |
-
msgid "FREE scan looks for malware"
|
243 |
-
msgstr "اسكن رايگان براي يافتم بدافزار"
|
244 |
-
|
245 |
-
#: secure-wordpress.php:889
|
246 |
-
msgid "FREE report of website vulnerabilities found"
|
247 |
-
msgstr "گزارش رايگان تعداد آسيبپذيري تارنما"
|
248 |
-
|
249 |
-
#: secure-wordpress.php:890
|
250 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
251 |
-
msgstr "بدون نياز به نصب، ميزانسازي و نصب بر روي تارنماي شما - شروع اسكن سريعاً"
|
252 |
-
|
253 |
-
#: secure-wordpress.php:892
|
254 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
255 |
-
msgstr "ما گزارش جزئيات بدافزار و آسيبپذيري تارنما به شما تخويل ميدهيم. به صورات رايگان. شما مجاني گزارش درخواستي خود را دريافت مي كنيد. به رئيس شما نشان ميدهيم كه پاك هستيد، و يا به مشتري شما نشان ميدهيم كه تارنماي شما در امنيت كامل است. "
|
256 |
-
|
257 |
-
#: secure-wordpress.php:893
|
258 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
259 |
-
msgstr "** جايزه: شما پس از استفاده از Site Security Monitor و دريافت تضمين امنيت در سايت شما. به همهي دنيا نشان ميدهيد كه عاري از هرگونه بدافزار هستيد."
|
260 |
-
|
261 |
-
#: secure-wordpress.php:895
|
262 |
-
msgid "The form"
|
263 |
-
msgstr "اين فرم"
|
264 |
-
|
265 |
-
#: secure-wordpress.php:896
|
266 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
267 |
-
msgstr "استفاده از فرم موجود در <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">وبسايت ما</a>."
|
268 |
-
|
269 |
-
#: secure-wordpress.php:928
|
270 |
-
msgid "Full Name"
|
271 |
-
msgstr "نام كامل"
|
272 |
-
|
273 |
-
#: secure-wordpress.php:931
|
274 |
-
#: secure-wordpress.php:939
|
275 |
-
#: secure-wordpress.php:947
|
276 |
-
#: secure-wordpress.php:955
|
277 |
-
#: secure-wordpress.php:971
|
278 |
-
msgid "*required"
|
279 |
-
msgstr "*لازماست"
|
280 |
-
|
281 |
-
#: secure-wordpress.php:936
|
282 |
-
msgid "eMail Adress"
|
283 |
-
msgstr "رايانامه"
|
284 |
-
|
285 |
-
#: secure-wordpress.php:939
|
286 |
-
msgid ", eMail Address must match domain name"
|
287 |
-
msgstr "، رايانامه شما بايد با دامنه ي شما مطابقت داشتهباشد."
|
288 |
-
|
289 |
-
#: secure-wordpress.php:944
|
290 |
-
msgid "Website"
|
291 |
-
msgstr "تارنما"
|
292 |
-
|
293 |
-
#: secure-wordpress.php:952
|
294 |
-
msgid "Phone"
|
295 |
-
msgstr "تلفن"
|
296 |
-
|
297 |
-
#: secure-wordpress.php:960
|
298 |
-
msgid "Yes, I need help!"
|
299 |
-
msgstr "بله، من به راهنمايي نياز دارم!"
|
300 |
-
|
301 |
-
#: secure-wordpress.php:963
|
302 |
-
msgid "Call me"
|
303 |
-
msgstr "مرا صدابزن"
|
304 |
-
|
305 |
-
#: secure-wordpress.php:968
|
306 |
-
msgid "Terms and Conditions"
|
307 |
-
msgstr "قوانين و مقررات"
|
308 |
-
|
309 |
-
#: secure-wordpress.php:971
|
310 |
-
msgid ", I accept"
|
311 |
-
msgstr "، من مي پذيرم."
|
312 |
-
|
313 |
-
#: secure-wordpress.php:978
|
314 |
-
msgid "Get my Free Web Scan"
|
315 |
-
msgstr "دريافت رايگان اسكن تارنماي من."
|
316 |
-
|
317 |
-
#: secure-wordpress.php:989
|
318 |
-
msgid "Safe Seal"
|
319 |
-
msgstr "تضمين امنيت"
|
320 |
-
|
321 |
-
#: secure-wordpress.php:992
|
322 |
-
msgid "Thankyou for using our scan. You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
323 |
-
msgstr "براي استفاده از اسكنر ما سپاسگذاريم. شما ميتواني اسكنر رايگان ما را در تارنماي خود قرار دهيد (از كد HTML زير رونشت برداريد و در تارنماي خود قرار دهيد).اگر اين سرويس اسكن براي ايمن كردن را نگرفتهايد- خيلي راحت وردپرس خود را امنيتي كنيد-اگر مايليد كه در انجمن ما شركت كنيد و از تجربههاي ما استفادهكنيد.به صورت مستقيم از سرويس آسيبپذيري و اسكن بدافزار ما استفاد كنيد.<a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">از تارنماي ما ديدن كنيد...</a>"
|
324 |
-
|
325 |
-
#: secure-wordpress.php:1020
|
326 |
-
msgid "Color"
|
327 |
-
msgstr "رنگ"
|
328 |
-
|
329 |
-
#: secure-wordpress.php:1024
|
330 |
-
msgid "Green"
|
331 |
-
msgstr "سبز"
|
332 |
-
|
333 |
-
#: secure-wordpress.php:1025
|
334 |
-
msgid "Blue"
|
335 |
-
msgstr "آبي"
|
336 |
-
|
337 |
-
#: secure-wordpress.php:1026
|
338 |
-
msgid "Red"
|
339 |
-
msgstr "قرمز"
|
340 |
-
|
341 |
-
#: secure-wordpress.php:1027
|
342 |
-
msgid "Brown"
|
343 |
-
msgstr "قهوهاي"
|
344 |
-
|
345 |
-
#: secure-wordpress.php:1028
|
346 |
-
msgid "Gray"
|
347 |
-
msgstr "خاكستري"
|
348 |
-
|
349 |
-
#: secure-wordpress.php:1037
|
350 |
-
msgid "Text"
|
351 |
-
msgstr "متن"
|
352 |
-
|
353 |
-
#: secure-wordpress.php:1041
|
354 |
-
msgid "Protected"
|
355 |
-
msgstr "محافظت شد."
|
356 |
-
|
357 |
-
# @ secure_wp
|
358 |
-
#: secure-wordpress.php:1042
|
359 |
-
msgid "Secured"
|
360 |
-
msgstr "ايمن شد."
|
361 |
-
|
362 |
-
# @ secure_wp
|
363 |
-
#: secure-wordpress.php:1043
|
364 |
-
msgid "Scanned"
|
365 |
-
msgstr "اسكن شد."
|
366 |
-
|
367 |
-
#: secure-wordpress.php:1044
|
368 |
-
msgid "Protected by"
|
369 |
-
msgstr "محافظت شده توسط"
|
370 |
-
|
371 |
-
#: secure-wordpress.php:1050
|
372 |
-
msgid "Orientation"
|
373 |
-
msgstr "آشناسازي"
|
374 |
-
|
375 |
-
#: secure-wordpress.php:1054
|
376 |
-
msgid "Horizontal"
|
377 |
-
msgstr "افقي"
|
378 |
-
|
379 |
-
#: secure-wordpress.php:1055
|
380 |
-
msgid "Vertical"
|
381 |
-
msgstr "عمودي"
|
382 |
-
|
383 |
-
#: secure-wordpress.php:1061
|
384 |
-
msgid "Image border"
|
385 |
-
msgstr "حاشيه تصوير"
|
386 |
-
|
387 |
-
#: secure-wordpress.php:1069
|
388 |
-
msgid "Language"
|
389 |
-
msgstr "زبان"
|
390 |
-
|
391 |
-
#: secure-wordpress.php:1073
|
392 |
-
msgid "English (US)"
|
393 |
-
msgstr "Englisch (US)"
|
394 |
-
|
395 |
-
#: secure-wordpress.php:1074
|
396 |
-
msgid "English (UK)"
|
397 |
-
msgstr "Englisch (UK)"
|
398 |
-
|
399 |
-
#: secure-wordpress.php:1075
|
400 |
-
msgid "Spanish"
|
401 |
-
msgstr "Spanisch"
|
402 |
-
|
403 |
-
#: secure-wordpress.php:1076
|
404 |
-
msgid "German"
|
405 |
-
msgstr "Deutsch"
|
406 |
-
|
407 |
-
#: secure-wordpress.php:1077
|
408 |
-
msgid "Italian"
|
409 |
-
msgstr "Italienisch"
|
410 |
-
|
411 |
-
#: secure-wordpress.php:1078
|
412 |
-
msgid "Japanese"
|
413 |
-
msgstr "Japanisch"
|
414 |
-
|
415 |
-
#: secure-wordpress.php:1079
|
416 |
-
msgid "Chinese (Simplified)"
|
417 |
-
msgstr "Chinesisch (Einfach)"
|
418 |
-
|
419 |
-
#: secure-wordpress.php:1080
|
420 |
-
msgid "Chinese (Traditional)"
|
421 |
-
msgstr "Chinesisch (Traditonell)"
|
422 |
-
|
423 |
-
#: secure-wordpress.php:1089
|
424 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
425 |
-
msgstr "اين كد براي شما توليد شدهاست. اين كد را در وبسايت خود قرار دهيد تا نشان دهيد كه از وبلاگ شما ايمن هست."
|
426 |
-
|
427 |
-
# @ secure_wp
|
428 |
-
#: secure-wordpress.php:1102
|
429 |
-
msgid "Clear Options"
|
430 |
-
msgstr "پاك كردن گزينهها"
|
431 |
-
|
432 |
-
# @ secure_wp
|
433 |
-
#: secure-wordpress.php:1105
|
434 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
435 |
-
msgstr "با كليك كردن بر روي اين دكمه تنظيمات اين افزونه حذف ميشود. افزونهي وردپرس ايمن غيرفعال شده و تمامي دادههاي ساخته شده حذف ميشود."
|
436 |
-
|
437 |
-
# @ secure_wp
|
438 |
-
#: secure-wordpress.php:1110
|
439 |
-
msgid "Delete Options"
|
440 |
-
msgstr "حذف گزينهها"
|
441 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-fr_FR.mo
DELETED
Binary file
|
languages/secure_wp-fr_FR.po
DELETED
@@ -1,246 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-03-10 22:27+0100\n"
|
6 |
-
"PO-Revision-Date: 2010-03-10 22:28+0100\n"
|
7 |
-
"Last-Translator: JeoffreyLac <lascarduweb@hotmail.com>\n"
|
8 |
-
"Language-Team: JeoffreyLac\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
14 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
15 |
-
"X-Poedit-Basepath: ../\n"
|
16 |
-
"X-Textdomain-Support: yes\n"
|
17 |
-
"X-Poedit-Language: French\n"
|
18 |
-
"X-Poedit-Country: FRANCE\n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
|
21 |
-
#: secure-wordpress.php:337
|
22 |
-
msgid "Settings"
|
23 |
-
msgstr "Réglages"
|
24 |
-
|
25 |
-
# @ secure_wp
|
26 |
-
#: secure-wordpress.php:366
|
27 |
-
#: secure-wordpress.php:413
|
28 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
29 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
30 |
-
|
31 |
-
# @ secure_wp
|
32 |
-
#: secure-wordpress.php:389
|
33 |
-
msgid "Options update."
|
34 |
-
msgstr "Mettre à jour les options."
|
35 |
-
|
36 |
-
# @ secure_wp
|
37 |
-
#: secure-wordpress.php:391
|
38 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
39 |
-
msgstr "Toutes les informations dans la base de données ont été effacées. Vous pouvez désormais désactiver le plugin."
|
40 |
-
|
41 |
-
# @ secure_wp
|
42 |
-
#: secure-wordpress.php:405
|
43 |
-
#: secure-wordpress.php:416
|
44 |
-
msgid "Secure WP"
|
45 |
-
msgstr "Secure WP"
|
46 |
-
|
47 |
-
# @ secure_wp
|
48 |
-
#: secure-wordpress.php:412
|
49 |
-
#: secure-wordpress.php:704
|
50 |
-
msgid "Secure WordPress"
|
51 |
-
msgstr "Secure WordPress"
|
52 |
-
|
53 |
-
#: secure-wordpress.php:436
|
54 |
-
msgid "Version"
|
55 |
-
msgstr "Version"
|
56 |
-
|
57 |
-
# @ secure_wp
|
58 |
-
#: secure-wordpress.php:436
|
59 |
-
msgid "History"
|
60 |
-
msgstr "Historique"
|
61 |
-
|
62 |
-
#: secure-wordpress.php:436
|
63 |
-
msgid "Author"
|
64 |
-
msgstr "Auteur"
|
65 |
-
|
66 |
-
# @ secure_wp
|
67 |
-
#: secure-wordpress.php:630
|
68 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
69 |
-
msgstr "Les options n'ont pas été mises à jour - vous n'avez pas les privilèges requis."
|
70 |
-
|
71 |
-
# @ secure_wp
|
72 |
-
#: secure-wordpress.php:650
|
73 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
74 |
-
msgstr "Les informations n'ont pas pu être supprimées - vous n'avez pas les privilèges requis."
|
75 |
-
|
76 |
-
# @ secure_wp
|
77 |
-
#: secure-wordpress.php:658
|
78 |
-
msgid "Entries was not delleted - check the checkbox!"
|
79 |
-
msgstr "Les informations n'ont pas pu être supprimées - vérifiez la case à cocher!"
|
80 |
-
|
81 |
-
# @ secure_wp
|
82 |
-
#: secure-wordpress.php:678
|
83 |
-
msgid "All entries in the database was cleared."
|
84 |
-
msgstr "Toutes les informations dans la base de données ont été effacées."
|
85 |
-
|
86 |
-
# @ secure_wp
|
87 |
-
#: secure-wordpress.php:682
|
88 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
89 |
-
msgstr "Les informations n'ont pas été effacées - vérifiez la case à cocher et assurez-vous d'avoir les privilèges pour effectuer cette action."
|
90 |
-
|
91 |
-
#: secure-wordpress.php:709
|
92 |
-
#: secure-wordpress.php:844
|
93 |
-
#: secure-wordpress.php:864
|
94 |
-
msgid "Click to toggle"
|
95 |
-
msgstr "Cliquer pour basculer"
|
96 |
-
|
97 |
-
# @ secure_wp
|
98 |
-
#: secure-wordpress.php:710
|
99 |
-
msgid "Configuration"
|
100 |
-
msgstr "Configuration"
|
101 |
-
|
102 |
-
# @ secure_wp
|
103 |
-
#: secure-wordpress.php:720
|
104 |
-
msgid "Error-Messages"
|
105 |
-
msgstr "Messages d'erreur"
|
106 |
-
|
107 |
-
# @ secure_wp
|
108 |
-
#: secure-wordpress.php:724
|
109 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
110 |
-
msgstr "Désactive la suggestion et le message d'erreur à la connection de Wordpress"
|
111 |
-
|
112 |
-
# @ secure_wp
|
113 |
-
#: secure-wordpress.php:730
|
114 |
-
msgid "WordPress Version"
|
115 |
-
msgstr "Version WordPress"
|
116 |
-
|
117 |
-
# @ secure_wp
|
118 |
-
#: secure-wordpress.php:734
|
119 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
120 |
-
msgstr "Supprime la version WordPress dans toutes les zones, y compris le flux, mais pas dans la partie admin."
|
121 |
-
|
122 |
-
# @ secure_wp
|
123 |
-
#: secure-wordpress.php:740
|
124 |
-
msgid "WordPress Version in Backend"
|
125 |
-
msgstr "WordPres Version dans Backend"
|
126 |
-
|
127 |
-
# @ secure_wp
|
128 |
-
#: secure-wordpress.php:744
|
129 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
130 |
-
msgstr "Supprime la version de WordPress dans la zone d'administration pour les non-administrateurs. Montre la version de Wordpress uniquement aux utilisateurs avec les droits d'édition de vos plugins."
|
131 |
-
|
132 |
-
# @ secure_wp
|
133 |
-
#: secure-wordpress.php:750
|
134 |
-
msgid "index.php"
|
135 |
-
msgstr "index.php"
|
136 |
-
|
137 |
-
# @ secure_wp
|
138 |
-
#: secure-wordpress.php:754
|
139 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
140 |
-
msgstr "crée le fichier <code>index.php</code> dans les répertoires <code>/plugins/</code> et<code>/themes/</code> pour éviter de montrer votre liste de répertoire."
|
141 |
-
|
142 |
-
# @ secure_wp
|
143 |
-
#: secure-wordpress.php:760
|
144 |
-
msgid "Really Simple Discovery"
|
145 |
-
msgstr "Really Simple Discovery"
|
146 |
-
|
147 |
-
# @ secure_wp
|
148 |
-
#: secure-wordpress.php:764
|
149 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
150 |
-
msgstr "Supprime le lien de Really Simple Discovery dans <code>wp_head</code> du frontend"
|
151 |
-
|
152 |
-
# @ secure_wp
|
153 |
-
#: secure-wordpress.php:770
|
154 |
-
msgid "Windows Live Writer"
|
155 |
-
msgstr "Windows Live Writer"
|
156 |
-
|
157 |
-
# @ secure_wp
|
158 |
-
#: secure-wordpress.php:774
|
159 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
160 |
-
msgstr "Supprime le lien de Windows Live Writer dans <code>wp_head</code> du frontend"
|
161 |
-
|
162 |
-
# @ secure_wp
|
163 |
-
#: secure-wordpress.php:780
|
164 |
-
msgid "Core Update"
|
165 |
-
msgstr "Mise à jour du noyau"
|
166 |
-
|
167 |
-
# @ secure_wp
|
168 |
-
#: secure-wordpress.php:784
|
169 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
170 |
-
msgstr "Supprime la mise à jour du Noyau WordPress pour tout les utilisateurs sauf l'administrateur. Affiche un message lors de la disponibilité d'une nouvelle version WordPress seulement pour les utilisateurs possédant les droits de mettre à jour."
|
171 |
-
|
172 |
-
# @ secure_wp
|
173 |
-
#: secure-wordpress.php:790
|
174 |
-
msgid "Plugin Update"
|
175 |
-
msgstr "Mise à jour Plugin"
|
176 |
-
|
177 |
-
# @ secure_wp
|
178 |
-
#: secure-wordpress.php:794
|
179 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
180 |
-
msgstr "Supprime la mise à jour des plugins pour tout les utilisateurs sauf l'administrateur. Affiche un message lors de la disponibilité d'un plugin dans le panneau d'administration seulement aux utilisateurs possédants les droits d'éditer les plugins."
|
181 |
-
|
182 |
-
# @ secure_wp
|
183 |
-
#: secure-wordpress.php:801
|
184 |
-
msgid "Theme Update"
|
185 |
-
msgstr "Mise à jour du thème."
|
186 |
-
|
187 |
-
# @ secure_wp
|
188 |
-
#: secure-wordpress.php:805
|
189 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
190 |
-
msgstr "Supprime la mise à jour du thème à tout les utilisateurs sauf l'administrateur. Affiche un message lors d'une nouvelle version de thème seulement aux utilisateurs avec les droits permettant d'éditer les thèmes."
|
191 |
-
|
192 |
-
# @ secure_wp
|
193 |
-
#: secure-wordpress.php:812
|
194 |
-
msgid "WP Scanner"
|
195 |
-
msgstr "WP Scanner"
|
196 |
-
|
197 |
-
# @ secure_wp
|
198 |
-
#: secure-wordpress.php:816
|
199 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
200 |
-
msgstr "Le scanner WordPress est une ressource gratuite en ligne permettant aux administrateurs de blog de mesurer le niveau de sécurité de leurs installations WordPress. Pour lancer wp-scanner, cochez cette option et ajouter <code><!-- wpscanner --></code> à votre template WordPress actuellement utilisé. Aller ensuite sur : <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> et scanner votre site."
|
201 |
-
|
202 |
-
# @ secure_wp
|
203 |
-
#: secure-wordpress.php:822
|
204 |
-
msgid "Block bad queries"
|
205 |
-
msgstr "Bloquer les mauvaises requêtes"
|
206 |
-
|
207 |
-
# @ secure_wp
|
208 |
-
#: secure-wordpress.php:826
|
209 |
-
msgid "Protect WordPress against malicious URL requests, see more informations on the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
210 |
-
msgstr "Protège WordPress contre les requêtes malicieuses d'URL, jettez un oeil à cet article pour de plus amples informations : <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >Jeff Starr - Malicious url req</a>"
|
211 |
-
|
212 |
-
# @ secure_wp
|
213 |
-
#: secure-wordpress.php:834
|
214 |
-
msgid "Save Changes"
|
215 |
-
msgstr "Sauvegarder les changements"
|
216 |
-
|
217 |
-
# @ secure_wp
|
218 |
-
#: secure-wordpress.php:845
|
219 |
-
msgid "Clear Options"
|
220 |
-
msgstr "Options de suppression"
|
221 |
-
|
222 |
-
# @ secure_wp
|
223 |
-
#: secure-wordpress.php:848
|
224 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
225 |
-
msgstr "Cocher et cliquer sur ce bouton pour effacer toutes les configurations de ce plugin. La désactivation du plugin Secure WordPress supprime toutes les données du plugin."
|
226 |
-
|
227 |
-
# @ secure_wp
|
228 |
-
#: secure-wordpress.php:853
|
229 |
-
msgid "Delete Options"
|
230 |
-
msgstr "Options d'effacement"
|
231 |
-
|
232 |
-
# @ secure_wp
|
233 |
-
#: secure-wordpress.php:865
|
234 |
-
msgid "About the plugin"
|
235 |
-
msgstr "A propos du plugin"
|
236 |
-
|
237 |
-
# @ secure_wp
|
238 |
-
#: secure-wordpress.php:878
|
239 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
240 |
-
msgstr "Complément d'information : Visitez la : <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\"> page officielle du plugin</a> pour plus d'informations ou pour récupérer la dernière version du plugin."
|
241 |
-
|
242 |
-
# @ secure_wp
|
243 |
-
#: secure-wordpress.php:878
|
244 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
245 |
-
msgstr "Vous voulez me dire merci ? Visitez ma <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
246 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-hu_HU.mo
DELETED
Binary file
|
languages/secure_wp-hu_HU.po
DELETED
@@ -1,237 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2009-06-22 12:29+0100\n"
|
6 |
-
"PO-Revision-Date: 2009-06-22 14:29+0100\n"
|
7 |
-
"Last-Translator: Körmendi Péter <peter@seo-hungary.com>\n"
|
8 |
-
"Language-Team: Körmendi Péter <peter@seo-hungary.com>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: \n"
|
14 |
-
"X-Poedit-Country: \n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
17 |
-
"X-Poedit-Basepath: ../\n"
|
18 |
-
"X-Poedit-Bookmarks: \n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
"X-Textdomain-Support: yes"
|
21 |
-
|
22 |
-
#: secure-wordpress.php:330
|
23 |
-
msgid "Settings"
|
24 |
-
msgstr "Beállítások"
|
25 |
-
|
26 |
-
#: secure-wordpress.php:359
|
27 |
-
#: secure-wordpress.php:402
|
28 |
-
#@ secure_wp
|
29 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
30 |
-
msgstr "<a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">Dokumentációk</a>"
|
31 |
-
|
32 |
-
#: secure-wordpress.php:382
|
33 |
-
#@ secure_wp
|
34 |
-
msgid "Options update."
|
35 |
-
msgstr "Beállítások aktualizálva."
|
36 |
-
|
37 |
-
#: secure-wordpress.php:384
|
38 |
-
#@ secure_wp
|
39 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
40 |
-
msgstr "Az adatbankban minden bejegyzés törölve. Most deaktiválom a Plugint."
|
41 |
-
|
42 |
-
#: secure-wordpress.php:398
|
43 |
-
#: secure-wordpress.php:405
|
44 |
-
#@ secure_wp
|
45 |
-
msgid "Secure WP"
|
46 |
-
msgstr "Secure WP"
|
47 |
-
|
48 |
-
#: secure-wordpress.php:401
|
49 |
-
#: secure-wordpress.php:641
|
50 |
-
#@ secure_wp
|
51 |
-
msgid "Secure WordPress"
|
52 |
-
msgstr "Secure WordPress"
|
53 |
-
|
54 |
-
#: secure-wordpress.php:425
|
55 |
-
msgid "Version"
|
56 |
-
msgstr "Verzió"
|
57 |
-
|
58 |
-
#: secure-wordpress.php:425
|
59 |
-
#@ secure_wp
|
60 |
-
msgid "History"
|
61 |
-
msgstr "Előzmények"
|
62 |
-
|
63 |
-
#: secure-wordpress.php:425
|
64 |
-
msgid "Author"
|
65 |
-
msgstr "Szerző"
|
66 |
-
|
67 |
-
#: secure-wordpress.php:568
|
68 |
-
#@ secure_wp
|
69 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
70 |
-
msgstr "A beállítások nem aktualizálódtak. Nem rendelkezel a megfelelő jogokkal!"
|
71 |
-
|
72 |
-
#: secure-wordpress.php:588
|
73 |
-
#@ secure_wp
|
74 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
75 |
-
msgstr "A beállítások nem törlődtek. Nem rendelkezel a megfelelő jogokkal!"
|
76 |
-
|
77 |
-
#: secure-wordpress.php:596
|
78 |
-
#@ secure_wp
|
79 |
-
msgid "Entries was not delleted - check the checkbox!"
|
80 |
-
msgstr "A beállítások nem törlődtek - ellenőrizd a Checkbox-ot! "
|
81 |
-
|
82 |
-
#: secure-wordpress.php:616
|
83 |
-
#@ secure_wp
|
84 |
-
msgid "All entries in the database was cleared."
|
85 |
-
msgstr "Az adatbankban minden bejegyzés törölve."
|
86 |
-
|
87 |
-
#: secure-wordpress.php:620
|
88 |
-
#@ secure_wp
|
89 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
90 |
-
msgstr "A beállítások nem törlődtek - ellenőrizd a Checkbox-ot vagy nem rendelkezel a megfelelő jogosultságokkal! "
|
91 |
-
|
92 |
-
#: secure-wordpress.php:646
|
93 |
-
#: secure-wordpress.php:771
|
94 |
-
#: secure-wordpress.php:791
|
95 |
-
msgid "Click to toggle"
|
96 |
-
msgstr "Kattints az átváltáshoz"
|
97 |
-
|
98 |
-
#: secure-wordpress.php:647
|
99 |
-
#@ secure_wp
|
100 |
-
msgid "Configuration"
|
101 |
-
msgstr "Beállítások"
|
102 |
-
|
103 |
-
#: secure-wordpress.php:657
|
104 |
-
#@ secure_wp
|
105 |
-
msgid "Error-Messages"
|
106 |
-
msgstr "Hibaüzenetek"
|
107 |
-
|
108 |
-
#: secure-wordpress.php:661
|
109 |
-
#@ secure_wp
|
110 |
-
msgid "deactivates tooltip and error message at login of WordPress"
|
111 |
-
msgstr "Deaktiválja az utalásokat és hibaüzeneteket a WordPress bejelentkezés során"
|
112 |
-
|
113 |
-
#: secure-wordpress.php:667
|
114 |
-
#@ secure_wp
|
115 |
-
msgid "WordPress Version"
|
116 |
-
msgstr "WordPress verzió"
|
117 |
-
|
118 |
-
#: secure-wordpress.php:671
|
119 |
-
#@ secure_wp
|
120 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
121 |
-
msgstr "WordPress verzió eltávolítása minden területről, beleértve a Feed-et és a nem admin felületet."
|
122 |
-
|
123 |
-
#: secure-wordpress.php:697
|
124 |
-
#@ secure_wp
|
125 |
-
msgid "Really Simple Discovery"
|
126 |
-
msgstr "Really Simple Discovery"
|
127 |
-
|
128 |
-
#: secure-wordpress.php:701
|
129 |
-
#@ secure_wp
|
130 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
131 |
-
msgstr "Eltávolítja a Really Simple Discovery linket a Frontend fejlécéből"
|
132 |
-
|
133 |
-
#: secure-wordpress.php:707
|
134 |
-
#@ secure_wp
|
135 |
-
msgid "Windows Live Writer"
|
136 |
-
msgstr "Windows Live Writer"
|
137 |
-
|
138 |
-
#: secure-wordpress.php:711
|
139 |
-
#@ secure_wp
|
140 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
141 |
-
msgstr "Eltávolítja a Windows Live Writer linket a Frontend fejlécéből"
|
142 |
-
|
143 |
-
#: secure-wordpress.php:717
|
144 |
-
#@ secure_wp
|
145 |
-
msgid "Core Update"
|
146 |
-
msgstr "Core Update"
|
147 |
-
|
148 |
-
#: secure-wordpress.php:721
|
149 |
-
#@ secure_wp
|
150 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
151 |
-
msgstr "Deaktiválja a Core-Update-et a nem adminisztrátorok számára. A WordPress új verziójáról csak azok a felhasználók értesülnek, akik rendelkeznek Plugin szerkesztői jogokkal."
|
152 |
-
|
153 |
-
#: secure-wordpress.php:727
|
154 |
-
#@ secure_wp
|
155 |
-
msgid "Plugin Update"
|
156 |
-
msgstr "Plugin Update"
|
157 |
-
|
158 |
-
#: secure-wordpress.php:731
|
159 |
-
#@ secure_wp
|
160 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
161 |
-
msgstr "Deaktiválja a Plugin-Update-et a nem adminisztrátorok számára. A pluginok új verziójáról csak azok a felhasználók értesülnek, akik rendelkeznek Plugin szerkesztői jogokkal."
|
162 |
-
|
163 |
-
#: secure-wordpress.php:738
|
164 |
-
#@ secure_wp
|
165 |
-
msgid "Theme Update"
|
166 |
-
msgstr "Theme Update"
|
167 |
-
|
168 |
-
#: secure-wordpress.php:742
|
169 |
-
#@ secure_wp
|
170 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
171 |
-
msgstr "Deaktiválja a Theme-Update-et a nem adminisztrátorok számára. A WordPress sablon új verziójáról csak azok a felhasználók értesülnek, akik rendelkeznek sablon szerkesztői jogokkal."
|
172 |
-
|
173 |
-
#: secure-wordpress.php:749
|
174 |
-
#@ secure_wp
|
175 |
-
msgid "WP Scanner"
|
176 |
-
msgstr "WP Scanner"
|
177 |
-
|
178 |
-
#: secure-wordpress.php:753
|
179 |
-
#@ secure_wp
|
180 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
181 |
-
msgstr "A WordPress Scanner egy szabadon alkalmazható online eszköz blog adminisztrátorok számára, a WordPress telepítés Frontend biztonságának ellenőrzéséhez. Ha használni szeretnéd, aktiváld a Checkbox-ot amivel a <code><!-- wpscanner --></code> stringet beilleszted az aktuálisan használt sablonba. Ezután keresd fel az online scannert a <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> címen és ellenőrizd le az oldaladat."
|
182 |
-
|
183 |
-
#: secure-wordpress.php:761
|
184 |
-
#@ secure_wp
|
185 |
-
msgid "Save Changes"
|
186 |
-
msgstr "Beállítások aktualizálása"
|
187 |
-
|
188 |
-
#: secure-wordpress.php:772
|
189 |
-
#@ secure_wp
|
190 |
-
msgid "Clear Options"
|
191 |
-
msgstr "Beállítások törlése"
|
192 |
-
|
193 |
-
#: secure-wordpress.php:775
|
194 |
-
#@ secure_wp
|
195 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
196 |
-
msgstr "Ezt a lehetőséget akkor használd, ha a plugin összes beállítását törölni szeretnéd az adatbankból. A plugin akkor is törli az összes beállítást, ha deaktiválod, vagy ha azt a Backend-ből távolítod el."
|
197 |
-
|
198 |
-
#: secure-wordpress.php:780
|
199 |
-
#@ secure_wp
|
200 |
-
msgid "Delete Options"
|
201 |
-
msgstr "Beállítások törlése"
|
202 |
-
|
203 |
-
#: secure-wordpress.php:792
|
204 |
-
#@ secure_wp
|
205 |
-
msgid "About the plugin"
|
206 |
-
msgstr "A pluginról"
|
207 |
-
|
208 |
-
#: secure-wordpress.php:805
|
209 |
-
#@ secure_wp
|
210 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
211 |
-
msgstr "További információk: Több információkért, illetve a plugin aktuális verziójának letöltéséért látogass el a <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">Plugin weboldalára</a>."
|
212 |
-
|
213 |
-
#: secure-wordpress.php:805
|
214 |
-
#@ secure_wp
|
215 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
216 |
-
msgstr "Köszönetet szeretnél mondani? Látogasd meg a <a href=\"http://bueltge.de/wunschliste/\">kívánságlistámat</a>."
|
217 |
-
|
218 |
-
#: secure-wordpress.php:691
|
219 |
-
#@ secure_wp
|
220 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
221 |
-
msgstr "létrehoz egy <code>index.php</ code> fájlt <code>/plugins/</code> és <code>/themes/</code>, ha nem akarja jeleníti meg a könyvtárlistában"
|
222 |
-
|
223 |
-
#: secure-wordpress.php:677
|
224 |
-
#@ secure_wp
|
225 |
-
msgid "WordPress Version in Backend"
|
226 |
-
msgstr ""
|
227 |
-
|
228 |
-
#: secure-wordpress.php:687
|
229 |
-
#@ secure_wp
|
230 |
-
msgid "index.php"
|
231 |
-
msgstr ""
|
232 |
-
|
233 |
-
#: secure-wordpress.php:681
|
234 |
-
#@ secure_wp
|
235 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
236 |
-
msgstr ""
|
237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-it_IT.mo
DELETED
Binary file
|
languages/secure_wp-it_IT.po
DELETED
@@ -1,476 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress in italiano\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-05-16 12:34+0100\n"
|
6 |
-
"PO-Revision-Date: 2010-10-16 21:29+0100\n"
|
7 |
-
"Last-Translator: Gianni Diurno (aka gidibao) <gidibao[at]gmail[dot]com>\n"
|
8 |
-
"Language-Team: Gianni Diurno | http://gidibao.net/ <gidibao@gmail.com>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: Italian\n"
|
14 |
-
"X-Poedit-Country: ITALY\n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e\n"
|
17 |
-
"X-Textdomain-Support: yes\n"
|
18 |
-
|
19 |
-
#. translators: plugin header field 'Description'
|
20 |
-
#: secure-wordpress.php:0
|
21 |
-
msgid "Little basics for secure your WordPress-installation."
|
22 |
-
msgstr "Info di base per mettere in sicurezza la tua installazione di WordPress."
|
23 |
-
|
24 |
-
#: secure-wordpress.php:365
|
25 |
-
msgid "Settings"
|
26 |
-
msgstr "Impostazioni"
|
27 |
-
|
28 |
-
# @ secure_wp
|
29 |
-
#: secure-wordpress.php:394
|
30 |
-
#: secure-wordpress.php:441
|
31 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
32 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentazione</a>"
|
33 |
-
|
34 |
-
# @ secure_wp
|
35 |
-
#: secure-wordpress.php:417
|
36 |
-
msgid "Options update."
|
37 |
-
msgstr "Le opzioni sono state aggiornate."
|
38 |
-
|
39 |
-
# @ secure_wp
|
40 |
-
#: secure-wordpress.php:419
|
41 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
42 |
-
msgstr "Sono state cancellate tutte le informazioni contenute nel database. Ora puoi disattivare il plugin."
|
43 |
-
|
44 |
-
# @ secure_wp
|
45 |
-
#: secure-wordpress.php:433
|
46 |
-
#: secure-wordpress.php:444
|
47 |
-
msgid "Secure WP"
|
48 |
-
msgstr "Secure WP"
|
49 |
-
|
50 |
-
# @ secure_wp
|
51 |
-
#. translators: plugin header field 'Name'
|
52 |
-
#: secure-wordpress.php:0
|
53 |
-
#: secure-wordpress.php:440
|
54 |
-
#: secure-wordpress.php:751
|
55 |
-
msgid "Secure WordPress"
|
56 |
-
msgstr "Secure WordPress"
|
57 |
-
|
58 |
-
#: secure-wordpress.php:464
|
59 |
-
msgid "Version"
|
60 |
-
msgstr "Versione"
|
61 |
-
|
62 |
-
# @ secure_wp
|
63 |
-
#: secure-wordpress.php:464
|
64 |
-
msgid "History"
|
65 |
-
msgstr "Storico"
|
66 |
-
|
67 |
-
#: secure-wordpress.php:464
|
68 |
-
msgid "Author"
|
69 |
-
msgstr "Autore"
|
70 |
-
|
71 |
-
# @ secure_wp
|
72 |
-
#: secure-wordpress.php:676
|
73 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
74 |
-
msgstr "Le opzioni non sono state aggiornate - non hai i permessi per poter operare queste modifiche!"
|
75 |
-
|
76 |
-
# @ secure_wp
|
77 |
-
#: secure-wordpress.php:696
|
78 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
79 |
-
msgstr "Le informazioni non sono state cancellate - non hai i permessi per poter operare queste modifiche!"
|
80 |
-
|
81 |
-
# @ secure_wp
|
82 |
-
#: secure-wordpress.php:704
|
83 |
-
msgid "Entries were not deleted - check the checkbox!"
|
84 |
-
msgstr "Le informazioni non sono state cancellate - verifica la casella di selezione!"
|
85 |
-
|
86 |
-
# @ secure_wp
|
87 |
-
#: secure-wordpress.php:724
|
88 |
-
msgid "All entries in the database were cleared."
|
89 |
-
msgstr "Sono state cancellate tutte le informazioni contenute nel database."
|
90 |
-
|
91 |
-
# @ secure_wp
|
92 |
-
#: secure-wordpress.php:728
|
93 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
94 |
-
msgstr "Le informazioni non sono state cancellate - verifica la casella di selezione oppure potresti non avere i permessi per poter operare queste modifiche!"
|
95 |
-
|
96 |
-
#: secure-wordpress.php:756
|
97 |
-
#: secure-wordpress.php:892
|
98 |
-
#: secure-wordpress.php:1005
|
99 |
-
#: secure-wordpress.php:1119
|
100 |
-
msgid "Click to toggle"
|
101 |
-
msgstr "Clicca per commutare"
|
102 |
-
|
103 |
-
# @ secure_wp
|
104 |
-
#: secure-wordpress.php:757
|
105 |
-
msgid "Configuration"
|
106 |
-
msgstr "Configurazione"
|
107 |
-
|
108 |
-
# @ secure_wp
|
109 |
-
#: secure-wordpress.php:767
|
110 |
-
msgid "Error-Messages"
|
111 |
-
msgstr "Messaggi di errore"
|
112 |
-
|
113 |
-
# @ secure_wp
|
114 |
-
#: secure-wordpress.php:771
|
115 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
116 |
-
msgstr "disattiva i suggerimenti ed il messaggio di errore durante il login a WordPress"
|
117 |
-
|
118 |
-
# @ secure_wp
|
119 |
-
#: secure-wordpress.php:777
|
120 |
-
msgid "WordPress Version"
|
121 |
-
msgstr "Versione WordPress"
|
122 |
-
|
123 |
-
# @ secure_wp
|
124 |
-
#: secure-wordpress.php:781
|
125 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
126 |
-
msgstr "Rimuove da tutte le aree la versione di WordPress in uso, inclusi i feed: non in amministrazione"
|
127 |
-
|
128 |
-
# @ secure_wp
|
129 |
-
#: secure-wordpress.php:787
|
130 |
-
msgid "WordPress Version in Backend"
|
131 |
-
msgstr "Versione WordPres in Backend"
|
132 |
-
|
133 |
-
# @ secure_wp
|
134 |
-
#: secure-wordpress.php:791
|
135 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
136 |
-
msgstr "Rimuove dall'area di amministrazione la versione di WordPress per gli utenti non admin. Mostra la versione di WordPress in uso nel tuo blog solamente per quegli utenti che possono modificare i plugin."
|
137 |
-
|
138 |
-
# @ secure_wp
|
139 |
-
#: secure-wordpress.php:797
|
140 |
-
msgid "index.php"
|
141 |
-
msgstr "index.php"
|
142 |
-
|
143 |
-
# @ secure_wp
|
144 |
-
#: secure-wordpress.php:801
|
145 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
146 |
-
msgstr "crea un file <code>index.php</code> sotto <code>/plugins/</code> e <code>/themes/</code> per mantenere riservato il contenuto della cartella"
|
147 |
-
|
148 |
-
# @ secure_wp
|
149 |
-
#: secure-wordpress.php:807
|
150 |
-
msgid "Really Simple Discovery"
|
151 |
-
msgstr "Really Simple Discovery"
|
152 |
-
|
153 |
-
# @ secure_wp
|
154 |
-
#: secure-wordpress.php:811
|
155 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
156 |
-
msgstr "Rimuovi il link Really Simple Discovery in <code>wp_head</code> nel frontend"
|
157 |
-
|
158 |
-
# @ secure_wp
|
159 |
-
#: secure-wordpress.php:817
|
160 |
-
msgid "Windows Live Writer"
|
161 |
-
msgstr "Windows Live Writer"
|
162 |
-
|
163 |
-
# @ secure_wp
|
164 |
-
#: secure-wordpress.php:821
|
165 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
166 |
-
msgstr "Rimuovi il link Windows Live Writer in <code>wp_head</code> nel frontend"
|
167 |
-
|
168 |
-
# @ secure_wp
|
169 |
-
#: secure-wordpress.php:827
|
170 |
-
msgid "Core Update"
|
171 |
-
msgstr "Aggiornamento core"
|
172 |
-
|
173 |
-
# @ secure_wp
|
174 |
-
#: secure-wordpress.php:831
|
175 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
176 |
-
msgstr "Rimuovi gli aggiornamenti del core di WordPress per gli utenti che non sono amministratori. Mostra il messaggio di notifica per una nuova versione di WordPress solamente per gli utenti che possono effettuare l'aggiornamento."
|
177 |
-
|
178 |
-
# @ secure_wp
|
179 |
-
#: secure-wordpress.php:837
|
180 |
-
msgid "Plugin Update"
|
181 |
-
msgstr "Aggiornamento plugin"
|
182 |
-
|
183 |
-
# @ secure_wp
|
184 |
-
#: secure-wordpress.php:841
|
185 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
186 |
-
msgstr "Rimuovi l'aggiornamento del plugin per gli utenti che non sono amministratori. Mostra il messaggio di notifica per una nuova versione di un plugin solamente per gli utenti che hanno i diritti per poter modificare i plugin."
|
187 |
-
|
188 |
-
# @ secure_wp
|
189 |
-
#: secure-wordpress.php:848
|
190 |
-
msgid "Theme Update"
|
191 |
-
msgstr "Tema Update"
|
192 |
-
|
193 |
-
# @ secure_wp
|
194 |
-
#: secure-wordpress.php:852
|
195 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
196 |
-
msgstr "Rimuovere l'aggiornamento a tema per i non amministratori. Mostra messaggio per una nuova versione di un tema di installazione del tuo blog solo per gli utenti con i diritti per modificare temi."
|
197 |
-
|
198 |
-
# @ secure_wp
|
199 |
-
#: secure-wordpress.php:859
|
200 |
-
msgid "WP Scanner"
|
201 |
-
msgstr "WP Scanner"
|
202 |
-
|
203 |
-
# @ secure_wp
|
204 |
-
#: secure-wordpress.php:863
|
205 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
206 |
-
msgstr "Scanner WordPress è una risorsa online gratuita che gli amministratori del blog possono utilizzare per fornire una misura della loro livello di sicurezza wordpress. Per eseguire wp-scanner attivare questa opzione ed aggiungere <code><!-- wpscanner --></code> al template in uso di WordPress. Infine, vai a questa pagina <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> ed effettua la scansione del tuo sito."
|
207 |
-
|
208 |
-
# @ secure_wp
|
209 |
-
#: secure-wordpress.php:869
|
210 |
-
msgid "Block bad queries"
|
211 |
-
msgstr "Blocco bad queries"
|
212 |
-
|
213 |
-
# @ secure_wp
|
214 |
-
#: secure-wordpress.php:873
|
215 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
216 |
-
msgstr "Proteggi WordPress dalle richieste URL maligne: per ulteriori informazioni vai all'articolo di <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >Jeff Starr</a>"
|
217 |
-
|
218 |
-
# @ secure_wp
|
219 |
-
#: secure-wordpress.php:881
|
220 |
-
msgid "Save Changes"
|
221 |
-
msgstr "Salva le modifiche"
|
222 |
-
|
223 |
-
#: secure-wordpress.php:893
|
224 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
225 |
-
msgstr "Certifica l'assenza di malware dal tuo sito con una analisi via www.sitesecuritymonitor.com"
|
226 |
-
|
227 |
-
#: secure-wordpress.php:896
|
228 |
-
msgid "Take us for a Test Drive - Free Scan"
|
229 |
-
msgstr "Contattaci per una prova - Analisi gratuita"
|
230 |
-
|
231 |
-
#: secure-wordpress.php:897
|
232 |
-
msgid "We understand you may have questions:"
|
233 |
-
msgstr "E' comprensibile che tu abbia delle domande:"
|
234 |
-
|
235 |
-
#: secure-wordpress.php:898
|
236 |
-
msgid "What does this do for me?"
|
237 |
-
msgstr "Quali vantaggi per me?"
|
238 |
-
|
239 |
-
#: secure-wordpress.php:899
|
240 |
-
msgid "Am I really safe? I need to be sure."
|
241 |
-
msgstr "Sono veramente al sicuro? Vorrei esserne certo!"
|
242 |
-
|
243 |
-
#: secure-wordpress.php:900
|
244 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
245 |
-
msgstr "Rest Assured, Site Security Monitor has you covered."
|
246 |
-
|
247 |
-
#: secure-wordpress.php:902
|
248 |
-
msgid "FREE scan looks for malware"
|
249 |
-
msgstr "Analisi GRATUITA ricerca malware"
|
250 |
-
|
251 |
-
#: secure-wordpress.php:903
|
252 |
-
msgid "FREE report of website vulnerabilities found"
|
253 |
-
msgstr "Rapporto GRATUITO vulerabilità sito web rilevate"
|
254 |
-
|
255 |
-
#: secure-wordpress.php:904
|
256 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
257 |
-
msgstr "Nessuna configurazione, modifica ed installazione nel tuo sito - l'analisi avrà un inizio immediato"
|
258 |
-
|
259 |
-
#: secure-wordpress.php:906
|
260 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
261 |
-
msgstr "Ti invieremo un rapporto dettagliato sulla vulnerabilità web e malware - GRATUITO. Utilizza liberamente il rapporto per risolvere i problemi, per mostrare ai tuoi clienti che il sito é sicuro, etc."
|
262 |
-
|
263 |
-
#: secure-wordpress.php:907
|
264 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
265 |
-
msgstr "** Bonus: una volta effettuata l'analisi, avrai la possibilità di utilizzare nel tuo sito il sigillo \"Safe-Seal\" - questi mostrerà a tutti che il tuo sito é esente da malware!"
|
266 |
-
|
267 |
-
#: secure-wordpress.php:909
|
268 |
-
msgid "The form"
|
269 |
-
msgstr "Il modulo"
|
270 |
-
|
271 |
-
#: secure-wordpress.php:910
|
272 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
273 |
-
msgstr "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
274 |
-
|
275 |
-
#: secure-wordpress.php:945
|
276 |
-
msgid "Full Name"
|
277 |
-
msgstr "Nome completo"
|
278 |
-
|
279 |
-
#: secure-wordpress.php:948
|
280 |
-
#: secure-wordpress.php:956
|
281 |
-
#: secure-wordpress.php:964
|
282 |
-
#: secure-wordpress.php:972
|
283 |
-
#: secure-wordpress.php:988
|
284 |
-
msgid "*required"
|
285 |
-
msgstr "*richiesto"
|
286 |
-
|
287 |
-
#: secure-wordpress.php:953
|
288 |
-
msgid "eMail Adress"
|
289 |
-
msgstr "Indirizzo email"
|
290 |
-
|
291 |
-
#: secure-wordpress.php:956
|
292 |
-
msgid ", eMail Address must match domain name"
|
293 |
-
msgstr ", l'indirizzo email deve coincidere con il nome del dominio"
|
294 |
-
|
295 |
-
#: secure-wordpress.php:961
|
296 |
-
msgid "Website"
|
297 |
-
msgstr "Sito web"
|
298 |
-
|
299 |
-
#: secure-wordpress.php:969
|
300 |
-
msgid "Phone"
|
301 |
-
msgstr "Telefono"
|
302 |
-
|
303 |
-
#: secure-wordpress.php:977
|
304 |
-
msgid "Yes, I need help!"
|
305 |
-
msgstr "Sì, mi serve aiuto!"
|
306 |
-
|
307 |
-
#: secure-wordpress.php:980
|
308 |
-
msgid "Call me"
|
309 |
-
msgstr "Chiama"
|
310 |
-
|
311 |
-
#: secure-wordpress.php:985
|
312 |
-
msgid "Terms and Conditions"
|
313 |
-
msgstr "Condizioni e termini"
|
314 |
-
|
315 |
-
#: secure-wordpress.php:988
|
316 |
-
msgid ", I accept"
|
317 |
-
msgstr ", accetto"
|
318 |
-
|
319 |
-
#: secure-wordpress.php:995
|
320 |
-
msgid "Get my Free Web Scan"
|
321 |
-
msgstr "Analisi web gratuita"
|
322 |
-
|
323 |
-
#: secure-wordpress.php:1006
|
324 |
-
msgid "Safe Seal"
|
325 |
-
msgstr "Safe Seal"
|
326 |
-
|
327 |
-
#: secure-wordpress.php:1036
|
328 |
-
msgid "Color"
|
329 |
-
msgstr "Colore"
|
330 |
-
|
331 |
-
#: secure-wordpress.php:1040
|
332 |
-
msgid "Green"
|
333 |
-
msgstr "Verde"
|
334 |
-
|
335 |
-
#: secure-wordpress.php:1041
|
336 |
-
msgid "Blue"
|
337 |
-
msgstr "Blu"
|
338 |
-
|
339 |
-
#: secure-wordpress.php:1042
|
340 |
-
msgid "Red"
|
341 |
-
msgstr "Rosso"
|
342 |
-
|
343 |
-
#: secure-wordpress.php:1043
|
344 |
-
msgid "Brown"
|
345 |
-
msgstr "Marrone"
|
346 |
-
|
347 |
-
#: secure-wordpress.php:1044
|
348 |
-
msgid "Gray"
|
349 |
-
msgstr "Verde"
|
350 |
-
|
351 |
-
#: secure-wordpress.php:1053
|
352 |
-
msgid "Text"
|
353 |
-
msgstr "Testo"
|
354 |
-
|
355 |
-
#: secure-wordpress.php:1057
|
356 |
-
msgid "Protected"
|
357 |
-
msgstr "Protetto"
|
358 |
-
|
359 |
-
# @ secure_wp
|
360 |
-
#: secure-wordpress.php:1058
|
361 |
-
msgid "Secured"
|
362 |
-
msgstr "In sicurezza"
|
363 |
-
|
364 |
-
# @ secure_wp
|
365 |
-
#: secure-wordpress.php:1059
|
366 |
-
msgid "Scanned"
|
367 |
-
msgstr "Analizzato"
|
368 |
-
|
369 |
-
#: secure-wordpress.php:1060
|
370 |
-
msgid "Protected by"
|
371 |
-
msgstr "Protetto da"
|
372 |
-
|
373 |
-
#: secure-wordpress.php:1066
|
374 |
-
msgid "Orientation"
|
375 |
-
msgstr "Orientamento"
|
376 |
-
|
377 |
-
#: secure-wordpress.php:1070
|
378 |
-
msgid "Horizontal"
|
379 |
-
msgstr "Orizzontale"
|
380 |
-
|
381 |
-
#: secure-wordpress.php:1071
|
382 |
-
msgid "Vertical"
|
383 |
-
msgstr "Verticale"
|
384 |
-
|
385 |
-
#: secure-wordpress.php:1077
|
386 |
-
msgid "Image border"
|
387 |
-
msgstr "Bordo immagine"
|
388 |
-
|
389 |
-
#: secure-wordpress.php:1085
|
390 |
-
msgid "Language"
|
391 |
-
msgstr "Lingua"
|
392 |
-
|
393 |
-
#: secure-wordpress.php:1089
|
394 |
-
msgid "English (US)"
|
395 |
-
msgstr "Inglese (US)"
|
396 |
-
|
397 |
-
#: secure-wordpress.php:1090
|
398 |
-
msgid "English (UK)"
|
399 |
-
msgstr "Inglese (UK)"
|
400 |
-
|
401 |
-
#: secure-wordpress.php:1091
|
402 |
-
msgid "Spanish"
|
403 |
-
msgstr "Spagnolo"
|
404 |
-
|
405 |
-
#: secure-wordpress.php:1092
|
406 |
-
msgid "German"
|
407 |
-
msgstr "Tedesco"
|
408 |
-
|
409 |
-
#: secure-wordpress.php:1093
|
410 |
-
msgid "Italian"
|
411 |
-
msgstr "Italiano"
|
412 |
-
|
413 |
-
#: secure-wordpress.php:1094
|
414 |
-
msgid "Japanese"
|
415 |
-
msgstr "Giapponese"
|
416 |
-
|
417 |
-
#: secure-wordpress.php:1095
|
418 |
-
msgid "Chinese (Simplified)"
|
419 |
-
msgstr "Cinese (Semplificato)"
|
420 |
-
|
421 |
-
#: secure-wordpress.php:1096
|
422 |
-
msgid "Chinese (Traditional)"
|
423 |
-
msgstr "Cinese (Tradizionale)"
|
424 |
-
|
425 |
-
#: secure-wordpress.php:1105
|
426 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
427 |
-
msgstr "Ecco il tuo codice personale. Inseriscilo nel tuo sito (copia l'HTML in un widget di testo) per mostrare che é protetto."
|
428 |
-
|
429 |
-
# @ secure_wp
|
430 |
-
#: secure-wordpress.php:1120
|
431 |
-
msgid "Clear Options"
|
432 |
-
msgstr "Rimuovi le opzioni"
|
433 |
-
|
434 |
-
# @ secure_wp
|
435 |
-
#: secure-wordpress.php:1123
|
436 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
437 |
-
msgstr "Clicca su questo pulsante per cancellare le impostazioni di questo plugin. La disattivazione Secure WordPress rimuoverà ogni dato che é stato creato."
|
438 |
-
|
439 |
-
# @ secure_wp
|
440 |
-
#: secure-wordpress.php:1128
|
441 |
-
msgid "Delete Options"
|
442 |
-
msgstr "Opzioni rimozione"
|
443 |
-
|
444 |
-
# @ secure_wp
|
445 |
-
#. translators: plugin header field 'PluginURI'
|
446 |
-
#: secure-wordpress.php:0
|
447 |
-
msgid "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
448 |
-
msgstr "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
449 |
-
|
450 |
-
# @ secure_wp
|
451 |
-
#. translators: plugin header field 'Author'
|
452 |
-
#: secure-wordpress.php:0
|
453 |
-
msgid "jremillard"
|
454 |
-
msgstr "jremillard"
|
455 |
-
|
456 |
-
# @ secure_wp
|
457 |
-
#. translators: plugin header field 'AuthorURI'
|
458 |
-
#: secure-wordpress.php:0
|
459 |
-
msgid "http://www.sitesecuritymonitor.com/"
|
460 |
-
msgstr "http://www.sitesecuritymonitor.com/"
|
461 |
-
|
462 |
-
# @ secure_wp
|
463 |
-
#. translators: plugin header field 'Version'
|
464 |
-
#: secure-wordpress.php:0
|
465 |
-
msgid "1.0.3"
|
466 |
-
msgstr "1.0.3"
|
467 |
-
|
468 |
-
#: secure-wordpress.php:1009
|
469 |
-
msgid "Thankyou for using our plugin! You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
470 |
-
msgstr "Grazie per l'utilizzo del nostro plugin! Puoi usare a tuo piacere nel blog l'analisi qui sotto (copia/incolla il codice HTML). Questo sigillo non ti offrirà i servizi di analisi - compie una funzione di base per la sicurezza di WordPress - come suggerito dalla community e dalla nostra esperienza maturata con i nostri clienti.<br/>Qualora desiderassi ottenere un regolare servizio per l'analisi della vulnerabilità e la scansione dei malware, vai alla <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">pagina principale...</a> del nostro sito."
|
471 |
-
|
472 |
-
# @ secure_wp
|
473 |
-
#: secure-wordpress.php:1104
|
474 |
-
msgid "Source"
|
475 |
-
msgstr "Sorgente"
|
476 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-ja.mo
DELETED
Binary file
|
languages/secure_wp-ja.po
DELETED
@@ -1,526 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: \n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-05-16 12:34+0100\n"
|
6 |
-
"PO-Revision-Date: \n"
|
7 |
-
"Last-Translator: Fumito Mizuno <mizuno@ounziw.com>\n"
|
8 |
-
"Language-Team: \n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Poedit-Language: Japanese\n"
|
13 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
14 |
-
|
15 |
-
# @ secure_wp
|
16 |
-
#. translators: plugin header field 'Description'
|
17 |
-
#: secure-wordpress.php:0
|
18 |
-
msgid "Little basics for secure your WordPress-installation."
|
19 |
-
msgstr "WordPress を安全にするための基礎"
|
20 |
-
|
21 |
-
# @ default
|
22 |
-
#: secure-wordpress.php:370
|
23 |
-
msgid "Settings"
|
24 |
-
msgstr "設定"
|
25 |
-
|
26 |
-
# @ secure_wp
|
27 |
-
#: secure-wordpress.php:399
|
28 |
-
#: secure-wordpress.php:446
|
29 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
30 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">ドキュメント</a>"
|
31 |
-
|
32 |
-
# @ secure_wp
|
33 |
-
#: secure-wordpress.php:422
|
34 |
-
msgid "Options update."
|
35 |
-
msgstr "オプションを更新しました。"
|
36 |
-
|
37 |
-
# @ secure_wp
|
38 |
-
#: secure-wordpress.php:424
|
39 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
40 |
-
msgstr "データベースのすべてのエントリを消去しました。プラグインを停止してください。"
|
41 |
-
|
42 |
-
# @ secure_wp
|
43 |
-
#: secure-wordpress.php:438
|
44 |
-
#: secure-wordpress.php:449
|
45 |
-
msgid "Secure WP"
|
46 |
-
msgstr "Secure WP"
|
47 |
-
|
48 |
-
# @ secure_wp
|
49 |
-
#. translators: plugin header field 'Name'
|
50 |
-
#: secure-wordpress.php:0
|
51 |
-
#: secure-wordpress.php:445
|
52 |
-
#: secure-wordpress.php:773
|
53 |
-
msgid "Secure WordPress"
|
54 |
-
msgstr "Secure WordPress"
|
55 |
-
|
56 |
-
# @ default
|
57 |
-
#: secure-wordpress.php:469
|
58 |
-
msgid "Version"
|
59 |
-
msgstr "バージョン"
|
60 |
-
|
61 |
-
# @ secure_wp
|
62 |
-
#: secure-wordpress.php:469
|
63 |
-
msgid "History"
|
64 |
-
msgstr "履歴"
|
65 |
-
|
66 |
-
# @ default
|
67 |
-
#: secure-wordpress.php:469
|
68 |
-
msgid "Author"
|
69 |
-
msgstr "作成者"
|
70 |
-
|
71 |
-
# @ secure_wp
|
72 |
-
#: secure-wordpress.php:698
|
73 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
74 |
-
msgstr "オプションが更新されませんでした。あなたには権限がありません。"
|
75 |
-
|
76 |
-
# @ secure_wp
|
77 |
-
#: secure-wordpress.php:718
|
78 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
79 |
-
msgstr "エントリが削除されませんでした。あなたには権限がありません。"
|
80 |
-
|
81 |
-
# @ secure_wp
|
82 |
-
#: secure-wordpress.php:726
|
83 |
-
msgid "Entries were not deleted - check the checkbox!"
|
84 |
-
msgstr "エントリが削除されませんでした。チェックボックスを確かめてください。"
|
85 |
-
|
86 |
-
# @ secure_wp
|
87 |
-
#: secure-wordpress.php:746
|
88 |
-
msgid "All entries in the database were cleared."
|
89 |
-
msgstr "データベースの全エントリが消去されました。"
|
90 |
-
|
91 |
-
# @ secure_wp
|
92 |
-
#: secure-wordpress.php:750
|
93 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
94 |
-
msgstr "エントリが削除されませんでした。チェックボックスにチェックしていないか、あるいはあなたには権限がありません。"
|
95 |
-
|
96 |
-
# @ default
|
97 |
-
#: secure-wordpress.php:778
|
98 |
-
#: secure-wordpress.php:914
|
99 |
-
#: secure-wordpress.php:1027
|
100 |
-
#: secure-wordpress.php:1141
|
101 |
-
msgid "Click to toggle"
|
102 |
-
msgstr "クリックして切り替える"
|
103 |
-
|
104 |
-
# @ secure_wp
|
105 |
-
#: secure-wordpress.php:779
|
106 |
-
msgid "Configuration"
|
107 |
-
msgstr "設定"
|
108 |
-
|
109 |
-
# @ secure_wp
|
110 |
-
#: secure-wordpress.php:789
|
111 |
-
msgid "Error-Messages"
|
112 |
-
msgstr "エラーメッセージ"
|
113 |
-
|
114 |
-
# @ secure_wp
|
115 |
-
#: secure-wordpress.php:793
|
116 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
117 |
-
msgstr "WordPress ログイン時のツールチープとエラーメッセージを無効にします。"
|
118 |
-
|
119 |
-
# @ secure_wp
|
120 |
-
#: secure-wordpress.php:799
|
121 |
-
msgid "WordPress Version"
|
122 |
-
msgstr "WordPress バージョン"
|
123 |
-
|
124 |
-
# @ secure_wp
|
125 |
-
#: secure-wordpress.php:803
|
126 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
127 |
-
msgstr "WordPress バージョンを削除します。(フィードも対象、管理画面を除く)"
|
128 |
-
|
129 |
-
# @ secure_wp
|
130 |
-
#: secure-wordpress.php:809
|
131 |
-
msgid "WordPress Version in Backend"
|
132 |
-
msgstr "バックエンドの WordPress バージョン"
|
133 |
-
|
134 |
-
# @ secure_wp
|
135 |
-
#: secure-wordpress.php:813
|
136 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
137 |
-
msgstr "管理者以外のユーザーでは、管理画面での WordPress バージョンを削除します。プラグイン編集権限のあるユーザーにのみバージョンを表示します。"
|
138 |
-
|
139 |
-
# @ secure_wp
|
140 |
-
#: secure-wordpress.php:819
|
141 |
-
msgid "index.php"
|
142 |
-
msgstr "index.php"
|
143 |
-
|
144 |
-
# @ secure_wp
|
145 |
-
#: secure-wordpress.php:823
|
146 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
147 |
-
msgstr "<code>/plugins/</code> と <code>/themes/</code> に <code>index.php</code> ファイルを作成し、ディレクトリ一覧を表示しないようにします。"
|
148 |
-
|
149 |
-
# @ secure_wp
|
150 |
-
#: secure-wordpress.php:829
|
151 |
-
msgid "Really Simple Discovery"
|
152 |
-
msgstr "Really Simple Discovery"
|
153 |
-
|
154 |
-
# @ secure_wp
|
155 |
-
#: secure-wordpress.php:833
|
156 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
157 |
-
msgstr "フロントエンドの <code>wp_head</code> の Really Simple Discovery リンクを削除します。"
|
158 |
-
|
159 |
-
# @ secure_wp
|
160 |
-
#: secure-wordpress.php:839
|
161 |
-
msgid "Windows Live Writer"
|
162 |
-
msgstr "Windows Live Writer"
|
163 |
-
|
164 |
-
# @ secure_wp
|
165 |
-
#: secure-wordpress.php:843
|
166 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
167 |
-
msgstr "フロントエンドの <code>wp_head</code> の Windows Live Writer リンクを削除します。"
|
168 |
-
|
169 |
-
# @ secure_wp
|
170 |
-
#: secure-wordpress.php:849
|
171 |
-
msgid "Core Update"
|
172 |
-
msgstr "コア更新"
|
173 |
-
|
174 |
-
# @ secure_wp
|
175 |
-
#: secure-wordpress.php:853
|
176 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
177 |
-
msgstr "管理者以外は WordPress コア更新通知を削除します。更新権限のあるユーザーにのみ新バージョンを通知します。"
|
178 |
-
|
179 |
-
# @ secure_wp
|
180 |
-
#: secure-wordpress.php:859
|
181 |
-
msgid "Plugin Update"
|
182 |
-
msgstr "プラグイン更新"
|
183 |
-
|
184 |
-
# @ secure_wp
|
185 |
-
#: secure-wordpress.php:863
|
186 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
187 |
-
msgstr "管理者以外はプラグイン更新通知を削除します。プラグイン編集権限のあるユーザーにのみ、プラグインの新バージョンを通知します。"
|
188 |
-
|
189 |
-
# @ secure_wp
|
190 |
-
#: secure-wordpress.php:870
|
191 |
-
msgid "Theme Update"
|
192 |
-
msgstr "テーマ更新"
|
193 |
-
|
194 |
-
# @ secure_wp
|
195 |
-
#: secure-wordpress.php:874
|
196 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
197 |
-
msgstr "管理者以外はテーマ更新通知を削除します。テーマ編集権限のあるユーザーにのみ新バージョンを通知します。"
|
198 |
-
|
199 |
-
# @ secure_wp
|
200 |
-
#: secure-wordpress.php:891
|
201 |
-
msgid "Block bad queries"
|
202 |
-
msgstr "悪意あるクエリをブロックする"
|
203 |
-
|
204 |
-
# @ secure_wp
|
205 |
-
#: secure-wordpress.php:895
|
206 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
207 |
-
msgstr "</a>悪意のある URL リクエストから WordPress を保護します。詳細は、<a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a> をごらんください。"
|
208 |
-
|
209 |
-
# @ secure_wp
|
210 |
-
#: secure-wordpress.php:903
|
211 |
-
msgid "Save Changes"
|
212 |
-
msgstr "変更を保存する"
|
213 |
-
|
214 |
-
# @ secure_wp
|
215 |
-
#: secure-wordpress.php:915
|
216 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
217 |
-
msgstr "無料マルウェアスキャン www.sitesecuritymonitor.com でサイトをチェックします。"
|
218 |
-
|
219 |
-
# @ secure_wp
|
220 |
-
#: secure-wordpress.php:918
|
221 |
-
msgid "Take us for a Test Drive - Free Scan"
|
222 |
-
msgstr "Take us for a Test Drive - Free Scan"
|
223 |
-
|
224 |
-
# @ secure_wp
|
225 |
-
#: secure-wordpress.php:919
|
226 |
-
msgid "We understand you may have questions:"
|
227 |
-
msgstr "質問がありますか。"
|
228 |
-
|
229 |
-
# @ secure_wp
|
230 |
-
#: secure-wordpress.php:920
|
231 |
-
msgid "What does this do for me?"
|
232 |
-
msgstr "このプラグインは何をしますか?"
|
233 |
-
|
234 |
-
# @ secure_wp
|
235 |
-
#: secure-wordpress.php:921
|
236 |
-
msgid "Am I really safe? I need to be sure."
|
237 |
-
msgstr "本当に安全ですか?確認させてください。"
|
238 |
-
|
239 |
-
# @ secure_wp
|
240 |
-
#: secure-wordpress.php:922
|
241 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
242 |
-
msgstr "安心してください。Site Security Monitor がカバーします。"
|
243 |
-
|
244 |
-
# @ secure_wp
|
245 |
-
#: secure-wordpress.php:924
|
246 |
-
msgid "FREE scan looks for malware"
|
247 |
-
msgstr "FREE スキャンがマルウェアを探しています。"
|
248 |
-
|
249 |
-
# @ secure_wp
|
250 |
-
#: secure-wordpress.php:925
|
251 |
-
msgid "FREE report of website vulnerabilities found"
|
252 |
-
msgstr "ウェブサイト脆弱性の FREE レポートが発見されました。"
|
253 |
-
|
254 |
-
# @ secure_wp
|
255 |
-
#: secure-wordpress.php:926
|
256 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
257 |
-
msgstr "設定、チューニング、またはインストールが行われていません。スキャンをすぐに開始します。"
|
258 |
-
|
259 |
-
# @ secure_wp
|
260 |
-
#: secure-wordpress.php:928
|
261 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
262 |
-
msgstr "詳細なマルウェアとウェブ脆弱性レポートを無料でお送りします。自由にレポートを使用して問題を解決し、サイトの安全性を上司にあるいは顧客に示すことができます。"
|
263 |
-
|
264 |
-
# @ secure_wp
|
265 |
-
#: secure-wordpress.php:929
|
266 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
267 |
-
msgstr "** ボーナス: スキャンを実行した後、サイトセキュリティモニタ \"Safe-Seal\" を使用することができます。マルウェアから開放されます。"
|
268 |
-
|
269 |
-
# @ secure_wp
|
270 |
-
#: secure-wordpress.php:931
|
271 |
-
msgid "The form"
|
272 |
-
msgstr "フォーム"
|
273 |
-
|
274 |
-
# @ secure_wp
|
275 |
-
#: secure-wordpress.php:932
|
276 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
277 |
-
msgstr "下記フォーム、または<a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">我々のサイト</a>のフォームをご利用ください。"
|
278 |
-
|
279 |
-
# @ secure_wp
|
280 |
-
#: secure-wordpress.php:967
|
281 |
-
msgid "Full Name"
|
282 |
-
msgstr "姓名"
|
283 |
-
|
284 |
-
# @ secure_wp
|
285 |
-
#: secure-wordpress.php:970
|
286 |
-
#: secure-wordpress.php:978
|
287 |
-
#: secure-wordpress.php:986
|
288 |
-
#: secure-wordpress.php:994
|
289 |
-
#: secure-wordpress.php:1010
|
290 |
-
msgid "*required"
|
291 |
-
msgstr "*必須"
|
292 |
-
|
293 |
-
# @ secure_wp
|
294 |
-
#: secure-wordpress.php:975
|
295 |
-
msgid "eMail Adress"
|
296 |
-
msgstr "メールアドレス"
|
297 |
-
|
298 |
-
# @ secure_wp
|
299 |
-
#: secure-wordpress.php:978
|
300 |
-
msgid ", eMail Address must match domain name"
|
301 |
-
msgstr ", メールアドレスはドメイン名に一致する必要があります。"
|
302 |
-
|
303 |
-
# @ secure_wp
|
304 |
-
#: secure-wordpress.php:983
|
305 |
-
msgid "Website"
|
306 |
-
msgstr "ウェブサイト"
|
307 |
-
|
308 |
-
# @ secure_wp
|
309 |
-
#: secure-wordpress.php:991
|
310 |
-
msgid "Phone"
|
311 |
-
msgstr "電話番号"
|
312 |
-
|
313 |
-
# @ secure_wp
|
314 |
-
#: secure-wordpress.php:999
|
315 |
-
msgid "Yes, I need help!"
|
316 |
-
msgstr "はい、助けが必要です。"
|
317 |
-
|
318 |
-
# @ secure_wp
|
319 |
-
#: secure-wordpress.php:1002
|
320 |
-
msgid "Call me"
|
321 |
-
msgstr "電話してください。"
|
322 |
-
|
323 |
-
# @ secure_wp
|
324 |
-
#: secure-wordpress.php:1007
|
325 |
-
msgid "Terms and Conditions"
|
326 |
-
msgstr "利用条件"
|
327 |
-
|
328 |
-
# @ secure_wp
|
329 |
-
#: secure-wordpress.php:1010
|
330 |
-
msgid ", I accept"
|
331 |
-
msgstr ", 同意します。"
|
332 |
-
|
333 |
-
# @ secure_wp
|
334 |
-
#: secure-wordpress.php:1017
|
335 |
-
msgid "Get my Free Web Scan"
|
336 |
-
msgstr "無料ウェブスキャンを取得する"
|
337 |
-
|
338 |
-
# @ secure_wp
|
339 |
-
#: secure-wordpress.php:1028
|
340 |
-
msgid "Safe Seal"
|
341 |
-
msgstr "安全シール"
|
342 |
-
|
343 |
-
# @ secure_wp
|
344 |
-
#: secure-wordpress.php:1058
|
345 |
-
msgid "Color"
|
346 |
-
msgstr "色"
|
347 |
-
|
348 |
-
# @ secure_wp
|
349 |
-
#: secure-wordpress.php:1062
|
350 |
-
msgid "Green"
|
351 |
-
msgstr "緑色"
|
352 |
-
|
353 |
-
# @ secure_wp
|
354 |
-
#: secure-wordpress.php:1063
|
355 |
-
msgid "Blue"
|
356 |
-
msgstr "青色"
|
357 |
-
|
358 |
-
# @ secure_wp
|
359 |
-
#: secure-wordpress.php:1064
|
360 |
-
msgid "Red"
|
361 |
-
msgstr "赤色"
|
362 |
-
|
363 |
-
# @ secure_wp
|
364 |
-
#: secure-wordpress.php:1065
|
365 |
-
msgid "Brown"
|
366 |
-
msgstr "茶色"
|
367 |
-
|
368 |
-
# @ secure_wp
|
369 |
-
#: secure-wordpress.php:1066
|
370 |
-
msgid "Gray"
|
371 |
-
msgstr "灰色"
|
372 |
-
|
373 |
-
# @ secure_wp
|
374 |
-
#: secure-wordpress.php:1075
|
375 |
-
msgid "Text"
|
376 |
-
msgstr "テキスト"
|
377 |
-
|
378 |
-
# @ secure_wp
|
379 |
-
#: secure-wordpress.php:1079
|
380 |
-
msgid "Protected"
|
381 |
-
msgstr "保護された"
|
382 |
-
|
383 |
-
# @ secure_wp
|
384 |
-
#: secure-wordpress.php:1080
|
385 |
-
msgid "Secured"
|
386 |
-
msgstr "安全"
|
387 |
-
|
388 |
-
# @ secure_wp
|
389 |
-
#: secure-wordpress.php:1081
|
390 |
-
msgid "Scanned"
|
391 |
-
msgstr "スキャン済"
|
392 |
-
|
393 |
-
# @ secure_wp
|
394 |
-
#: secure-wordpress.php:1082
|
395 |
-
msgid "Protected by"
|
396 |
-
msgstr "保護:"
|
397 |
-
|
398 |
-
# @ secure_wp
|
399 |
-
#: secure-wordpress.php:1088
|
400 |
-
msgid "Orientation"
|
401 |
-
msgstr "方向"
|
402 |
-
|
403 |
-
# @ secure_wp
|
404 |
-
#: secure-wordpress.php:1092
|
405 |
-
msgid "Horizontal"
|
406 |
-
msgstr "水平"
|
407 |
-
|
408 |
-
# @ secure_wp
|
409 |
-
#: secure-wordpress.php:1093
|
410 |
-
msgid "Vertical"
|
411 |
-
msgstr "垂直"
|
412 |
-
|
413 |
-
# @ secure_wp
|
414 |
-
#: secure-wordpress.php:1099
|
415 |
-
msgid "Image border"
|
416 |
-
msgstr "画像枠線"
|
417 |
-
|
418 |
-
# @ secure_wp
|
419 |
-
#: secure-wordpress.php:1107
|
420 |
-
msgid "Language"
|
421 |
-
msgstr "言語"
|
422 |
-
|
423 |
-
# @ secure_wp
|
424 |
-
#: secure-wordpress.php:1111
|
425 |
-
msgid "English (US)"
|
426 |
-
msgstr "English (US)"
|
427 |
-
|
428 |
-
# @ secure_wp
|
429 |
-
#: secure-wordpress.php:1112
|
430 |
-
msgid "English (UK)"
|
431 |
-
msgstr "English (UK)"
|
432 |
-
|
433 |
-
# @ secure_wp
|
434 |
-
#: secure-wordpress.php:1113
|
435 |
-
msgid "Spanish"
|
436 |
-
msgstr "Spanish"
|
437 |
-
|
438 |
-
# @ secure_wp
|
439 |
-
#: secure-wordpress.php:1114
|
440 |
-
msgid "German"
|
441 |
-
msgstr "German"
|
442 |
-
|
443 |
-
# @ secure_wp
|
444 |
-
#: secure-wordpress.php:1115
|
445 |
-
msgid "Italian"
|
446 |
-
msgstr "Italian"
|
447 |
-
|
448 |
-
# @ secure_wp
|
449 |
-
#: secure-wordpress.php:1116
|
450 |
-
msgid "Japanese"
|
451 |
-
msgstr "日本語"
|
452 |
-
|
453 |
-
# @ secure_wp
|
454 |
-
#: secure-wordpress.php:1117
|
455 |
-
msgid "Chinese (Simplified)"
|
456 |
-
msgstr "Chinese (Simplified)"
|
457 |
-
|
458 |
-
# @ secure_wp
|
459 |
-
#: secure-wordpress.php:1118
|
460 |
-
msgid "Chinese (Traditional)"
|
461 |
-
msgstr "Chinese (Traditional)"
|
462 |
-
|
463 |
-
# @ secure_wp
|
464 |
-
#: secure-wordpress.php:1127
|
465 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
466 |
-
msgstr "あなたが生成したコードです。(htmlウィジェットとして)ウェブサイトに掲載し、プロテクトされていることを示してください。"
|
467 |
-
|
468 |
-
# @ secure_wp
|
469 |
-
#: secure-wordpress.php:1142
|
470 |
-
msgid "Clear Options"
|
471 |
-
msgstr "オプションを消去する"
|
472 |
-
|
473 |
-
# @ secure_wp
|
474 |
-
#: secure-wordpress.php:1145
|
475 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
476 |
-
msgstr "このボタンをクリックすると、このプラグインの設定を削除します。Secure WordPress プラグインを停止すると、作成した全データを削除します。"
|
477 |
-
|
478 |
-
# @ secure_wp
|
479 |
-
#: secure-wordpress.php:1150
|
480 |
-
msgid "Delete Options"
|
481 |
-
msgstr "オプションを削除する"
|
482 |
-
|
483 |
-
# @ secure_wp
|
484 |
-
#. translators: plugin header field 'PluginURI'
|
485 |
-
#: secure-wordpress.php:0
|
486 |
-
msgid "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
487 |
-
msgstr "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
488 |
-
|
489 |
-
# @ secure_wp
|
490 |
-
#. translators: plugin header field 'Author'
|
491 |
-
#: secure-wordpress.php:0
|
492 |
-
msgid "jremillard"
|
493 |
-
msgstr "jremillard"
|
494 |
-
|
495 |
-
# @ secure_wp
|
496 |
-
#. translators: plugin header field 'AuthorURI'
|
497 |
-
#: secure-wordpress.php:0
|
498 |
-
msgid "http://www.sitesecuritymonitor.com/"
|
499 |
-
msgstr "http://www.sitesecuritymonitor.com/"
|
500 |
-
|
501 |
-
# @ secure_wp
|
502 |
-
#: secure-wordpress.php:1031
|
503 |
-
msgid "Thankyou for using our plugin! You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
504 |
-
msgstr "プラグインご利用ありがとうございます。ブログでスキャンを実行し、コピーペースト用の HTML を出力します。 このシールはスキャニングサービスをするわけではありません。WordPress セキュリティの基礎を行います。コミュニティおよび我々の経験からお勧めします。<br/>定期的な脆弱性およびマルウェアスキャニングサービスを希望される方は<a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">我々のページ</a>をごらんください。"
|
505 |
-
|
506 |
-
# @ secure_wp
|
507 |
-
#: secure-wordpress.php:1126
|
508 |
-
msgid "Source"
|
509 |
-
msgstr "ソース"
|
510 |
-
|
511 |
-
# @ secure_wp
|
512 |
-
#. translators: plugin header field 'Version'
|
513 |
-
#: secure-wordpress.php:0
|
514 |
-
msgid "1.0.5"
|
515 |
-
msgstr "1.0.5"
|
516 |
-
|
517 |
-
# @ secure_wp
|
518 |
-
#: secure-wordpress.php:881
|
519 |
-
msgid "WP Version on Scripts/Styles"
|
520 |
-
msgstr "スクリプト/スタイルのバージョン"
|
521 |
-
|
522 |
-
# @ secure_wp
|
523 |
-
#: secure-wordpress.php:885
|
524 |
-
msgid "Removes version of WordPress on the url form scripts and stylesheets only on frontend."
|
525 |
-
msgstr "フロントエンドの url フォームスクリプト/スタイルシートの WordPress バージョンを削除します。"
|
526 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-nl_NL.mo
DELETED
Binary file
|
languages/secure_wp-nl_NL.po
DELETED
@@ -1,246 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress v0.8.2\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2009-06-22 12:29+0100\n"
|
6 |
-
"PO-Revision-Date: 2010-03-24 18:51+0100\n"
|
7 |
-
"Last-Translator: WordPressPluginGuide.com <info@wppg.me>\n"
|
8 |
-
"Language-Team: WPwebshop.com <info@wppg.me>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
14 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
15 |
-
"X-Poedit-Basepath: ../\n"
|
16 |
-
"X-Textdomain-Support: yes\n"
|
17 |
-
"X-Poedit-Language: Dutch\n"
|
18 |
-
"X-Poedit-Country: NETHERLANDS\n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
|
21 |
-
#: secure-wordpress.php:337
|
22 |
-
msgid "Settings"
|
23 |
-
msgstr "Instellingen"
|
24 |
-
|
25 |
-
# @ secure_wp
|
26 |
-
#: secure-wordpress.php:366
|
27 |
-
#: secure-wordpress.php:413
|
28 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
29 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentatie (Engels)</a>"
|
30 |
-
|
31 |
-
# @ secure_wp
|
32 |
-
#: secure-wordpress.php:389
|
33 |
-
msgid "Options update."
|
34 |
-
msgstr "Opties bijwerken."
|
35 |
-
|
36 |
-
# @ secure_wp
|
37 |
-
#: secure-wordpress.php:391
|
38 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
39 |
-
msgstr "Alle vermeldingen in de database werden verwijderd. Deactiveer nu deze plugin."
|
40 |
-
|
41 |
-
# @ secure_wp
|
42 |
-
#: secure-wordpress.php:405
|
43 |
-
#: secure-wordpress.php:416
|
44 |
-
msgid "Secure WP"
|
45 |
-
msgstr "Secure WP"
|
46 |
-
|
47 |
-
# @ secure_wp
|
48 |
-
#: secure-wordpress.php:412
|
49 |
-
#: secure-wordpress.php:703
|
50 |
-
msgid "Secure WordPress"
|
51 |
-
msgstr "Secure WordPress"
|
52 |
-
|
53 |
-
#: secure-wordpress.php:436
|
54 |
-
msgid "Version"
|
55 |
-
msgstr "Versie"
|
56 |
-
|
57 |
-
# @ secure_wp
|
58 |
-
#: secure-wordpress.php:436
|
59 |
-
msgid "History"
|
60 |
-
msgstr "Historie"
|
61 |
-
|
62 |
-
#: secure-wordpress.php:436
|
63 |
-
msgid "Author"
|
64 |
-
msgstr "Auteur"
|
65 |
-
|
66 |
-
# @ secure_wp
|
67 |
-
#: secure-wordpress.php:629
|
68 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
69 |
-
msgstr "Opties zijn niet bijgewerkt - je hebt geen rechten om dit te doen !"
|
70 |
-
|
71 |
-
# @ secure_wp
|
72 |
-
#: secure-wordpress.php:649
|
73 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
74 |
-
msgstr "Vermeldingen werden niet verwijderd - je hebt geen rechten om dit te doen!"
|
75 |
-
|
76 |
-
# @ secure_wp
|
77 |
-
#: secure-wordpress.php:657
|
78 |
-
msgid "Entries was not delleted - check the checkbox!"
|
79 |
-
msgstr "Vermeldingen werden niet verwijderd - controleer het selectievakje!"
|
80 |
-
|
81 |
-
# @ secure_wp
|
82 |
-
#: secure-wordpress.php:677
|
83 |
-
msgid "All entries in the database was cleared."
|
84 |
-
msgstr "Alle vermeldingen in de database zijn verwijderd."
|
85 |
-
|
86 |
-
# @ secure_wp
|
87 |
-
#: secure-wordpress.php:681
|
88 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
89 |
-
msgstr "Vermeldingen werden niet verwijderd - je hebt geen rechten om dit te doen!"
|
90 |
-
|
91 |
-
#: secure-wordpress.php:708
|
92 |
-
#: secure-wordpress.php:843
|
93 |
-
#: secure-wordpress.php:863
|
94 |
-
msgid "Click to toggle"
|
95 |
-
msgstr "Klik om te wisselen"
|
96 |
-
|
97 |
-
# @ secure_wp
|
98 |
-
#: secure-wordpress.php:709
|
99 |
-
msgid "Configuration"
|
100 |
-
msgstr "Configuratie"
|
101 |
-
|
102 |
-
# @ secure_wp
|
103 |
-
#: secure-wordpress.php:719
|
104 |
-
msgid "Error-Messages"
|
105 |
-
msgstr "Foutmeldingen"
|
106 |
-
|
107 |
-
# @ secure_wp
|
108 |
-
#: secure-wordpress.php:729
|
109 |
-
msgid "WordPress Version"
|
110 |
-
msgstr "WordPress Versie"
|
111 |
-
|
112 |
-
# @ secure_wp
|
113 |
-
#: secure-wordpress.php:733
|
114 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
115 |
-
msgstr "Verwijder de WordPress versie van alle pagina's, inclusief feed, niet van de admin interface"
|
116 |
-
|
117 |
-
# @ secure_wp
|
118 |
-
#: secure-wordpress.php:759
|
119 |
-
msgid "Really Simple Discovery"
|
120 |
-
msgstr "Really Simple Discovery"
|
121 |
-
|
122 |
-
# @ secure_wp
|
123 |
-
#: secure-wordpress.php:763
|
124 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
125 |
-
msgstr "Verwijder de Really Simple Discovery link in <code>wp_head</code> van de front-end gebruikersomgeving"
|
126 |
-
|
127 |
-
# @ secure_wp
|
128 |
-
#: secure-wordpress.php:769
|
129 |
-
msgid "Windows Live Writer"
|
130 |
-
msgstr "Windows Live Writer"
|
131 |
-
|
132 |
-
# @ secure_wp
|
133 |
-
#: secure-wordpress.php:773
|
134 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
135 |
-
msgstr "Verwijder de Windows Live Writer link in <code>wp_head</code> van de front-end gebruikersomgeving"
|
136 |
-
|
137 |
-
# @ secure_wp
|
138 |
-
#: secure-wordpress.php:779
|
139 |
-
msgid "Core Update"
|
140 |
-
msgstr "Kern Update"
|
141 |
-
|
142 |
-
# @ secure_wp
|
143 |
-
#: secure-wordpress.php:783
|
144 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
145 |
-
msgstr "Verwijder de WordPress Kern update voor gebruikers die geen admin zijn. Laat alleen een boodschap zien over een nieuwe WordPress versie aan gebruikers met update rechten."
|
146 |
-
|
147 |
-
# @ secure_wp
|
148 |
-
#: secure-wordpress.php:789
|
149 |
-
msgid "Plugin Update"
|
150 |
-
msgstr "Plugin Update"
|
151 |
-
|
152 |
-
# @ secure_wp
|
153 |
-
#: secure-wordpress.php:793
|
154 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
155 |
-
msgstr "Verwijder de plugin update voor gebruikers die geen admin zijn. Laat alleen een boodschap zien over een nieuwe versie van een plugin aan gebruikers met rechten om plugins te kunnen bewerken."
|
156 |
-
|
157 |
-
# @ secure_wp
|
158 |
-
#: secure-wordpress.php:800
|
159 |
-
msgid "Theme Update"
|
160 |
-
msgstr "Thema Update"
|
161 |
-
|
162 |
-
# @ secure_wp
|
163 |
-
#: secure-wordpress.php:804
|
164 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
165 |
-
msgstr "Verwijder de thema update voor gebruikers die geen admin zijn. Laat alleen een boodschap zien over een nieuwe versie van een thema aan gebruikers met rechten om thema's te kunnen bewerken."
|
166 |
-
|
167 |
-
# @ secure_wp
|
168 |
-
#: secure-wordpress.php:811
|
169 |
-
msgid "WP Scanner"
|
170 |
-
msgstr "WP Scanner"
|
171 |
-
|
172 |
-
# @ secure_wp
|
173 |
-
#: secure-wordpress.php:815
|
174 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
175 |
-
msgstr "WordPress scanner is een gratis online informatiebron die blog beheerders kunnen gebruiken om hun WordPress veiligheidsniveau te handhaven. Om wp-scanner te starten selecteer deze optie en voeg de code <code><!-- wpscanner --></code> toe aan je huidige WordPress template. Ga hierna naar <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> en scan je website."
|
176 |
-
|
177 |
-
# @ secure_wp
|
178 |
-
#: secure-wordpress.php:833
|
179 |
-
msgid "Save Changes"
|
180 |
-
msgstr "Bewaar Wijzigingen"
|
181 |
-
|
182 |
-
# @ secure_wp
|
183 |
-
#: secure-wordpress.php:844
|
184 |
-
msgid "Clear Options"
|
185 |
-
msgstr "Opties Verwijderen"
|
186 |
-
|
187 |
-
# @ secure_wp
|
188 |
-
#: secure-wordpress.php:847
|
189 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
190 |
-
msgstr "Klik op deze knop om de instellingen van deze plugin te wissen. Deactiveren van de Secure WordPress plugin verwijderd alle data die is aangemaakt."
|
191 |
-
|
192 |
-
# @ secure_wp
|
193 |
-
#: secure-wordpress.php:852
|
194 |
-
msgid "Delete Options"
|
195 |
-
msgstr "Verwijder Opties"
|
196 |
-
|
197 |
-
# @ secure_wp
|
198 |
-
#: secure-wordpress.php:864
|
199 |
-
msgid "About the plugin"
|
200 |
-
msgstr "Over de plugin"
|
201 |
-
|
202 |
-
# @ secure_wp
|
203 |
-
#: secure-wordpress.php:877
|
204 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
205 |
-
msgstr "Voor meer informatie: Bezoek de <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">homepage van de plugin</a> voor meer informatie of download de laatste versie van deze plugin."
|
206 |
-
|
207 |
-
# @ secure_wp
|
208 |
-
#: secure-wordpress.php:877
|
209 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
210 |
-
msgstr "Wil je mij bedanken ? Bezoek mijn <a href=\"http://bueltge.de/wunschliste/\">verlanglijst</a>."
|
211 |
-
|
212 |
-
# @ secure_wp
|
213 |
-
#: secure-wordpress.php:753
|
214 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
215 |
-
msgstr "creëert een <code>index.php</code> bestand in <code>/plugins/</code> en <code>/themes/</code> om te zorgen dat het je map inhoud niet laat zien"
|
216 |
-
|
217 |
-
# @ secure_wp
|
218 |
-
#: secure-wordpress.php:739
|
219 |
-
msgid "WordPress Version in Backend"
|
220 |
-
msgstr "WordPress versie in back-end gebruikersinterface"
|
221 |
-
|
222 |
-
# @ secure_wp
|
223 |
-
#: secure-wordpress.php:749
|
224 |
-
msgid "index.php"
|
225 |
-
msgstr "index.php"
|
226 |
-
|
227 |
-
# @ secure_wp
|
228 |
-
#: secure-wordpress.php:743
|
229 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
230 |
-
msgstr "Verwijderd de WordPress versie in de admin interface voor gebruikers die geen admin zijn. Laat alleen de WordPress versie van je blog zien aan gebruikers met rechten om plugins te kunnen bewerken."
|
231 |
-
|
232 |
-
# @ secure_wp
|
233 |
-
#: secure-wordpress.php:723
|
234 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
235 |
-
msgstr "Deactiveert de tekstballon en foutmelding bij het inloggen van WordPress"
|
236 |
-
|
237 |
-
# @ secure_wp
|
238 |
-
#: secure-wordpress.php:821
|
239 |
-
msgid "Block bad queries"
|
240 |
-
msgstr "Blokkeer verkeerde raadplegingen"
|
241 |
-
|
242 |
-
# @ secure_wp
|
243 |
-
#: secure-wordpress.php:825
|
244 |
-
msgid "Protect WordPress against malicious URL requests, see more informations on the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
245 |
-
msgstr "Bescherm WordPress tegen tegen kwaadaardige URL-aanvragen, lees meer informatie hierover in het <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >bericht van Jeff Starr</a> (Engels)"
|
246 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-pl_PL.mo
DELETED
Binary file
|
languages/secure_wp-pl_PL.po
DELETED
@@ -1,530 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-05-16 12:34+0100\n"
|
6 |
-
"PO-Revision-Date: 2011-02-16 00:38+0100\n"
|
7 |
-
"Last-Translator: RafalDesign <admin@rafaldesign.pl>\n"
|
8 |
-
"Language-Team: \n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
14 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
15 |
-
"X-Poedit-Basepath: ../\n"
|
16 |
-
"X-Textdomain-Support: yes\n"
|
17 |
-
"X-Poedit-SearchPath-0: .\n"
|
18 |
-
|
19 |
-
#@ secure_wp
|
20 |
-
#. translators: plugin header field 'Description'
|
21 |
-
#: secure-wordpress.php:0
|
22 |
-
msgid "Little basics for secure your WordPress-installation."
|
23 |
-
msgstr "Podstawowe zabezpieczenie dla twojej witryny opartej na WordPress"
|
24 |
-
|
25 |
-
#@ default
|
26 |
-
#: secure-wordpress.php:370
|
27 |
-
msgid "Settings"
|
28 |
-
msgstr "Ustawienia"
|
29 |
-
|
30 |
-
#@ secure_wp
|
31 |
-
#: secure-wordpress.php:399
|
32 |
-
#: secure-wordpress.php:446
|
33 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
34 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Dokumentacja</a>"
|
35 |
-
|
36 |
-
#@ secure_wp
|
37 |
-
#: secure-wordpress.php:422
|
38 |
-
msgid "Options update."
|
39 |
-
msgstr "Aktualizacja opcji."
|
40 |
-
|
41 |
-
#@ secure_wp
|
42 |
-
#: secure-wordpress.php:424
|
43 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
44 |
-
msgstr "Wszystkie wpisy w bazie danych zostały usunięte. Możesz teraz deaktywować wtyczkę."
|
45 |
-
|
46 |
-
#@ secure_wp
|
47 |
-
#: secure-wordpress.php:438
|
48 |
-
#: secure-wordpress.php:449
|
49 |
-
msgid "Secure WP"
|
50 |
-
msgstr "Secure WP"
|
51 |
-
|
52 |
-
#@ secure_wp
|
53 |
-
#. translators: plugin header field 'Name'
|
54 |
-
#: secure-wordpress.php:0
|
55 |
-
#: secure-wordpress.php:445
|
56 |
-
#: secure-wordpress.php:773
|
57 |
-
msgid "Secure WordPress"
|
58 |
-
msgstr "Zabezpiecz WordPress"
|
59 |
-
|
60 |
-
#@ default
|
61 |
-
#: secure-wordpress.php:469
|
62 |
-
msgid "Version"
|
63 |
-
msgstr "Wersja"
|
64 |
-
|
65 |
-
#@ secure_wp
|
66 |
-
#: secure-wordpress.php:469
|
67 |
-
msgid "History"
|
68 |
-
msgstr "Historia"
|
69 |
-
|
70 |
-
#@ default
|
71 |
-
#: secure-wordpress.php:469
|
72 |
-
msgid "Author"
|
73 |
-
msgstr "Autor"
|
74 |
-
|
75 |
-
#@ secure_wp
|
76 |
-
#: secure-wordpress.php:698
|
77 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
78 |
-
msgstr "Opcje nie zostały zaktualizowane. Nie masz wystarczających uprawnień ."
|
79 |
-
|
80 |
-
#@ secure_wp
|
81 |
-
#: secure-wordpress.php:718
|
82 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
83 |
-
msgstr "Wpisy nie zostały usunięte. Nie masz wystarczających uprawnień ."
|
84 |
-
|
85 |
-
#@ secure_wp
|
86 |
-
#: secure-wordpress.php:726
|
87 |
-
msgid "Entries were not deleted - check the checkbox!"
|
88 |
-
msgstr "Wpisy nie zostały usunięte - zaznacz checkbox!"
|
89 |
-
|
90 |
-
#@ secure_wp
|
91 |
-
#: secure-wordpress.php:746
|
92 |
-
msgid "All entries in the database were cleared."
|
93 |
-
msgstr "Wszystkie wpisy w bazie danych zostały wyczyszczone."
|
94 |
-
|
95 |
-
#@ secure_wp
|
96 |
-
#: secure-wordpress.php:750
|
97 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
98 |
-
msgstr "Wpisy nie zostały skasowane - upewnij się że checkbox jest zaznaczony, bądź też nie masz wystarczających uprawnień."
|
99 |
-
|
100 |
-
#@ default
|
101 |
-
#: secure-wordpress.php:778
|
102 |
-
#: secure-wordpress.php:914
|
103 |
-
#: secure-wordpress.php:1027
|
104 |
-
#: secure-wordpress.php:1141
|
105 |
-
msgid "Click to toggle"
|
106 |
-
msgstr "Kliknij aby przełączyć"
|
107 |
-
|
108 |
-
#@ secure_wp
|
109 |
-
#: secure-wordpress.php:779
|
110 |
-
msgid "Configuration"
|
111 |
-
msgstr "Konfiguracja"
|
112 |
-
|
113 |
-
#@ secure_wp
|
114 |
-
#: secure-wordpress.php:789
|
115 |
-
msgid "Error-Messages"
|
116 |
-
msgstr "Komunikaty błędów"
|
117 |
-
|
118 |
-
#@ secure_wp
|
119 |
-
#: secure-wordpress.php:793
|
120 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
121 |
-
msgstr "Deaktywuje podpowiedzi oraz komunikaty błędów podczas logowania do WordPress"
|
122 |
-
|
123 |
-
#@ secure_wp
|
124 |
-
#: secure-wordpress.php:799
|
125 |
-
msgid "WordPress Version"
|
126 |
-
msgstr "Wersja WordPress"
|
127 |
-
|
128 |
-
#@ secure_wp
|
129 |
-
#: secure-wordpress.php:803
|
130 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
131 |
-
msgstr "Usuwa informację o wersji WordPressa, łącznie z 'feed'. Nie dotyczy administratorów."
|
132 |
-
|
133 |
-
#@ secure_wp
|
134 |
-
#: secure-wordpress.php:809
|
135 |
-
msgid "WordPress Version in Backend"
|
136 |
-
msgstr "Wersja WordPress na zapleczu"
|
137 |
-
|
138 |
-
#@ secure_wp
|
139 |
-
#: secure-wordpress.php:813
|
140 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
141 |
-
msgstr "Usuwa informację o wersji WordPress w panelu administratora dla osób nie będących administratorami. Pokazuje wersję twojego blogu tylko użytkownikom mającym prawa do edycji wtyczek."
|
142 |
-
|
143 |
-
#@ secure_wp
|
144 |
-
#: secure-wordpress.php:819
|
145 |
-
msgid "index.php"
|
146 |
-
msgstr "index.php"
|
147 |
-
|
148 |
-
#@ secure_wp
|
149 |
-
#: secure-wordpress.php:823
|
150 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
151 |
-
msgstr "Tworzy plik <code>index.php</code>w<code>/plugins/</code> i<code>/themes/</code> aby uniemożliwić listowanie folderów."
|
152 |
-
|
153 |
-
#@ secure_wp
|
154 |
-
#: secure-wordpress.php:829
|
155 |
-
msgid "Really Simple Discovery"
|
156 |
-
msgstr "Really Simple Discovery"
|
157 |
-
|
158 |
-
#@ secure_wp
|
159 |
-
#: secure-wordpress.php:833
|
160 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
161 |
-
msgstr "Usuwa link do Really Simple Discovery w <code>wp_head</code> witryny"
|
162 |
-
|
163 |
-
#@ secure_wp
|
164 |
-
#: secure-wordpress.php:839
|
165 |
-
msgid "Windows Live Writer"
|
166 |
-
msgstr "Windows Live Writer"
|
167 |
-
|
168 |
-
#@ secure_wp
|
169 |
-
#: secure-wordpress.php:843
|
170 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
171 |
-
msgstr "Usuwa link do Windows Lice Writer w <code>wp_head</code> witryny"
|
172 |
-
|
173 |
-
#@ secure_wp
|
174 |
-
#: secure-wordpress.php:849
|
175 |
-
msgid "Core Update"
|
176 |
-
msgstr "Aktualizacja WordPress"
|
177 |
-
|
178 |
-
#@ secure_wp
|
179 |
-
#: secure-wordpress.php:853
|
180 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
181 |
-
msgstr "Usuwa możliwość aktualizacji WordPress dla osób posiadających uprawnienia niższe niż administrator. Pokazuje komunikat o nowej wersji WordPressa tylko osobom z uprawnieniami do aktualizacji. "
|
182 |
-
|
183 |
-
#@ secure_wp
|
184 |
-
#: secure-wordpress.php:859
|
185 |
-
msgid "Plugin Update"
|
186 |
-
msgstr "Aktualizacja wtyczki"
|
187 |
-
|
188 |
-
#@ secure_wp
|
189 |
-
#: secure-wordpress.php:863
|
190 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
191 |
-
msgstr "Usuwa możliwość aktualizacji wtyczek dla osób posiadających uprawnienia niższe niż administrator. Pokazuje komunikat o nowej wersji wtyczke tylko osobom z uprawnieniami do aktualizacji. "
|
192 |
-
|
193 |
-
#@ secure_wp
|
194 |
-
#: secure-wordpress.php:870
|
195 |
-
msgid "Theme Update"
|
196 |
-
msgstr "Aktualizacja motywów"
|
197 |
-
|
198 |
-
#@ secure_wp
|
199 |
-
#: secure-wordpress.php:874
|
200 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
201 |
-
msgstr "Usuwa możliwość aktualizacji motywów (themes) dla osób posiadających uprawnienia niższe niż administrator. Pokazuje komunikat o nowej wersji motywu tylko osobom z uprawnieniami do aktualizacji. "
|
202 |
-
|
203 |
-
#@ secure_wp
|
204 |
-
#: secure-wordpress.php:891
|
205 |
-
msgid "Block bad queries"
|
206 |
-
msgstr "Zablokuj błędne zapytania"
|
207 |
-
|
208 |
-
#@ secure_wp
|
209 |
-
#: secure-wordpress.php:895
|
210 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
211 |
-
msgstr "Zabezpiecza WordPress przed szkodliwymi żądaniami URL, możesz dowiedzież się więcej <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" > czytając ten wpis Jeffa Starr</a>"
|
212 |
-
|
213 |
-
#@ secure_wp
|
214 |
-
#: secure-wordpress.php:903
|
215 |
-
msgid "Save Changes"
|
216 |
-
msgstr "Zapisz zmiany"
|
217 |
-
|
218 |
-
#@ secure_wp
|
219 |
-
#: secure-wordpress.php:915
|
220 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
221 |
-
msgstr "Sprawdź za darmo swoją witrynę pod względem zabezpieczeń na www.sitesecuritymonitor.com"
|
222 |
-
|
223 |
-
#@ secure_wp
|
224 |
-
#: secure-wordpress.php:918
|
225 |
-
msgid "Take us for a Test Drive - Free Scan"
|
226 |
-
msgstr "Wypróbuj nas - DARMOWY SKAN WITRYNY"
|
227 |
-
|
228 |
-
#@ secure_wp
|
229 |
-
#: secure-wordpress.php:919
|
230 |
-
msgid "We understand you may have questions:"
|
231 |
-
msgstr "Rozumiemy że możesz mieć jakieś pytania:"
|
232 |
-
|
233 |
-
#@ secure_wp
|
234 |
-
#: secure-wordpress.php:920
|
235 |
-
msgid "What does this do for me?"
|
236 |
-
msgstr "Co będę z tego miał?"
|
237 |
-
|
238 |
-
#@ secure_wp
|
239 |
-
#: secure-wordpress.php:921
|
240 |
-
msgid "Am I really safe? I need to be sure."
|
241 |
-
msgstr "Czy na pewno witryna jest bezpieczna? Muszę być pewny."
|
242 |
-
|
243 |
-
#@ secure_wp
|
244 |
-
#: secure-wordpress.php:922
|
245 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
246 |
-
msgstr "Możesz być pewny, Site Security Monitor gwarantuje bezpieczeństwo witryny."
|
247 |
-
|
248 |
-
#@ secure_wp
|
249 |
-
#: secure-wordpress.php:924
|
250 |
-
msgid "FREE scan looks for malware"
|
251 |
-
msgstr "DARMOWY skan szuka luk w zabezpieczeniach"
|
252 |
-
|
253 |
-
#@ secure_wp
|
254 |
-
#: secure-wordpress.php:925
|
255 |
-
msgid "FREE report of website vulnerabilities found"
|
256 |
-
msgstr "DARMOWY raport znalezionych luk w zabezpieczeniach witryny"
|
257 |
-
|
258 |
-
#@ secure_wp
|
259 |
-
#: secure-wordpress.php:926
|
260 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
261 |
-
msgstr "Nie potrzeba ustawiać, instalować ani dopasowywać ustawień - skan zaczyna się natychmiast"
|
262 |
-
|
263 |
-
#@ secure_wp
|
264 |
-
#: secure-wordpress.php:928
|
265 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
266 |
-
msgstr "Dostarczymy ci dokładny raport wszystkich luk w zabezpieczeniach - całkowicie za DARMO. Możesz użyć tego raportu w celu poprawienia zabezpieczeń, albo aby pokazać swemu szefowi że wszystko robisz jak trzeba chroniąc waszą witrynę, bądź też swoim klientom że strona którą dla nich zrobiłeś jest bezpieczna!."
|
267 |
-
|
268 |
-
#@ secure_wp
|
269 |
-
#: secure-wordpress.php:929
|
270 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
271 |
-
msgstr "** BONUS: Będziesz mógł użyć loga \"Safe-Seal\" na swojej witrynie po skanowaniu - pokażesz światu że twoja witryna jest bezpieczna!."
|
272 |
-
|
273 |
-
#@ secure_wp
|
274 |
-
#: secure-wordpress.php:931
|
275 |
-
msgid "The form"
|
276 |
-
msgstr "Formularz"
|
277 |
-
|
278 |
-
#@ secure_wp
|
279 |
-
#: secure-wordpress.php:932
|
280 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
281 |
-
msgstr "Użyj poniższego formularza, bądż też wypełnij formularz<a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">na naszej stronie</a>."
|
282 |
-
|
283 |
-
#@ secure_wp
|
284 |
-
#: secure-wordpress.php:967
|
285 |
-
msgid "Full Name"
|
286 |
-
msgstr "Imię i nazwisko"
|
287 |
-
|
288 |
-
#@ secure_wp
|
289 |
-
#: secure-wordpress.php:970
|
290 |
-
#: secure-wordpress.php:978
|
291 |
-
#: secure-wordpress.php:986
|
292 |
-
#: secure-wordpress.php:994
|
293 |
-
#: secure-wordpress.php:1010
|
294 |
-
msgid "*required"
|
295 |
-
msgstr "*wymagane"
|
296 |
-
|
297 |
-
#@ secure_wp
|
298 |
-
#: secure-wordpress.php:975
|
299 |
-
msgid "eMail Adress"
|
300 |
-
msgstr "adres e-mail"
|
301 |
-
|
302 |
-
#@ secure_wp
|
303 |
-
#: secure-wordpress.php:978
|
304 |
-
msgid ", eMail Address must match domain name"
|
305 |
-
msgstr ", adres e-mail musi być zgodny ze skanowaną witryną"
|
306 |
-
|
307 |
-
#@ secure_wp
|
308 |
-
#: secure-wordpress.php:983
|
309 |
-
msgid "Website"
|
310 |
-
msgstr "Strona internetowa"
|
311 |
-
|
312 |
-
#@ secure_wp
|
313 |
-
#: secure-wordpress.php:991
|
314 |
-
msgid "Phone"
|
315 |
-
msgstr "Telefon"
|
316 |
-
|
317 |
-
#@ secure_wp
|
318 |
-
#: secure-wordpress.php:999
|
319 |
-
msgid "Yes, I need help!"
|
320 |
-
msgstr "Tak, potrzebuję pomocy!"
|
321 |
-
|
322 |
-
#@ secure_wp
|
323 |
-
#: secure-wordpress.php:1002
|
324 |
-
msgid "Call me"
|
325 |
-
msgstr "Zadzwoń do mnie"
|
326 |
-
|
327 |
-
#@ secure_wp
|
328 |
-
#: secure-wordpress.php:1007
|
329 |
-
msgid "Terms and Conditions"
|
330 |
-
msgstr "Warunki umowy"
|
331 |
-
|
332 |
-
#@ secure_wp
|
333 |
-
#: secure-wordpress.php:1010
|
334 |
-
msgid ", I accept"
|
335 |
-
msgstr ", Akceptuję"
|
336 |
-
|
337 |
-
#@ secure_wp
|
338 |
-
#: secure-wordpress.php:1017
|
339 |
-
msgid "Get my Free Web Scan"
|
340 |
-
msgstr "Zacznij skanowanie mojej witryny"
|
341 |
-
|
342 |
-
#@ secure_wp
|
343 |
-
#: secure-wordpress.php:1028
|
344 |
-
msgid "Safe Seal"
|
345 |
-
msgstr "Safe Seal"
|
346 |
-
|
347 |
-
#@ secure_wp
|
348 |
-
#: secure-wordpress.php:1058
|
349 |
-
msgid "Color"
|
350 |
-
msgstr "Kolor"
|
351 |
-
|
352 |
-
#@ secure_wp
|
353 |
-
#: secure-wordpress.php:1062
|
354 |
-
msgid "Green"
|
355 |
-
msgstr "Zielony"
|
356 |
-
|
357 |
-
#@ secure_wp
|
358 |
-
#: secure-wordpress.php:1063
|
359 |
-
msgid "Blue"
|
360 |
-
msgstr "Niebieski"
|
361 |
-
|
362 |
-
#@ secure_wp
|
363 |
-
#: secure-wordpress.php:1064
|
364 |
-
msgid "Red"
|
365 |
-
msgstr "Czerwony"
|
366 |
-
|
367 |
-
#@ secure_wp
|
368 |
-
#: secure-wordpress.php:1065
|
369 |
-
msgid "Brown"
|
370 |
-
msgstr "Brązowy"
|
371 |
-
|
372 |
-
#@ secure_wp
|
373 |
-
#: secure-wordpress.php:1066
|
374 |
-
msgid "Gray"
|
375 |
-
msgstr "Szary"
|
376 |
-
|
377 |
-
#@ secure_wp
|
378 |
-
#: secure-wordpress.php:1075
|
379 |
-
msgid "Text"
|
380 |
-
msgstr "Tekst"
|
381 |
-
|
382 |
-
#@ secure_wp
|
383 |
-
#: secure-wordpress.php:1079
|
384 |
-
msgid "Protected"
|
385 |
-
msgstr "Chroniony"
|
386 |
-
|
387 |
-
#@ secure_wp
|
388 |
-
#: secure-wordpress.php:1080
|
389 |
-
msgid "Secured"
|
390 |
-
msgstr "Zabezpieczony"
|
391 |
-
|
392 |
-
#@ secure_wp
|
393 |
-
#: secure-wordpress.php:1081
|
394 |
-
msgid "Scanned"
|
395 |
-
msgstr "Skanowany"
|
396 |
-
|
397 |
-
#@ secure_wp
|
398 |
-
#: secure-wordpress.php:1082
|
399 |
-
msgid "Protected by"
|
400 |
-
msgstr "Chroniony przez"
|
401 |
-
|
402 |
-
#@ secure_wp
|
403 |
-
#: secure-wordpress.php:1088
|
404 |
-
msgid "Orientation"
|
405 |
-
msgstr "Orientacja"
|
406 |
-
|
407 |
-
#@ secure_wp
|
408 |
-
#: secure-wordpress.php:1092
|
409 |
-
msgid "Horizontal"
|
410 |
-
msgstr "Poziomo"
|
411 |
-
|
412 |
-
#@ secure_wp
|
413 |
-
#: secure-wordpress.php:1093
|
414 |
-
msgid "Vertical"
|
415 |
-
msgstr "Pionowo"
|
416 |
-
|
417 |
-
#@ secure_wp
|
418 |
-
#: secure-wordpress.php:1099
|
419 |
-
msgid "Image border"
|
420 |
-
msgstr "Obramowanie obrazka"
|
421 |
-
|
422 |
-
#@ secure_wp
|
423 |
-
#: secure-wordpress.php:1107
|
424 |
-
msgid "Language"
|
425 |
-
msgstr "Język"
|
426 |
-
|
427 |
-
#@ secure_wp
|
428 |
-
#: secure-wordpress.php:1111
|
429 |
-
msgid "English (US)"
|
430 |
-
msgstr "Angielski (US)"
|
431 |
-
|
432 |
-
#@ secure_wp
|
433 |
-
#: secure-wordpress.php:1112
|
434 |
-
msgid "English (UK)"
|
435 |
-
msgstr "Angielski (UK)"
|
436 |
-
|
437 |
-
#@ secure_wp
|
438 |
-
#: secure-wordpress.php:1113
|
439 |
-
msgid "Spanish"
|
440 |
-
msgstr "Hiszpański"
|
441 |
-
|
442 |
-
#@ secure_wp
|
443 |
-
#: secure-wordpress.php:1114
|
444 |
-
msgid "German"
|
445 |
-
msgstr "Niemiecki"
|
446 |
-
|
447 |
-
#@ secure_wp
|
448 |
-
#: secure-wordpress.php:1115
|
449 |
-
msgid "Italian"
|
450 |
-
msgstr "Włoski"
|
451 |
-
|
452 |
-
#@ secure_wp
|
453 |
-
#: secure-wordpress.php:1116
|
454 |
-
msgid "Japanese"
|
455 |
-
msgstr "Japoński"
|
456 |
-
|
457 |
-
#@ secure_wp
|
458 |
-
#: secure-wordpress.php:1117
|
459 |
-
msgid "Chinese (Simplified)"
|
460 |
-
msgstr "Chiński (uproszczony)"
|
461 |
-
|
462 |
-
#@ secure_wp
|
463 |
-
#: secure-wordpress.php:1118
|
464 |
-
msgid "Chinese (Traditional)"
|
465 |
-
msgstr "Chiński (Tradycyjny)"
|
466 |
-
|
467 |
-
#@ secure_wp
|
468 |
-
#: secure-wordpress.php:1127
|
469 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
470 |
-
msgstr "Tutaj jest twój wygenerowany kod. Umieść go na stronie (jako widget HTML) aby pokazać że witryna jest chroniona."
|
471 |
-
|
472 |
-
#@ secure_wp
|
473 |
-
#: secure-wordpress.php:1142
|
474 |
-
msgid "Clear Options"
|
475 |
-
msgstr "Wyczyść opcje"
|
476 |
-
|
477 |
-
#@ secure_wp
|
478 |
-
#: secure-wordpress.php:1145
|
479 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
480 |
-
msgstr "Naciśnij przycisk poniżej aby usunąć ustawienia wtyczki. Deaktywacja wtyczki Secure WP usunie wszystkie ustwawienia które stworzyłeś przy jej pomocy."
|
481 |
-
|
482 |
-
#@ secure_wp
|
483 |
-
#: secure-wordpress.php:1150
|
484 |
-
msgid "Delete Options"
|
485 |
-
msgstr "Usuń opcje"
|
486 |
-
|
487 |
-
#@ secure_wp
|
488 |
-
#. translators: plugin header field 'PluginURI'
|
489 |
-
#: secure-wordpress.php:0
|
490 |
-
msgid "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
491 |
-
msgstr "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
492 |
-
|
493 |
-
#@ secure_wp
|
494 |
-
#. translators: plugin header field 'Author'
|
495 |
-
#: secure-wordpress.php:0
|
496 |
-
msgid "jremillard"
|
497 |
-
msgstr "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
498 |
-
|
499 |
-
#@ secure_wp
|
500 |
-
#. translators: plugin header field 'AuthorURI'
|
501 |
-
#: secure-wordpress.php:0
|
502 |
-
msgid "http://www.sitesecuritymonitor.com/"
|
503 |
-
msgstr "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
504 |
-
|
505 |
-
#@ secure_wp
|
506 |
-
#: secure-wordpress.php:1031
|
507 |
-
msgid "Thankyou for using our plugin! You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
508 |
-
msgstr "Dziękujęmy za używanie naszej wtyczki! Możesz użyć kodu poniżej (HTML - dla łatwego kopiuj-wklej) i wkleić go na swoim blogu. Wtyczka ta co prawda nie oferuje skanowania twojej witryny w poszukiwaniu luk w zabezpieczeniach, ale dzięki niej możesz zabezpieczyć najbardziej podstawowe obszary WordPress. <br/>Jeżeli chcesz aby twoja domena była skanowana regularnie <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">odwiedź naszą stronę internetową...</a>"
|
509 |
-
|
510 |
-
#@ secure_wp
|
511 |
-
#: secure-wordpress.php:1126
|
512 |
-
msgid "Source"
|
513 |
-
msgstr "Źródło"
|
514 |
-
|
515 |
-
#@ secure_wp
|
516 |
-
#. translators: plugin header field 'Version'
|
517 |
-
#: secure-wordpress.php:0
|
518 |
-
msgid "1.0.5"
|
519 |
-
msgstr ""
|
520 |
-
|
521 |
-
#@ secure_wp
|
522 |
-
#: secure-wordpress.php:881
|
523 |
-
msgid "WP Version on Scripts/Styles"
|
524 |
-
msgstr "Wersje skryptów/styli WP"
|
525 |
-
|
526 |
-
#@ secure_wp
|
527 |
-
#: secure-wordpress.php:885
|
528 |
-
msgid "Removes version of WordPress on the url form scripts and stylesheets only on frontend."
|
529 |
-
msgstr "Usuwa wersję WordPressa na URL ze skryptów i styli na witrynie (frontend)."
|
530 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-ro_RO.mo
DELETED
Binary file
|
languages/secure_wp-ro_RO.po
DELETED
@@ -1,532 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress 1.0.6\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-05-16 12:34+0100\n"
|
6 |
-
"PO-Revision-Date: 2011-01-31 11:12+0200\n"
|
7 |
-
"Last-Translator: \n"
|
8 |
-
"Language-Team: http://www.jibo.ro <contact@jibo.ro>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
14 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
15 |
-
"X-Poedit-Basepath: ../\n"
|
16 |
-
"X-Textdomain-Support: yes\n"
|
17 |
-
"X-Poedit-Language: Romanian\n"
|
18 |
-
"X-Poedit-Country: ROMANIA\n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
|
21 |
-
#@ secure_wp
|
22 |
-
#. translators: plugin header field 'Description'
|
23 |
-
#: secure-wordpress.php:0
|
24 |
-
msgid "Little basics for secure your WordPress-installation."
|
25 |
-
msgstr "Generalitati pentru securizarea instalarii unui blog WordPress."
|
26 |
-
|
27 |
-
#@ default
|
28 |
-
#: secure-wordpress.php:370
|
29 |
-
msgid "Settings"
|
30 |
-
msgstr "Setari"
|
31 |
-
|
32 |
-
#@ secure_wp
|
33 |
-
#: secure-wordpress.php:399
|
34 |
-
#: secure-wordpress.php:446
|
35 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
36 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentatie</a>"
|
37 |
-
|
38 |
-
#@ secure_wp
|
39 |
-
#: secure-wordpress.php:422
|
40 |
-
msgid "Options update."
|
41 |
-
msgstr "Actualizare optiuni."
|
42 |
-
|
43 |
-
#@ secure_wp
|
44 |
-
#: secure-wordpress.php:424
|
45 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
46 |
-
msgstr "Toate intrarile din baza de date au fost sterse. Acum poti dezactiva acest plugin."
|
47 |
-
|
48 |
-
#@ secure_wp
|
49 |
-
#: secure-wordpress.php:438
|
50 |
-
#: secure-wordpress.php:449
|
51 |
-
msgid "Secure WP"
|
52 |
-
msgstr "Securizeaza WordPress"
|
53 |
-
|
54 |
-
#@ secure_wp
|
55 |
-
#. translators: plugin header field 'Name'
|
56 |
-
#: secure-wordpress.php:0
|
57 |
-
#: secure-wordpress.php:445
|
58 |
-
#: secure-wordpress.php:773
|
59 |
-
msgid "Secure WordPress"
|
60 |
-
msgstr "Securizeaza WordPress"
|
61 |
-
|
62 |
-
#@ default
|
63 |
-
#: secure-wordpress.php:469
|
64 |
-
msgid "Version"
|
65 |
-
msgstr "Versiune"
|
66 |
-
|
67 |
-
#@ secure_wp
|
68 |
-
#: secure-wordpress.php:469
|
69 |
-
msgid "History"
|
70 |
-
msgstr "Istoric"
|
71 |
-
|
72 |
-
#@ default
|
73 |
-
#: secure-wordpress.php:469
|
74 |
-
msgid "Author"
|
75 |
-
msgstr "Autor"
|
76 |
-
|
77 |
-
#@ secure_wp
|
78 |
-
#: secure-wordpress.php:698
|
79 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
80 |
-
msgstr "Optiunile nu au fost actualizate - nu ai permisiune pentru a face acest lucru!"
|
81 |
-
|
82 |
-
#@ secure_wp
|
83 |
-
#: secure-wordpress.php:718
|
84 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
85 |
-
msgstr "Intrarile nu au fost sterse - nu ai permisiune pentru a face acest lucru!"
|
86 |
-
|
87 |
-
#@ secure_wp
|
88 |
-
#: secure-wordpress.php:726
|
89 |
-
msgid "Entries were not deleted - check the checkbox!"
|
90 |
-
msgstr "Intrarile nu au fost sterse - bifeaza casuta!"
|
91 |
-
|
92 |
-
#@ secure_wp
|
93 |
-
#: secure-wordpress.php:746
|
94 |
-
msgid "All entries in the database were cleared."
|
95 |
-
msgstr "Toate intrarile din baza de date au fost sterse."
|
96 |
-
|
97 |
-
#@ secure_wp
|
98 |
-
#: secure-wordpress.php:750
|
99 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
100 |
-
msgstr "Intrarile nu au fost sterse - bifeaza casuta sau nu ai permisiune pentru a face acest lucru!"
|
101 |
-
|
102 |
-
#@ default
|
103 |
-
#: secure-wordpress.php:778
|
104 |
-
#: secure-wordpress.php:914
|
105 |
-
#: secure-wordpress.php:1027
|
106 |
-
#: secure-wordpress.php:1141
|
107 |
-
msgid "Click to toggle"
|
108 |
-
msgstr "Apasa pentru a muta"
|
109 |
-
|
110 |
-
#@ secure_wp
|
111 |
-
#: secure-wordpress.php:779
|
112 |
-
msgid "Configuration"
|
113 |
-
msgstr "Configuratie"
|
114 |
-
|
115 |
-
#@ secure_wp
|
116 |
-
#: secure-wordpress.php:789
|
117 |
-
msgid "Error-Messages"
|
118 |
-
msgstr "Mesaje de eroare"
|
119 |
-
|
120 |
-
#@ secure_wp
|
121 |
-
#: secure-wordpress.php:793
|
122 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
123 |
-
msgstr "Dezactiveaza tooltip si erori la autentificarea in WordPress"
|
124 |
-
|
125 |
-
#@ secure_wp
|
126 |
-
#: secure-wordpress.php:799
|
127 |
-
msgid "WordPress Version"
|
128 |
-
msgstr "Versiune WordPress"
|
129 |
-
|
130 |
-
#@ secure_wp
|
131 |
-
#: secure-wordpress.php:803
|
132 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
133 |
-
msgstr "Inlatura versinea WordPress in toate zonele, inclusiv in flux, mai putin in zona de administrare"
|
134 |
-
|
135 |
-
#@ secure_wp
|
136 |
-
#: secure-wordpress.php:809
|
137 |
-
msgid "WordPress Version in Backend"
|
138 |
-
msgstr "Versiunea WordPress din spate"
|
139 |
-
|
140 |
-
#@ secure_wp
|
141 |
-
#: secure-wordpress.php:813
|
142 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
143 |
-
msgstr "Inlatura versiunea WordPress din zona de administrare pentru utilizatorii fara drepturi de administrator. Afiseaza versiunea WordPress a blog-ului tau doar pentru utilizatorii care au dreptul sa editeze plugin-uri."
|
144 |
-
|
145 |
-
#@ secure_wp
|
146 |
-
#: secure-wordpress.php:819
|
147 |
-
msgid "index.php"
|
148 |
-
msgstr "index.php"
|
149 |
-
|
150 |
-
#@ secure_wp
|
151 |
-
#: secure-wordpress.php:823
|
152 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
153 |
-
msgstr "creaza un fisier <code>index.php</code> in <code>/plugins/</code> si <code>/themes/</code> pentru a preveni afisarea continutului directoarelor."
|
154 |
-
|
155 |
-
#@ secure_wp
|
156 |
-
#: secure-wordpress.php:829
|
157 |
-
msgid "Really Simple Discovery"
|
158 |
-
msgstr "Really Simple Discovery"
|
159 |
-
|
160 |
-
#@ secure_wp
|
161 |
-
#: secure-wordpress.php:833
|
162 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
163 |
-
msgstr "Sterge link-ul Really Simple Discovery din <code>wp_head</code> al paginii principale"
|
164 |
-
|
165 |
-
#@ secure_wp
|
166 |
-
#: secure-wordpress.php:839
|
167 |
-
msgid "Windows Live Writer"
|
168 |
-
msgstr "Windows Live Writer"
|
169 |
-
|
170 |
-
#@ secure_wp
|
171 |
-
#: secure-wordpress.php:843
|
172 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
173 |
-
msgstr "Sterge link-ul Windows Live Writer din <code>wp_head</code> al paginii principale"
|
174 |
-
|
175 |
-
#@ secure_wp
|
176 |
-
#: secure-wordpress.php:849
|
177 |
-
msgid "Core Update"
|
178 |
-
msgstr "Actualizare nucleu"
|
179 |
-
|
180 |
-
#@ secure_wp
|
181 |
-
#: secure-wordpress.php:853
|
182 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
183 |
-
msgstr "Sterge mesajul de actualizare WordPress pentru utilizatorii fara drepturi de administrare. Afiseaza mesajul de actualizare a versiunii WordPress doar utilizatorilor care au acest drept."
|
184 |
-
|
185 |
-
#@ secure_wp
|
186 |
-
#: secure-wordpress.php:859
|
187 |
-
msgid "Plugin Update"
|
188 |
-
msgstr "Actualizare plugin"
|
189 |
-
|
190 |
-
#@ secure_wp
|
191 |
-
#: secure-wordpress.php:863
|
192 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
193 |
-
msgstr "Sterge mesajul de actualizare plugin pentru utilizatorii fara drepturi de administrare. Afiseaza mesajul de actualizare a versiunii pluginului doar utilizatorilor care au acest drept."
|
194 |
-
|
195 |
-
#@ secure_wp
|
196 |
-
#: secure-wordpress.php:870
|
197 |
-
msgid "Theme Update"
|
198 |
-
msgstr "Actualizare tema"
|
199 |
-
|
200 |
-
#@ secure_wp
|
201 |
-
#: secure-wordpress.php:874
|
202 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
203 |
-
msgstr "Inlatura actualizarea temei pentru utilizatorii fara drepturi de administrare. Afiseaza mesajul de actualizare a versiunii temei doar utilizatorilor care au acest drept."
|
204 |
-
|
205 |
-
#@ secure_wp
|
206 |
-
#: secure-wordpress.php:891
|
207 |
-
msgid "Block bad queries"
|
208 |
-
msgstr "Blocheaza interogarile negative"
|
209 |
-
|
210 |
-
#@ secure_wp
|
211 |
-
#: secure-wordpress.php:895
|
212 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
213 |
-
msgstr "Protejeaza WordPress impotriva cererilor URL malitioase, vezi mai multe informatii in <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"citeste acest articol\" >articolul lui Jeff Starr</a>"
|
214 |
-
|
215 |
-
#@ secure_wp
|
216 |
-
#: secure-wordpress.php:903
|
217 |
-
msgid "Save Changes"
|
218 |
-
msgstr "Salveaza modificarile"
|
219 |
-
|
220 |
-
#@ secure_wp
|
221 |
-
#: secure-wordpress.php:915
|
222 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
223 |
-
msgstr "Valideaza-ti site-ul cu scanarea gratuita de la www.sitesecuritymonitor.com"
|
224 |
-
|
225 |
-
#@ secure_wp
|
226 |
-
#: secure-wordpress.php:918
|
227 |
-
msgid "Take us for a Test Drive - Free Scan"
|
228 |
-
msgstr "Incearca un drive test - Scanare gratuita"
|
229 |
-
|
230 |
-
#@ secure_wp
|
231 |
-
#: secure-wordpress.php:919
|
232 |
-
msgid "We understand you may have questions:"
|
233 |
-
msgstr "Intelegem ca mai ai intrebari:"
|
234 |
-
|
235 |
-
#@ secure_wp
|
236 |
-
#: secure-wordpress.php:920
|
237 |
-
msgid "What does this do for me?"
|
238 |
-
msgstr "Cu ce ma ajuta asta?"
|
239 |
-
|
240 |
-
#@ secure_wp
|
241 |
-
#: secure-wordpress.php:921
|
242 |
-
msgid "Am I really safe? I need to be sure."
|
243 |
-
msgstr "Sunt cu adevarat in siguranta? Trebuie sa fiu sigur."
|
244 |
-
|
245 |
-
#@ secure_wp
|
246 |
-
#: secure-wordpress.php:922
|
247 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
248 |
-
msgstr "Stai linistit, Site Security Monitor te protejeaza."
|
249 |
-
|
250 |
-
#@ secure_wp
|
251 |
-
#: secure-wordpress.php:924
|
252 |
-
msgid "FREE scan looks for malware"
|
253 |
-
msgstr "Scanarea gratuita cauta dupa vulnerabilitati"
|
254 |
-
|
255 |
-
#@ secure_wp
|
256 |
-
#: secure-wordpress.php:925
|
257 |
-
msgid "FREE report of website vulnerabilities found"
|
258 |
-
msgstr "Raport gratuit al vulnerabilitatilor gasite"
|
259 |
-
|
260 |
-
#@ secure_wp
|
261 |
-
#: secure-wordpress.php:926
|
262 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
263 |
-
msgstr "Fara instalare sau modificare a site-ului tau - scanarea incepe imediat"
|
264 |
-
|
265 |
-
#@ secure_wp
|
266 |
-
#: secure-wordpress.php:928
|
267 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
268 |
-
msgstr "Iti vom trimite un raport detaliat cu privire la vulnerabilitatile site-ului - absolut gratuit. Esti liber sa folosesti acest raport pentru a-ti astupa gaurile, sa dovedesti sefilor ca site-ul este sigur, sau sa arati clientilor ca site-ul pe care il construiesti este securizat!"
|
269 |
-
|
270 |
-
#@ secure_wp
|
271 |
-
#: secure-wordpress.php:929
|
272 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
273 |
-
msgstr "** Bonus: Vei putea sa folosesti Site Security Monitor \"Safe-Seal\" pe site-ul tau dupa scanare - acesta arata lumii ca ai un site securizat!"
|
274 |
-
|
275 |
-
#@ secure_wp
|
276 |
-
#: secure-wordpress.php:931
|
277 |
-
msgid "The form"
|
278 |
-
msgstr "Formularul"
|
279 |
-
|
280 |
-
#@ secure_wp
|
281 |
-
#: secure-wordpress.php:932
|
282 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
283 |
-
msgstr "Foloseste formularul urmator sau foloseste-l pe cel de pe <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">site-ul nostru</a>."
|
284 |
-
|
285 |
-
#@ secure_wp
|
286 |
-
#: secure-wordpress.php:967
|
287 |
-
msgid "Full Name"
|
288 |
-
msgstr "Nume intreg"
|
289 |
-
|
290 |
-
#@ secure_wp
|
291 |
-
#: secure-wordpress.php:970
|
292 |
-
#: secure-wordpress.php:978
|
293 |
-
#: secure-wordpress.php:986
|
294 |
-
#: secure-wordpress.php:994
|
295 |
-
#: secure-wordpress.php:1010
|
296 |
-
msgid "*required"
|
297 |
-
msgstr "*Obligatoriu"
|
298 |
-
|
299 |
-
#@ secure_wp
|
300 |
-
#: secure-wordpress.php:975
|
301 |
-
msgid "eMail Adress"
|
302 |
-
msgstr "Adresa email"
|
303 |
-
|
304 |
-
#@ secure_wp
|
305 |
-
#: secure-wordpress.php:978
|
306 |
-
msgid ", eMail Address must match domain name"
|
307 |
-
msgstr ", Adresa de email trebuie sa fie in acelasi domeniu cu site-ul"
|
308 |
-
|
309 |
-
#@ secure_wp
|
310 |
-
#: secure-wordpress.php:983
|
311 |
-
msgid "Website"
|
312 |
-
msgstr "Website"
|
313 |
-
|
314 |
-
#@ secure_wp
|
315 |
-
#: secure-wordpress.php:991
|
316 |
-
msgid "Phone"
|
317 |
-
msgstr "Telefon"
|
318 |
-
|
319 |
-
#@ secure_wp
|
320 |
-
#: secure-wordpress.php:999
|
321 |
-
msgid "Yes, I need help!"
|
322 |
-
msgstr "DA, am nevoie de ajutor!"
|
323 |
-
|
324 |
-
#@ secure_wp
|
325 |
-
#: secure-wordpress.php:1002
|
326 |
-
msgid "Call me"
|
327 |
-
msgstr "Suna-ma"
|
328 |
-
|
329 |
-
#@ secure_wp
|
330 |
-
#: secure-wordpress.php:1007
|
331 |
-
msgid "Terms and Conditions"
|
332 |
-
msgstr "Termeni si conditii"
|
333 |
-
|
334 |
-
#@ secure_wp
|
335 |
-
#: secure-wordpress.php:1010
|
336 |
-
msgid ", I accept"
|
337 |
-
msgstr ", Accept"
|
338 |
-
|
339 |
-
#@ secure_wp
|
340 |
-
#: secure-wordpress.php:1017
|
341 |
-
msgid "Get my Free Web Scan"
|
342 |
-
msgstr "Incearca Scanarea Web Gratuita"
|
343 |
-
|
344 |
-
#@ secure_wp
|
345 |
-
#: secure-wordpress.php:1028
|
346 |
-
msgid "Safe Seal"
|
347 |
-
msgstr "Safe Seal"
|
348 |
-
|
349 |
-
#@ secure_wp
|
350 |
-
#: secure-wordpress.php:1058
|
351 |
-
msgid "Color"
|
352 |
-
msgstr "Culoare"
|
353 |
-
|
354 |
-
#@ secure_wp
|
355 |
-
#: secure-wordpress.php:1062
|
356 |
-
msgid "Green"
|
357 |
-
msgstr "Verde"
|
358 |
-
|
359 |
-
#@ secure_wp
|
360 |
-
#: secure-wordpress.php:1063
|
361 |
-
msgid "Blue"
|
362 |
-
msgstr "Albastru"
|
363 |
-
|
364 |
-
#@ secure_wp
|
365 |
-
#: secure-wordpress.php:1064
|
366 |
-
msgid "Red"
|
367 |
-
msgstr "Rosu"
|
368 |
-
|
369 |
-
#@ secure_wp
|
370 |
-
#: secure-wordpress.php:1065
|
371 |
-
msgid "Brown"
|
372 |
-
msgstr "Maro"
|
373 |
-
|
374 |
-
#@ secure_wp
|
375 |
-
#: secure-wordpress.php:1066
|
376 |
-
msgid "Gray"
|
377 |
-
msgstr "Gri"
|
378 |
-
|
379 |
-
#@ secure_wp
|
380 |
-
#: secure-wordpress.php:1075
|
381 |
-
msgid "Text"
|
382 |
-
msgstr "Text"
|
383 |
-
|
384 |
-
#@ secure_wp
|
385 |
-
#: secure-wordpress.php:1079
|
386 |
-
msgid "Protected"
|
387 |
-
msgstr "Protejat"
|
388 |
-
|
389 |
-
#@ secure_wp
|
390 |
-
#: secure-wordpress.php:1080
|
391 |
-
msgid "Secured"
|
392 |
-
msgstr "Securizat"
|
393 |
-
|
394 |
-
#@ secure_wp
|
395 |
-
#: secure-wordpress.php:1081
|
396 |
-
msgid "Scanned"
|
397 |
-
msgstr "Scanat"
|
398 |
-
|
399 |
-
#@ secure_wp
|
400 |
-
#: secure-wordpress.php:1082
|
401 |
-
msgid "Protected by"
|
402 |
-
msgstr "Protejat de"
|
403 |
-
|
404 |
-
#@ secure_wp
|
405 |
-
#: secure-wordpress.php:1088
|
406 |
-
msgid "Orientation"
|
407 |
-
msgstr "Orientare"
|
408 |
-
|
409 |
-
#@ secure_wp
|
410 |
-
#: secure-wordpress.php:1092
|
411 |
-
msgid "Horizontal"
|
412 |
-
msgstr "Orizontal"
|
413 |
-
|
414 |
-
#@ secure_wp
|
415 |
-
#: secure-wordpress.php:1093
|
416 |
-
msgid "Vertical"
|
417 |
-
msgstr "Vertical"
|
418 |
-
|
419 |
-
#@ secure_wp
|
420 |
-
#: secure-wordpress.php:1099
|
421 |
-
msgid "Image border"
|
422 |
-
msgstr "Chenar imagine"
|
423 |
-
|
424 |
-
#@ secure_wp
|
425 |
-
#: secure-wordpress.php:1107
|
426 |
-
msgid "Language"
|
427 |
-
msgstr "Limba"
|
428 |
-
|
429 |
-
#@ secure_wp
|
430 |
-
#: secure-wordpress.php:1111
|
431 |
-
msgid "English (US)"
|
432 |
-
msgstr "Engleza (US)"
|
433 |
-
|
434 |
-
#@ secure_wp
|
435 |
-
#: secure-wordpress.php:1112
|
436 |
-
msgid "English (UK)"
|
437 |
-
msgstr "Engleza (UK)"
|
438 |
-
|
439 |
-
#@ secure_wp
|
440 |
-
#: secure-wordpress.php:1113
|
441 |
-
msgid "Spanish"
|
442 |
-
msgstr "Spaniola"
|
443 |
-
|
444 |
-
#@ secure_wp
|
445 |
-
#: secure-wordpress.php:1114
|
446 |
-
msgid "German"
|
447 |
-
msgstr "Germana"
|
448 |
-
|
449 |
-
#@ secure_wp
|
450 |
-
#: secure-wordpress.php:1115
|
451 |
-
msgid "Italian"
|
452 |
-
msgstr "Italiana"
|
453 |
-
|
454 |
-
#@ secure_wp
|
455 |
-
#: secure-wordpress.php:1116
|
456 |
-
msgid "Japanese"
|
457 |
-
msgstr "Japoneza"
|
458 |
-
|
459 |
-
#@ secure_wp
|
460 |
-
#: secure-wordpress.php:1117
|
461 |
-
msgid "Chinese (Simplified)"
|
462 |
-
msgstr "Chineza (Simpla)"
|
463 |
-
|
464 |
-
#@ secure_wp
|
465 |
-
#: secure-wordpress.php:1118
|
466 |
-
msgid "Chinese (Traditional)"
|
467 |
-
msgstr "Chineza (Traditionala)"
|
468 |
-
|
469 |
-
#@ secure_wp
|
470 |
-
#: secure-wordpress.php:1127
|
471 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
472 |
-
msgstr "Acesta este codul generat pentru tine. Plaseaza-l pe site-ul tau (ca widget html) pentru a demonstra ca esti protejat."
|
473 |
-
|
474 |
-
#@ secure_wp
|
475 |
-
#: secure-wordpress.php:1142
|
476 |
-
msgid "Clear Options"
|
477 |
-
msgstr "Curata optiunile"
|
478 |
-
|
479 |
-
#@ secure_wp
|
480 |
-
#: secure-wordpress.php:1145
|
481 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
482 |
-
msgstr "Apasa acest buton pentru a sterge optiunile acestui plugin. Dezactivand plugin-ul Secure Wordpress, sterge orice date care au fost create de acesta."
|
483 |
-
|
484 |
-
#@ secure_wp
|
485 |
-
#: secure-wordpress.php:1150
|
486 |
-
msgid "Delete Options"
|
487 |
-
msgstr "Sterge optiunile"
|
488 |
-
|
489 |
-
#@ secure_wp
|
490 |
-
#. translators: plugin header field 'PluginURI'
|
491 |
-
#: secure-wordpress.php:0
|
492 |
-
msgid "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
493 |
-
msgstr "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
494 |
-
|
495 |
-
#@ secure_wp
|
496 |
-
#. translators: plugin header field 'Author'
|
497 |
-
#: secure-wordpress.php:0
|
498 |
-
msgid "jremillard"
|
499 |
-
msgstr "jremillard"
|
500 |
-
|
501 |
-
#@ secure_wp
|
502 |
-
#. translators: plugin header field 'AuthorURI'
|
503 |
-
#: secure-wordpress.php:0
|
504 |
-
msgid "http://www.sitesecuritymonitor.com/"
|
505 |
-
msgstr "http://www.sitesecuritymonitor.com/"
|
506 |
-
|
507 |
-
#@ secure_wp
|
508 |
-
#: secure-wordpress.php:1031
|
509 |
-
msgid "Thankyou for using our plugin! You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
510 |
-
msgstr "Iti multumim pentru ca folosesti plugin-ul nostru! Esti liber sa folosesti scanarea de mai jos (genereaza format HTML pentru a putea copia sau lipi mai usor) in blog-ul tau. Acest sigiliu nu-ti ofera servicii de scanare, pur si simplu iti ofera securitatea de baza a blog-ului WordPress - recomandata de comunitate si din propria experienta a clientilor nostri.<br/>Daca doriti servicii complete de scanare a vulnerabilitatilor WordPress, viziteaza <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\"> pagina noastra principala aici ...</a>"
|
511 |
-
|
512 |
-
#@ secure_wp
|
513 |
-
#: secure-wordpress.php:1126
|
514 |
-
msgid "Source"
|
515 |
-
msgstr "Sursa"
|
516 |
-
|
517 |
-
#@ secure_wp
|
518 |
-
#. translators: plugin header field 'Version'
|
519 |
-
#: secure-wordpress.php:0
|
520 |
-
msgid "1.0.5"
|
521 |
-
msgstr "1.0.5"
|
522 |
-
|
523 |
-
#@ secure_wp
|
524 |
-
#: secure-wordpress.php:881
|
525 |
-
msgid "WP Version on Scripts/Styles"
|
526 |
-
msgstr "Versiune WordPress in scripturi/stiluri"
|
527 |
-
|
528 |
-
#@ secure_wp
|
529 |
-
#: secure-wordpress.php:885
|
530 |
-
msgid "Removes version of WordPress on the url form scripts and stylesheets only on frontend."
|
531 |
-
msgstr "Sterge versiunea Wordpress din adresele URL ale scripturilor js si stilurilor css doar de pe prima pagina."
|
532 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-ru_RU.mo
DELETED
Binary file
|
languages/secure_wp-ru_RU.po
DELETED
@@ -1,237 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2009-06-22 12:29+0100\n"
|
6 |
-
"PO-Revision-Date: 2009-10-27 15:57+0300\n"
|
7 |
-
"Last-Translator: Dmitriy Donchenko <dmitriy.donchenko@gmail.com>\n"
|
8 |
-
"Language-Team: wpp.pp.ua <wordpress.ua@gmail.com>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: Ukrainian\n"
|
14 |
-
"X-Poedit-Country: UKRAINE\n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
17 |
-
"X-Poedit-Basepath: ../\n"
|
18 |
-
"X-Poedit-Bookmarks: \n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
"X-Textdomain-Support: yes"
|
21 |
-
|
22 |
-
#: secure-wordpress.php:330
|
23 |
-
msgid "Settings"
|
24 |
-
msgstr "Настройки"
|
25 |
-
|
26 |
-
#: secure-wordpress.php:359
|
27 |
-
#: secure-wordpress.php:402
|
28 |
-
#@ secure_wp
|
29 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
30 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Документация</a>"
|
31 |
-
|
32 |
-
#: secure-wordpress.php:382
|
33 |
-
#@ secure_wp
|
34 |
-
msgid "Options update."
|
35 |
-
msgstr "Настройки обновлены"
|
36 |
-
|
37 |
-
#: secure-wordpress.php:384
|
38 |
-
#@ secure_wp
|
39 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
40 |
-
msgstr "Все записи из базы данных удалены. Теперь отключите плагин."
|
41 |
-
|
42 |
-
#: secure-wordpress.php:398
|
43 |
-
#: secure-wordpress.php:405
|
44 |
-
#@ secure_wp
|
45 |
-
msgid "Secure WP"
|
46 |
-
msgstr "Безопасный WP"
|
47 |
-
|
48 |
-
#: secure-wordpress.php:401
|
49 |
-
#: secure-wordpress.php:641
|
50 |
-
#@ secure_wp
|
51 |
-
msgid "Secure WordPress"
|
52 |
-
msgstr "Безопасный WP"
|
53 |
-
|
54 |
-
#: secure-wordpress.php:425
|
55 |
-
msgid "Version"
|
56 |
-
msgstr "Версия"
|
57 |
-
|
58 |
-
#: secure-wordpress.php:425
|
59 |
-
#@ secure_wp
|
60 |
-
msgid "History"
|
61 |
-
msgstr "История"
|
62 |
-
|
63 |
-
#: secure-wordpress.php:425
|
64 |
-
msgid "Author"
|
65 |
-
msgstr "Автор"
|
66 |
-
|
67 |
-
#: secure-wordpress.php:568
|
68 |
-
#@ secure_wp
|
69 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
70 |
-
msgstr "Настройки не сохранены, у вас нет доступа для этого!"
|
71 |
-
|
72 |
-
#: secure-wordpress.php:588
|
73 |
-
#@ secure_wp
|
74 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
75 |
-
msgstr "Настройки не удалены - у вас нет доступа для этого."
|
76 |
-
|
77 |
-
#: secure-wordpress.php:596
|
78 |
-
#@ secure_wp
|
79 |
-
msgid "Entries was not delleted - check the checkbox!"
|
80 |
-
msgstr "Настройки не удалены - проверьте галочку!"
|
81 |
-
|
82 |
-
#: secure-wordpress.php:616
|
83 |
-
#@ secure_wp
|
84 |
-
msgid "All entries in the database was cleared."
|
85 |
-
msgstr "Все настройки в базе данных удалены."
|
86 |
-
|
87 |
-
#: secure-wordpress.php:620
|
88 |
-
#@ secure_wp
|
89 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
90 |
-
msgstr "Настройки не удалены - проверьте галочку или у вас нет привелегий для этого"
|
91 |
-
|
92 |
-
#: secure-wordpress.php:646
|
93 |
-
#: secure-wordpress.php:771
|
94 |
-
#: secure-wordpress.php:791
|
95 |
-
msgid "Click to toggle"
|
96 |
-
msgstr "Нажмите для переключения"
|
97 |
-
|
98 |
-
#: secure-wordpress.php:647
|
99 |
-
#@ secure_wp
|
100 |
-
msgid "Configuration"
|
101 |
-
msgstr "Настройки"
|
102 |
-
|
103 |
-
#: secure-wordpress.php:657
|
104 |
-
#@ secure_wp
|
105 |
-
msgid "Error-Messages"
|
106 |
-
msgstr "Сообщения о ошибках"
|
107 |
-
|
108 |
-
#: secure-wordpress.php:661
|
109 |
-
#@ secure_wp
|
110 |
-
msgid "deactivates tooltip and error message at login of WordPress"
|
111 |
-
msgstr "отключает подсказки и сообщения о ошибках при входе в Wordpress"
|
112 |
-
|
113 |
-
#: secure-wordpress.php:667
|
114 |
-
#@ secure_wp
|
115 |
-
msgid "WordPress Version"
|
116 |
-
msgstr "Версия Wordpress"
|
117 |
-
|
118 |
-
#: secure-wordpress.php:671
|
119 |
-
#@ secure_wp
|
120 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
121 |
-
msgstr "Скрывает версию Wordpress везде, кроме панели администрирования"
|
122 |
-
|
123 |
-
#: secure-wordpress.php:697
|
124 |
-
#@ secure_wp
|
125 |
-
msgid "Really Simple Discovery"
|
126 |
-
msgstr "Really Simple Discovery"
|
127 |
-
|
128 |
-
#: secure-wordpress.php:701
|
129 |
-
#@ secure_wp
|
130 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
131 |
-
msgstr "Скрыть ссылку RSD ссылку со страниц блога"
|
132 |
-
|
133 |
-
#: secure-wordpress.php:707
|
134 |
-
#@ secure_wp
|
135 |
-
msgid "Windows Live Writer"
|
136 |
-
msgstr "Windows Live Writer"
|
137 |
-
|
138 |
-
#: secure-wordpress.php:711
|
139 |
-
#@ secure_wp
|
140 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
141 |
-
msgstr "Скрыть Windows Live Writer ссылку со страниц блога"
|
142 |
-
|
143 |
-
#: secure-wordpress.php:717
|
144 |
-
#@ secure_wp
|
145 |
-
msgid "Core Update"
|
146 |
-
msgstr "Обновление ядра"
|
147 |
-
|
148 |
-
#: secure-wordpress.php:721
|
149 |
-
#@ secure_wp
|
150 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
151 |
-
msgstr "Скрывает сообщение о новой версии Wordpress, от пользователей которые не имеют прав администратора в блоге."
|
152 |
-
|
153 |
-
#: secure-wordpress.php:727
|
154 |
-
#@ secure_wp
|
155 |
-
msgid "Plugin Update"
|
156 |
-
msgstr "Обновление плагинов"
|
157 |
-
|
158 |
-
#: secure-wordpress.php:731
|
159 |
-
#@ secure_wp
|
160 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
161 |
-
msgstr "Скрывает сообщение о обновлении плагинов, от пользователей которые не имеют прав администратора в блоге."
|
162 |
-
|
163 |
-
#: secure-wordpress.php:738
|
164 |
-
#@ secure_wp
|
165 |
-
msgid "Theme Update"
|
166 |
-
msgstr "Обновление шаблонов"
|
167 |
-
|
168 |
-
#: secure-wordpress.php:742
|
169 |
-
#@ secure_wp
|
170 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
171 |
-
msgstr "Скрывает сообщение о доступном обновлении шаблонов, от пользователей которые не имеют прав администратора блога."
|
172 |
-
|
173 |
-
#: secure-wordpress.php:749
|
174 |
-
#@ secure_wp
|
175 |
-
msgid "WP Scanner"
|
176 |
-
msgstr "Сканер WP"
|
177 |
-
|
178 |
-
#: secure-wordpress.php:753
|
179 |
-
#@ secure_wp
|
180 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
181 |
-
msgstr "WordPress scanner бесплатный ресурс для администраторов блогов, который помогает повысить уровень безопасности блога. Для запуска wp-scanner поставьте галочку и добавьте <code><!-- wpscanner --></code> в шаблон блога. После этого зайдите на сайт <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> и просканируйте сайт."
|
182 |
-
|
183 |
-
#: secure-wordpress.php:761
|
184 |
-
#@ secure_wp
|
185 |
-
msgid "Save Changes"
|
186 |
-
msgstr "Сохранить изменения"
|
187 |
-
|
188 |
-
#: secure-wordpress.php:772
|
189 |
-
#@ secure_wp
|
190 |
-
msgid "Clear Options"
|
191 |
-
msgstr "Очистить настройки"
|
192 |
-
|
193 |
-
#: secure-wordpress.php:775
|
194 |
-
#@ secure_wp
|
195 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
196 |
-
msgstr "Нажмите на кнопку для удаления настроек этого плагина. Отключение плагина Secure WordPress удалит все данные которые были созданы плагином."
|
197 |
-
|
198 |
-
#: secure-wordpress.php:780
|
199 |
-
#@ secure_wp
|
200 |
-
msgid "Delete Options"
|
201 |
-
msgstr "Удалить настройки"
|
202 |
-
|
203 |
-
#: secure-wordpress.php:792
|
204 |
-
#@ secure_wp
|
205 |
-
msgid "About the plugin"
|
206 |
-
msgstr "О плагине"
|
207 |
-
|
208 |
-
#: secure-wordpress.php:805
|
209 |
-
#@ secure_wp
|
210 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
211 |
-
msgstr "Полезная информация: Посетите <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">страницу плагина</a> для информации о плагине или для получения обновления плагина. Перевод на русский язык - <a href=\"http://blogproblog.com\">Дмитрий Донченко</a>. "
|
212 |
-
|
213 |
-
#: secure-wordpress.php:805
|
214 |
-
#@ secure_wp
|
215 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
216 |
-
msgstr "Хотите поблагодарить? Посмотрите мой <href=\"http://bueltge.de/wunschliste/\">список подарков</a>."
|
217 |
-
|
218 |
-
#: secure-wordpress.php:691
|
219 |
-
#@ secure_wp
|
220 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
221 |
-
msgstr "создает <code>index.php</code> файл в <code>/plugins/</code> и <code>/themes/</code>, чтобы скрыть файлы в папках."
|
222 |
-
|
223 |
-
#: secure-wordpress.php:677
|
224 |
-
#@ secure_wp
|
225 |
-
msgid "WordPress Version in Backend"
|
226 |
-
msgstr ""
|
227 |
-
|
228 |
-
#: secure-wordpress.php:687
|
229 |
-
#@ secure_wp
|
230 |
-
msgid "index.php"
|
231 |
-
msgstr ""
|
232 |
-
|
233 |
-
#: secure-wordpress.php:681
|
234 |
-
#@ secure_wp
|
235 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
236 |
-
msgstr ""
|
237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-tr_TR.mo
DELETED
Binary file
|
languages/secure_wp-tr_TR.po
DELETED
@@ -1,530 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-05-16 12:34+0100\n"
|
6 |
-
"PO-Revision-Date: 2011-07-30 23:40+0200\n"
|
7 |
-
"Last-Translator: \n"
|
8 |
-
"Language-Team: Nightmare17 <kdrcskn@windowslive.com>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
14 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
15 |
-
"X-Poedit-Basepath: ../\n"
|
16 |
-
"X-Textdomain-Support: yes\n"
|
17 |
-
"X-Poedit-SearchPath-0: .\n"
|
18 |
-
|
19 |
-
# @ secure_wp
|
20 |
-
#. translators: plugin header field 'Description'
|
21 |
-
#: secure-wordpress.php:0
|
22 |
-
msgid "Little basics for secure your WordPress-installation."
|
23 |
-
msgstr "Wordpress kurullumu hakkında basit tavsiyeler."
|
24 |
-
|
25 |
-
# @ default
|
26 |
-
#: secure-wordpress.php:370
|
27 |
-
msgid "Settings"
|
28 |
-
msgstr "Ayarlar"
|
29 |
-
|
30 |
-
# @ secure_wp
|
31 |
-
#: secure-wordpress.php:399
|
32 |
-
#: secure-wordpress.php:446
|
33 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
34 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Dökümanlar</a>"
|
35 |
-
|
36 |
-
# @ secure_wp
|
37 |
-
#: secure-wordpress.php:422
|
38 |
-
msgid "Options update."
|
39 |
-
msgstr "Ayarlar güncellendi"
|
40 |
-
|
41 |
-
# @ secure_wp
|
42 |
-
#: secure-wordpress.php:424
|
43 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
44 |
-
msgstr "Eklentiye ait tüm veriler temizlendi. Şimdi eklentiyi pasifleştirebilirsiniz."
|
45 |
-
|
46 |
-
# @ secure_wp
|
47 |
-
#: secure-wordpress.php:438
|
48 |
-
#: secure-wordpress.php:449
|
49 |
-
msgid "Secure WP"
|
50 |
-
msgstr "Güvenli WP"
|
51 |
-
|
52 |
-
# @ secure_wp
|
53 |
-
#. translators: plugin header field 'Name'
|
54 |
-
#: secure-wordpress.php:0
|
55 |
-
#: secure-wordpress.php:445
|
56 |
-
#: secure-wordpress.php:773
|
57 |
-
msgid "Secure WordPress"
|
58 |
-
msgstr "Güvenli WordPress"
|
59 |
-
|
60 |
-
# @ default
|
61 |
-
#: secure-wordpress.php:469
|
62 |
-
msgid "Version"
|
63 |
-
msgstr "Sürüm"
|
64 |
-
|
65 |
-
# @ secure_wp
|
66 |
-
#: secure-wordpress.php:469
|
67 |
-
msgid "History"
|
68 |
-
msgstr "Geçmiş"
|
69 |
-
|
70 |
-
# @ default
|
71 |
-
#: secure-wordpress.php:469
|
72 |
-
msgid "Author"
|
73 |
-
msgstr "Yazar"
|
74 |
-
|
75 |
-
# @ secure_wp
|
76 |
-
#: secure-wordpress.php:698
|
77 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
78 |
-
msgstr "Ayarlar ggüncelleştirilemedi - bunu yapmak için yetkiniz yok!"
|
79 |
-
|
80 |
-
# @ secure_wp
|
81 |
-
#: secure-wordpress.php:718
|
82 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
83 |
-
msgstr "Veriler silinmedi - bunu yapmak için yetkiniz yok!"
|
84 |
-
|
85 |
-
# @ secure_wp
|
86 |
-
#: secure-wordpress.php:726
|
87 |
-
msgid "Entries were not deleted - check the checkbox!"
|
88 |
-
msgstr "Veriler silinmedi - inceleme kutusunu inceleyin!"
|
89 |
-
|
90 |
-
# @ secure_wp
|
91 |
-
#: secure-wordpress.php:746
|
92 |
-
msgid "All entries in the database were cleared."
|
93 |
-
msgstr "Veritabanındaki tüm girdiler temizlendi."
|
94 |
-
|
95 |
-
# @ secure_wp
|
96 |
-
#: secure-wordpress.php:750
|
97 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
98 |
-
msgstr "Girdiler temizlenmedi - inceleme kutusunu inceleyin veya bunu yapmak için yetkiniz yok!"
|
99 |
-
|
100 |
-
# @ default
|
101 |
-
#: secure-wordpress.php:778
|
102 |
-
#: secure-wordpress.php:914
|
103 |
-
#: secure-wordpress.php:1027
|
104 |
-
#: secure-wordpress.php:1141
|
105 |
-
msgid "Click to toggle"
|
106 |
-
msgstr "Geçiş için tıklayın"
|
107 |
-
|
108 |
-
# @ secure_wp
|
109 |
-
#: secure-wordpress.php:779
|
110 |
-
msgid "Configuration"
|
111 |
-
msgstr "Yapılalndırma"
|
112 |
-
|
113 |
-
# @ secure_wp
|
114 |
-
#: secure-wordpress.php:789
|
115 |
-
msgid "Error-Messages"
|
116 |
-
msgstr "Hata-Mesajları"
|
117 |
-
|
118 |
-
# @ secure_wp
|
119 |
-
#: secure-wordpress.php:793
|
120 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
121 |
-
msgstr "Wordpress giriş ekranındaki hata mesajını pasif hale getirir"
|
122 |
-
|
123 |
-
# @ secure_wp
|
124 |
-
#: secure-wordpress.php:799
|
125 |
-
msgid "WordPress Version"
|
126 |
-
msgstr "WordPress Sürümü"
|
127 |
-
|
128 |
-
# @ secure_wp
|
129 |
-
#: secure-wordpress.php:803
|
130 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
131 |
-
msgstr "Wordpress sürüm bilgilerini beslemeler de dahil olmak üzere her yerden siler, yöneticiler için değil"
|
132 |
-
|
133 |
-
# @ secure_wp
|
134 |
-
#: secure-wordpress.php:809
|
135 |
-
msgid "WordPress Version in Backend"
|
136 |
-
msgstr "Yönetim Panelinde WordPress Sürümü"
|
137 |
-
|
138 |
-
# @ secure_wp
|
139 |
-
#: secure-wordpress.php:813
|
140 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
141 |
-
msgstr "önetici panelindeki WordPress sürüm bilgilerini yönetici olmayanlar için gizler. WordPress sürüm bilgilerini sadece eklentileri yönetme izni olan kulanıcılar görebilir."
|
142 |
-
|
143 |
-
# @ secure_wp
|
144 |
-
#: secure-wordpress.php:819
|
145 |
-
msgid "index.php"
|
146 |
-
msgstr "index.php"
|
147 |
-
|
148 |
-
# @ secure_wp
|
149 |
-
#: secure-wordpress.php:823
|
150 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
151 |
-
msgstr "Dizin listelemeyi engellemek için <code>/plugins/</code> ve <code>/themes/</code> dizinlerinde <code>index.php</code> dosyası oluşturur"
|
152 |
-
|
153 |
-
# @ secure_wp
|
154 |
-
#: secure-wordpress.php:829
|
155 |
-
msgid "Really Simple Discovery"
|
156 |
-
msgstr "Really Simple Discovery"
|
157 |
-
|
158 |
-
# @ secure_wp
|
159 |
-
#: secure-wordpress.php:833
|
160 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
161 |
-
msgstr "Really Simple Discovery bağlantısını <code>wp_head</code> böümünden kaldırır"
|
162 |
-
|
163 |
-
# @ secure_wp
|
164 |
-
#: secure-wordpress.php:839
|
165 |
-
msgid "Windows Live Writer"
|
166 |
-
msgstr "Windows Live Yazar"
|
167 |
-
|
168 |
-
# @ secure_wp
|
169 |
-
#: secure-wordpress.php:843
|
170 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
171 |
-
msgstr "Windows Live Writer bağlantısını <code>wp_head</code> bölümünden kaldırır"
|
172 |
-
|
173 |
-
# @ secure_wp
|
174 |
-
#: secure-wordpress.php:849
|
175 |
-
msgid "Core Update"
|
176 |
-
msgstr "Çekirdek Güncelleme"
|
177 |
-
|
178 |
-
# @ secure_wp
|
179 |
-
#: secure-wordpress.php:853
|
180 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
181 |
-
msgstr "WordPress çekirdek güncellemesini yönetici yetkisi olmayanlar için kaldırır. Uyarıyı sadece gerekli yetkisi olan kulanıcılar görebilir."
|
182 |
-
|
183 |
-
# @ secure_wp
|
184 |
-
#: secure-wordpress.php:859
|
185 |
-
msgid "Plugin Update"
|
186 |
-
msgstr "Eklenti Güncelleme"
|
187 |
-
|
188 |
-
# @ secure_wp
|
189 |
-
#: secure-wordpress.php:863
|
190 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
191 |
-
msgstr "Eklenti güncellemesini yönetici yetkisi olmayanlar için kaldırır. Eklentinin yeni versiyonu olduğu uyarısını sadece eklenti düzenleme yetkisi olan kullanıcılar görebilir"
|
192 |
-
|
193 |
-
# @ secure_wp
|
194 |
-
#: secure-wordpress.php:870
|
195 |
-
msgid "Theme Update"
|
196 |
-
msgstr "Tema Güncelleme"
|
197 |
-
|
198 |
-
# @ secure_wp
|
199 |
-
#: secure-wordpress.php:874
|
200 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
201 |
-
msgstr "Tema güncellemesini yönetici yetkisi olmayanlar için kaldırır. Temanın yeni versiyonun olduğu uyarısını sadece tema düzenleme yetkisi olan kullanıcılar görebilir"
|
202 |
-
|
203 |
-
# @ secure_wp
|
204 |
-
#: secure-wordpress.php:891
|
205 |
-
msgid "Block bad queries"
|
206 |
-
msgstr "Kötü kodları engelle"
|
207 |
-
|
208 |
-
# @ secure_wp
|
209 |
-
#: secure-wordpress.php:895
|
210 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
211 |
-
msgstr "WordPress sitenizi zararlı adres isteklerine karşı koruyun daha fazla bilgi için <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"bu yazıyı oku\" >Jeff Starr'ın yazısını okuyun</a>"
|
212 |
-
|
213 |
-
# @ secure_wp
|
214 |
-
#: secure-wordpress.php:903
|
215 |
-
msgid "Save Changes"
|
216 |
-
msgstr "Değişiklikleri Kaydet"
|
217 |
-
|
218 |
-
# @ secure_wp
|
219 |
-
#: secure-wordpress.php:915
|
220 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
221 |
-
msgstr "Sitenizi www.sitesecuritymonitor.com sitesinden zararlı taraması yaparak onaylatın"
|
222 |
-
|
223 |
-
# @ secure_wp
|
224 |
-
#: secure-wordpress.php:918
|
225 |
-
msgid "Take us for a Test Drive - Free Scan"
|
226 |
-
msgstr "Test Sürüşüne çıkın - Bedava Tarama"
|
227 |
-
|
228 |
-
# @ secure_wp
|
229 |
-
#: secure-wordpress.php:919
|
230 |
-
msgid "We understand you may have questions:"
|
231 |
-
msgstr "Sorularınız olabileceğini anlıyoruz:"
|
232 |
-
|
233 |
-
# @ secure_wp
|
234 |
-
#: secure-wordpress.php:920
|
235 |
-
msgid "What does this do for me?"
|
236 |
-
msgstr "Bu benim için ne yapar?"
|
237 |
-
|
238 |
-
# @ secure_wp
|
239 |
-
#: secure-wordpress.php:921
|
240 |
-
msgid "Am I really safe? I need to be sure."
|
241 |
-
msgstr "Gerçekten güvende miyim? Emin olmam gerekiyor."
|
242 |
-
|
243 |
-
# @ secure_wp
|
244 |
-
#: secure-wordpress.php:922
|
245 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
246 |
-
msgstr "Arkanıza yaslanın, Site Security Monitoor sizi koruyor."
|
247 |
-
|
248 |
-
# @ secure_wp
|
249 |
-
#: secure-wordpress.php:924
|
250 |
-
msgid "FREE scan looks for malware"
|
251 |
-
msgstr "BEDAVA tarama zararlı yazılım arıyor"
|
252 |
-
|
253 |
-
# @ secure_wp
|
254 |
-
#: secure-wordpress.php:925
|
255 |
-
msgid "FREE report of website vulnerabilities found"
|
256 |
-
msgstr "BEDAVA site raporu site açıkları bulunduğunu belirtiyor."
|
257 |
-
|
258 |
-
# @ secure_wp
|
259 |
-
#: secure-wordpress.php:926
|
260 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
261 |
-
msgstr "Kurulum yok, ayarlayın ve sitenize kurun - tarama anında başlar"
|
262 |
-
|
263 |
-
# @ secure_wp
|
264 |
-
#: secure-wordpress.php:928
|
265 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
266 |
-
msgstr "Biz size detaylı zararlı yazılım ve açık raporunu göndereceğiz - tamamen ÜCRETSİZ. Formu kullaranarak sorunları çözmede, patronunuza temiz olduğunuzu göstermenizde veya müşterilerinize sizin kurduğunuz sitenin güvenli olduğunu göstermede özgürsünüz!"
|
267 |
-
|
268 |
-
# @ secure_wp
|
269 |
-
#: secure-wordpress.php:929
|
270 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
271 |
-
msgstr "** Bonus: Taramadan sonra Site Security Monitor \"Safe-Seal\" (Güvenlik Amblemi) sitenizde kullanılabilir - bu dünyaya sizin zararlı yazılım barındırmadığınız gösterir!."
|
272 |
-
|
273 |
-
# @ secure_wp
|
274 |
-
#: secure-wordpress.php:931
|
275 |
-
msgid "The form"
|
276 |
-
msgstr "Form"
|
277 |
-
|
278 |
-
# @ secure_wp
|
279 |
-
#: secure-wordpress.php:932
|
280 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
281 |
-
msgstr "Takip eden formu veya <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">bizim sitemizdeki</a> kullanın."
|
282 |
-
|
283 |
-
# @ secure_wp
|
284 |
-
#: secure-wordpress.php:967
|
285 |
-
msgid "Full Name"
|
286 |
-
msgstr "Adınız, soyadınız"
|
287 |
-
|
288 |
-
# @ secure_wp
|
289 |
-
#: secure-wordpress.php:970
|
290 |
-
#: secure-wordpress.php:978
|
291 |
-
#: secure-wordpress.php:986
|
292 |
-
#: secure-wordpress.php:994
|
293 |
-
#: secure-wordpress.php:1010
|
294 |
-
msgid "*required"
|
295 |
-
msgstr "*gerekli"
|
296 |
-
|
297 |
-
# @ secure_wp
|
298 |
-
#: secure-wordpress.php:975
|
299 |
-
msgid "eMail Adress"
|
300 |
-
msgstr "E-Posta Adresiniz"
|
301 |
-
|
302 |
-
# @ secure_wp
|
303 |
-
#: secure-wordpress.php:978
|
304 |
-
msgid ", eMail Address must match domain name"
|
305 |
-
msgstr ", e-posta adresiniz domain adı ile eşleşmelidir."
|
306 |
-
|
307 |
-
# @ secure_wp
|
308 |
-
#: secure-wordpress.php:983
|
309 |
-
msgid "Website"
|
310 |
-
msgstr "İnternet Siteniz"
|
311 |
-
|
312 |
-
# @ secure_wp
|
313 |
-
#: secure-wordpress.php:991
|
314 |
-
msgid "Phone"
|
315 |
-
msgstr "Telefon"
|
316 |
-
|
317 |
-
# @ secure_wp
|
318 |
-
#: secure-wordpress.php:999
|
319 |
-
msgid "Yes, I need help!"
|
320 |
-
msgstr "Evet, yardıma ihtiyacım var!"
|
321 |
-
|
322 |
-
# @ secure_wp
|
323 |
-
#: secure-wordpress.php:1002
|
324 |
-
msgid "Call me"
|
325 |
-
msgstr "Beni ara"
|
326 |
-
|
327 |
-
# @ secure_wp
|
328 |
-
#: secure-wordpress.php:1007
|
329 |
-
msgid "Terms and Conditions"
|
330 |
-
msgstr "Hizmet Koşulları ve Şartlar"
|
331 |
-
|
332 |
-
# @ secure_wp
|
333 |
-
#: secure-wordpress.php:1010
|
334 |
-
msgid ", I accept"
|
335 |
-
msgstr ", Kabul ediyorum"
|
336 |
-
|
337 |
-
# @ secure_wp
|
338 |
-
#: secure-wordpress.php:1017
|
339 |
-
msgid "Get my Free Web Scan"
|
340 |
-
msgstr "BEdava web taramasını al"
|
341 |
-
|
342 |
-
# @ secure_wp
|
343 |
-
#: secure-wordpress.php:1028
|
344 |
-
msgid "Safe Seal"
|
345 |
-
msgstr "Güvenlik Amblemi"
|
346 |
-
|
347 |
-
# @ secure_wp
|
348 |
-
#: secure-wordpress.php:1058
|
349 |
-
msgid "Color"
|
350 |
-
msgstr "Renk"
|
351 |
-
|
352 |
-
# @ secure_wp
|
353 |
-
#: secure-wordpress.php:1062
|
354 |
-
msgid "Green"
|
355 |
-
msgstr "Yeşil"
|
356 |
-
|
357 |
-
# @ secure_wp
|
358 |
-
#: secure-wordpress.php:1063
|
359 |
-
msgid "Blue"
|
360 |
-
msgstr "Mavi"
|
361 |
-
|
362 |
-
# @ secure_wp
|
363 |
-
#: secure-wordpress.php:1064
|
364 |
-
msgid "Red"
|
365 |
-
msgstr "Kırmızı"
|
366 |
-
|
367 |
-
# @ secure_wp
|
368 |
-
#: secure-wordpress.php:1065
|
369 |
-
msgid "Brown"
|
370 |
-
msgstr "Kahverengi"
|
371 |
-
|
372 |
-
# @ secure_wp
|
373 |
-
#: secure-wordpress.php:1066
|
374 |
-
msgid "Gray"
|
375 |
-
msgstr "Gri"
|
376 |
-
|
377 |
-
# @ secure_wp
|
378 |
-
#: secure-wordpress.php:1075
|
379 |
-
msgid "Text"
|
380 |
-
msgstr "Yazı"
|
381 |
-
|
382 |
-
# @ secure_wp
|
383 |
-
#: secure-wordpress.php:1079
|
384 |
-
msgid "Protected"
|
385 |
-
msgstr "Korundu"
|
386 |
-
|
387 |
-
# @ secure_wp
|
388 |
-
#: secure-wordpress.php:1080
|
389 |
-
msgid "Secured"
|
390 |
-
msgstr "Güvenceye Alındı"
|
391 |
-
|
392 |
-
# @ secure_wp
|
393 |
-
#: secure-wordpress.php:1081
|
394 |
-
msgid "Scanned"
|
395 |
-
msgstr "Tarandı"
|
396 |
-
|
397 |
-
# @ secure_wp
|
398 |
-
#: secure-wordpress.php:1082
|
399 |
-
msgid "Protected by"
|
400 |
-
msgstr "Koruyan"
|
401 |
-
|
402 |
-
# @ secure_wp
|
403 |
-
#: secure-wordpress.php:1088
|
404 |
-
msgid "Orientation"
|
405 |
-
msgstr "Oryantasyon"
|
406 |
-
|
407 |
-
# @ secure_wp
|
408 |
-
#: secure-wordpress.php:1092
|
409 |
-
msgid "Horizontal"
|
410 |
-
msgstr "Yatay"
|
411 |
-
|
412 |
-
# @ secure_wp
|
413 |
-
#: secure-wordpress.php:1093
|
414 |
-
msgid "Vertical"
|
415 |
-
msgstr "Dikey"
|
416 |
-
|
417 |
-
# @ secure_wp
|
418 |
-
#: secure-wordpress.php:1099
|
419 |
-
msgid "Image border"
|
420 |
-
msgstr "Resim Bordurü"
|
421 |
-
|
422 |
-
# @ secure_wp
|
423 |
-
#: secure-wordpress.php:1107
|
424 |
-
msgid "Language"
|
425 |
-
msgstr "Dil"
|
426 |
-
|
427 |
-
# @ secure_wp
|
428 |
-
#: secure-wordpress.php:1111
|
429 |
-
msgid "English (US)"
|
430 |
-
msgstr "İngilizce (US)"
|
431 |
-
|
432 |
-
# @ secure_wp
|
433 |
-
#: secure-wordpress.php:1112
|
434 |
-
msgid "English (UK)"
|
435 |
-
msgstr "İngilizce (UK)"
|
436 |
-
|
437 |
-
# @ secure_wp
|
438 |
-
#: secure-wordpress.php:1113
|
439 |
-
msgid "Spanish"
|
440 |
-
msgstr "İspanyolca"
|
441 |
-
|
442 |
-
# @ secure_wp
|
443 |
-
#: secure-wordpress.php:1114
|
444 |
-
msgid "German"
|
445 |
-
msgstr "Almanca"
|
446 |
-
|
447 |
-
# @ secure_wp
|
448 |
-
#: secure-wordpress.php:1115
|
449 |
-
msgid "Italian"
|
450 |
-
msgstr "İtalyanca"
|
451 |
-
|
452 |
-
# @ secure_wp
|
453 |
-
#: secure-wordpress.php:1116
|
454 |
-
msgid "Japanese"
|
455 |
-
msgstr "Japonca"
|
456 |
-
|
457 |
-
# @ secure_wp
|
458 |
-
#: secure-wordpress.php:1117
|
459 |
-
msgid "Chinese (Simplified)"
|
460 |
-
msgstr "Çince (Basitleştirilmiş)"
|
461 |
-
|
462 |
-
# @ secure_wp
|
463 |
-
#: secure-wordpress.php:1118
|
464 |
-
msgid "Chinese (Traditional)"
|
465 |
-
msgstr "Çince (Geleneksell)"
|
466 |
-
|
467 |
-
# @ secure_wp
|
468 |
-
#: secure-wordpress.php:1127
|
469 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
470 |
-
msgstr "Oluşturulan kodunuz burada. Bunu internet sitenize (html bileşeni) olarak yerleştirerek korunduğunuzu gösterebilirsiniz."
|
471 |
-
|
472 |
-
# @ secure_wp
|
473 |
-
#: secure-wordpress.php:1142
|
474 |
-
msgid "Clear Options"
|
475 |
-
msgstr "Ayarları Temizle"
|
476 |
-
|
477 |
-
# @ secure_wp
|
478 |
-
#: secure-wordpress.php:1145
|
479 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
480 |
-
msgstr "Bu butona tıklayarak eklenti ayarlarını silebilirsiniz. Güvenli Wordpress eklentisini pasifleştirmek oluşturulmuş hiçbir ayarı silmez."
|
481 |
-
|
482 |
-
# @ secure_wp
|
483 |
-
#: secure-wordpress.php:1150
|
484 |
-
msgid "Delete Options"
|
485 |
-
msgstr "Ayarları Sil"
|
486 |
-
|
487 |
-
# @ secure_wp
|
488 |
-
#. translators: plugin header field 'PluginURI'
|
489 |
-
#: secure-wordpress.php:0
|
490 |
-
msgid "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
491 |
-
msgstr ""
|
492 |
-
|
493 |
-
# @ secure_wp
|
494 |
-
#. translators: plugin header field 'Author'
|
495 |
-
#: secure-wordpress.php:0
|
496 |
-
msgid "jremillard"
|
497 |
-
msgstr ""
|
498 |
-
|
499 |
-
# @ secure_wp
|
500 |
-
#. translators: plugin header field 'AuthorURI'
|
501 |
-
#: secure-wordpress.php:0
|
502 |
-
msgid "http://www.sitesecuritymonitor.com/"
|
503 |
-
msgstr ""
|
504 |
-
|
505 |
-
# @ secure_wp
|
506 |
-
#: secure-wordpress.php:1031
|
507 |
-
msgid "Thankyou for using our plugin! You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
508 |
-
msgstr "Eklentimizi kullandığınız için teşekkürler! Aşağıdaki taramayı yapmakta serbestsiniz (HTML kodunu çıkararak kolayca kopyala-yapıştır ) ,le blogunuza ekleyebilirsiniz.. Bu amblem size tarama servisi vermez -wordpress güvenliği için basit şeyleri yapar - toplum ve müşteri tecrübelerimize dayanarak tavsiye ederiz.<br/>Düzenli olarak açık ve zararlı yazılım tarama testi için, lütfen <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">buradan anasayfanıza gözatın...</a>"
|
509 |
-
|
510 |
-
# @ secure_wp
|
511 |
-
#: secure-wordpress.php:1126
|
512 |
-
msgid "Source"
|
513 |
-
msgstr "Kaynak"
|
514 |
-
|
515 |
-
# @ secure_wp
|
516 |
-
#. translators: plugin header field 'Version'
|
517 |
-
#: secure-wordpress.php:0
|
518 |
-
msgid "1.0.5"
|
519 |
-
msgstr ""
|
520 |
-
|
521 |
-
# @ secure_wp
|
522 |
-
#: secure-wordpress.php:881
|
523 |
-
msgid "WP Version on Scripts/Styles"
|
524 |
-
msgstr "WP Versiyonu Scriptler/Stiller"
|
525 |
-
|
526 |
-
# @ secure_wp
|
527 |
-
#: secure-wordpress.php:885
|
528 |
-
msgid "Removes version of WordPress on the url form scripts and stylesheets only on frontend."
|
529 |
-
msgstr "Sitenin ön kısmındaki Script ve stil dosyalarında WordPress sürüm bilgilerini kaldırır."
|
530 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-uk.mo
DELETED
Binary file
|
languages/secure_wp-uk.po
DELETED
@@ -1,225 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2009-06-22 12:29+0100\n"
|
6 |
-
"PO-Revision-Date: 2009-11-02 16:27+0200\n"
|
7 |
-
"Last-Translator: Дмитрий aka AzzePis <azzepis@gmail.com>\n"
|
8 |
-
"Language-Team: wordpress.co.ua <blog@blogaboutblog.com>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
13 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
14 |
-
"X-Poedit-Basepath: ../\n"
|
15 |
-
"X-Textdomain-Support: yes\n"
|
16 |
-
"X-Poedit-Language: Ukrainian\n"
|
17 |
-
"X-Poedit-Country: UKRAINE\n"
|
18 |
-
"X-Poedit-SearchPath-0: .\n"
|
19 |
-
|
20 |
-
#: secure-wordpress.php:323
|
21 |
-
msgid "Settings"
|
22 |
-
msgstr "Налаштування"
|
23 |
-
|
24 |
-
#@ secure_wp
|
25 |
-
#: secure-wordpress.php:352
|
26 |
-
#: secure-wordpress.php:389
|
27 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
28 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Документація</a>"
|
29 |
-
|
30 |
-
#@ secure_wp
|
31 |
-
#: secure-wordpress.php:369
|
32 |
-
msgid "Options update."
|
33 |
-
msgstr "Оновлення налаштувань."
|
34 |
-
|
35 |
-
#@ secure_wp
|
36 |
-
#: secure-wordpress.php:371
|
37 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
38 |
-
msgstr "Усі записи у базі данних були очищені. Тепер деактивуйте цей плагін."
|
39 |
-
|
40 |
-
#@ secure_wp
|
41 |
-
#: secure-wordpress.php:385
|
42 |
-
#: secure-wordpress.php:392
|
43 |
-
msgid "Secure WP"
|
44 |
-
msgstr "Secure WP"
|
45 |
-
|
46 |
-
#@ secure_wp
|
47 |
-
#: secure-wordpress.php:388
|
48 |
-
#: secure-wordpress.php:614
|
49 |
-
msgid "Secure WordPress"
|
50 |
-
msgstr "Secure WordPress"
|
51 |
-
|
52 |
-
#: secure-wordpress.php:412
|
53 |
-
msgid "Version"
|
54 |
-
msgstr "Версія"
|
55 |
-
|
56 |
-
#@ secure_wp
|
57 |
-
#: secure-wordpress.php:412
|
58 |
-
msgid "History"
|
59 |
-
msgstr "Історія"
|
60 |
-
|
61 |
-
#: secure-wordpress.php:412
|
62 |
-
msgid "Author"
|
63 |
-
msgstr "Автор"
|
64 |
-
|
65 |
-
#@ secure_wp
|
66 |
-
#: secure-wordpress.php:542
|
67 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
68 |
-
msgstr "Налаштування не оновлено - ви не маєте привілегій, щоб зробити це!"
|
69 |
-
|
70 |
-
#@ secure_wp
|
71 |
-
#: secure-wordpress.php:562
|
72 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
73 |
-
msgstr "Записи не були видалені - ви не маєте привілегій, щоб зробити це!"
|
74 |
-
|
75 |
-
#@ secure_wp
|
76 |
-
#: secure-wordpress.php:570
|
77 |
-
msgid "Entries was not delleted - check the checkbox!"
|
78 |
-
msgstr "Записи не були видалені - відмітьте чекбокс (поставте птичку)!"
|
79 |
-
|
80 |
-
#@ secure_wp
|
81 |
-
#: secure-wordpress.php:590
|
82 |
-
msgid "All entries in the database was cleared."
|
83 |
-
msgstr "Усі записи у базі данних були очищені."
|
84 |
-
|
85 |
-
#@ secure_wp
|
86 |
-
#: secure-wordpress.php:594
|
87 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
88 |
-
msgstr "Записи не були видалені - відмітьте чекбокс (поставте птичку) або Ви не маєте привілегій, щоб зробити це!"
|
89 |
-
|
90 |
-
#: secure-wordpress.php:619
|
91 |
-
#: secure-wordpress.php:734
|
92 |
-
#: secure-wordpress.php:754
|
93 |
-
msgid "Click to toggle"
|
94 |
-
msgstr "Клацніть для перемикання"
|
95 |
-
|
96 |
-
#@ secure_wp
|
97 |
-
#: secure-wordpress.php:620
|
98 |
-
msgid "Configuration"
|
99 |
-
msgstr "Конфігурація"
|
100 |
-
|
101 |
-
#@ secure_wp
|
102 |
-
#: secure-wordpress.php:630
|
103 |
-
msgid "Error-Messages"
|
104 |
-
msgstr "Повідомлення про помилки"
|
105 |
-
|
106 |
-
#@ secure_wp
|
107 |
-
#: secure-wordpress.php:634
|
108 |
-
msgid "deactivates tooltip and error message at login of WordPress"
|
109 |
-
msgstr "деактивує підказку та повідомлення про помилки при логіні у WordPress"
|
110 |
-
|
111 |
-
#@ secure_wp
|
112 |
-
#: secure-wordpress.php:640
|
113 |
-
msgid "WordPress Version"
|
114 |
-
msgstr "Версія WordPress"
|
115 |
-
|
116 |
-
#@ secure_wp
|
117 |
-
#: secure-wordpress.php:644
|
118 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
119 |
-
msgstr "Видаляє інформацію про версію WordPress усюди, зокрема у RSS, але не у адмінці."
|
120 |
-
|
121 |
-
#@ secure_wp
|
122 |
-
#: secure-wordpress.php:650
|
123 |
-
msgid "index.html"
|
124 |
-
msgstr "index.html"
|
125 |
-
|
126 |
-
#@ secure_wp
|
127 |
-
#: secure-wordpress.php:660
|
128 |
-
msgid "Really Simple Discovery"
|
129 |
-
msgstr "Really Simple Discovery"
|
130 |
-
|
131 |
-
#@ secure_wp
|
132 |
-
#: secure-wordpress.php:664
|
133 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
134 |
-
msgstr "Видалити посилання Really Simple Discovery з <code>wp_head</code> на блозі"
|
135 |
-
|
136 |
-
#@ secure_wp
|
137 |
-
#: secure-wordpress.php:670
|
138 |
-
msgid "Windows Live Writer"
|
139 |
-
msgstr "Windows Live Writer"
|
140 |
-
|
141 |
-
#@ secure_wp
|
142 |
-
#: secure-wordpress.php:674
|
143 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
144 |
-
msgstr "Видалити посилання Windows Live Writer з <code>wp_head</code> на блозі"
|
145 |
-
|
146 |
-
#@ secure_wp
|
147 |
-
#: secure-wordpress.php:680
|
148 |
-
msgid "Core Update"
|
149 |
-
msgstr "Оновлення ядра"
|
150 |
-
|
151 |
-
#@ secure_wp
|
152 |
-
#: secure-wordpress.php:684
|
153 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
154 |
-
msgstr "Видаляє повідомлення про нові версії Wordpress від користувачів, які не мають прав адміністратора на блозі."
|
155 |
-
|
156 |
-
#@ secure_wp
|
157 |
-
#: secure-wordpress.php:690
|
158 |
-
msgid "Plugin Update"
|
159 |
-
msgstr "Оновлення плагіну"
|
160 |
-
|
161 |
-
#@ secure_wp
|
162 |
-
#: secure-wordpress.php:694
|
163 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
164 |
-
msgstr "Видаляє повідомлення про нові версії плагіну від користувачів, які не мають прав адміністратора на блозі. Показує повідомлення про нову версію плагіну тільки при інсталяції користувачам, які мають права на редагування плагінів."
|
165 |
-
|
166 |
-
#@ secure_wp
|
167 |
-
#: secure-wordpress.php:701
|
168 |
-
msgid "Theme Update"
|
169 |
-
msgstr "Оновлення Теми"
|
170 |
-
|
171 |
-
#@ secure_wp
|
172 |
-
#: secure-wordpress.php:705
|
173 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
174 |
-
msgstr "Видаляє повідомлення про нові версії теми від користувачів, які не мають прав адміністратора на блозі. Показує повідомлення про нову версію теми тільки при інсталяції користувачам, які мають права на редагування тем."
|
175 |
-
|
176 |
-
#@ secure_wp
|
177 |
-
#: secure-wordpress.php:712
|
178 |
-
msgid "WP Scanner"
|
179 |
-
msgstr "WP Сканер"
|
180 |
-
|
181 |
-
#@ secure_wp
|
182 |
-
#: secure-wordpress.php:716
|
183 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
184 |
-
msgstr "WordPress сканер це безкоштовний онлайн ресурс, який адміністратори блогу можуть використовувати, щоб визначити рівень безпечності їх wordpress блогу. Для запуску wp-сканеру відмітьте цю опцію та додайте цей код <code><!-- wpscanner --></code> до вашої теми WordPress. Після цього перейдіть за посиланням <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> та проскануйте ваш сайт."
|
185 |
-
|
186 |
-
#@ secure_wp
|
187 |
-
#: secure-wordpress.php:724
|
188 |
-
msgid "Save Changes"
|
189 |
-
msgstr "Збережіть Зміни"
|
190 |
-
|
191 |
-
#@ secure_wp
|
192 |
-
#: secure-wordpress.php:735
|
193 |
-
msgid "Clear Options"
|
194 |
-
msgstr "Очистіть налаштування"
|
195 |
-
|
196 |
-
#@ secure_wp
|
197 |
-
#: secure-wordpress.php:738
|
198 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
199 |
-
msgstr "Натисніть на кнопку для видалення налаштувань цього плагіну. Відключення плагіну Secure WordPress видалить усі дані, що були створені плагіном."
|
200 |
-
|
201 |
-
#@ secure_wp
|
202 |
-
#: secure-wordpress.php:743
|
203 |
-
msgid "Delete Options"
|
204 |
-
msgstr "Видаліть налаштування"
|
205 |
-
|
206 |
-
#@ secure_wp
|
207 |
-
#: secure-wordpress.php:755
|
208 |
-
msgid "About the plugin"
|
209 |
-
msgstr "Про плагін"
|
210 |
-
|
211 |
-
#@ secure_wp
|
212 |
-
#: secure-wordpress.php:768
|
213 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
214 |
-
msgstr "Корисна інформація: Відвідайте <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">домашню сторінку плагіну</a> для інформації про плагін або для отримання останньої його версії."
|
215 |
-
|
216 |
-
#@ secure_wp
|
217 |
-
#: secure-wordpress.php:768
|
218 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
219 |
-
msgstr "Бажаєте віддячити? Подивіться мій <href=\"http://bueltge.de/wunschliste/\">список бажань</a>."
|
220 |
-
|
221 |
-
#@ secure_wp
|
222 |
-
#: secure-wordpress.php:654
|
223 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
224 |
-
msgstr "створює <code>index.php</code> файл у папці <code>/plugins/</code> та <code>/themes/</code>, щоб сховати файли цих каталогів від перегляду."
|
225 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp-zh_CN.mo
DELETED
Binary file
|
languages/secure_wp-zh_CN.po
DELETED
@@ -1,236 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress v0.6\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: \n"
|
6 |
-
"PO-Revision-Date: 2010-01-22 18:08+0800\n"
|
7 |
-
"Last-Translator: 老顽童 <tanghaiwei@dd54.net>\n"
|
8 |
-
"Language-Team: 老顽童 <tanghaiwei@dd54.net>\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: Chinese\n"
|
14 |
-
"X-Poedit-Country: CHINA\n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
17 |
-
"X-Poedit-Basepath: ../\n"
|
18 |
-
"X-Textdomain-Support: yes\n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
|
21 |
-
#: secure-wordpress.php:330
|
22 |
-
msgid "Settings"
|
23 |
-
msgstr "设置"
|
24 |
-
|
25 |
-
#@ secure_wp
|
26 |
-
#: secure-wordpress.php:359
|
27 |
-
#: secure-wordpress.php:406
|
28 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
29 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">文档</a>,<a href=\"http://dd54.net/\">支持</a>"
|
30 |
-
|
31 |
-
#@ secure_wp
|
32 |
-
#: secure-wordpress.php:382
|
33 |
-
msgid "Options update."
|
34 |
-
msgstr "选项更新。"
|
35 |
-
|
36 |
-
#@ secure_wp
|
37 |
-
#: secure-wordpress.php:384
|
38 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
39 |
-
msgstr "数据库中的所有项目已清除。现在停用这个插件。"
|
40 |
-
|
41 |
-
#@ secure_wp
|
42 |
-
#: secure-wordpress.php:398
|
43 |
-
#: secure-wordpress.php:409
|
44 |
-
msgid "Secure WP"
|
45 |
-
msgstr "Secure WP"
|
46 |
-
|
47 |
-
#@ secure_wp
|
48 |
-
#: secure-wordpress.php:405
|
49 |
-
#: secure-wordpress.php:652
|
50 |
-
msgid "Secure WordPress"
|
51 |
-
msgstr "Secure WordPress"
|
52 |
-
|
53 |
-
#: secure-wordpress.php:429
|
54 |
-
msgid "Version"
|
55 |
-
msgstr "版本"
|
56 |
-
|
57 |
-
#@ secure_wp
|
58 |
-
#: secure-wordpress.php:429
|
59 |
-
msgid "History"
|
60 |
-
msgstr "历史"
|
61 |
-
|
62 |
-
#: secure-wordpress.php:429
|
63 |
-
msgid "Author"
|
64 |
-
msgstr "作者"
|
65 |
-
|
66 |
-
#@ secure_wp
|
67 |
-
#: secure-wordpress.php:579
|
68 |
-
msgid "Options not update - you don‘t have the privilidges to do this!"
|
69 |
-
msgstr "选项不更新 - 没有权限"
|
70 |
-
|
71 |
-
#@ secure_wp
|
72 |
-
#: secure-wordpress.php:599
|
73 |
-
msgid "Entries was not delleted - you don‘t have the privilidges to do this!"
|
74 |
-
msgstr "项目没有删除 - 没有权限"
|
75 |
-
|
76 |
-
#@ secure_wp
|
77 |
-
#: secure-wordpress.php:607
|
78 |
-
msgid "Entries was not delleted - check the checkbox!"
|
79 |
-
msgstr "项目没有删除 - 选中复选框!"
|
80 |
-
|
81 |
-
#@ secure_wp
|
82 |
-
#: secure-wordpress.php:627
|
83 |
-
msgid "All entries in the database was cleared."
|
84 |
-
msgstr "数据库中的所有项目已清除。"
|
85 |
-
|
86 |
-
#@ secure_wp
|
87 |
-
#: secure-wordpress.php:631
|
88 |
-
msgid "Entries was not delleted - check the checkbox or you don‘t have the privilidges to do this!"
|
89 |
-
msgstr "项目没有删除 - 选中复选框或者没有权限!"
|
90 |
-
|
91 |
-
#: secure-wordpress.php:657
|
92 |
-
#: secure-wordpress.php:782
|
93 |
-
#: secure-wordpress.php:802
|
94 |
-
msgid "Click to toggle"
|
95 |
-
msgstr "点击切换"
|
96 |
-
|
97 |
-
#@ secure_wp
|
98 |
-
#: secure-wordpress.php:658
|
99 |
-
msgid "Configuration"
|
100 |
-
msgstr "配置"
|
101 |
-
|
102 |
-
#@ secure_wp
|
103 |
-
#: secure-wordpress.php:668
|
104 |
-
msgid "Error-Messages"
|
105 |
-
msgstr "错误信息"
|
106 |
-
|
107 |
-
#@ secure_wp
|
108 |
-
#: secure-wordpress.php:672
|
109 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
110 |
-
msgstr "停用在WordPress登录提示和错误信息"
|
111 |
-
|
112 |
-
#@ secure_wp
|
113 |
-
#: secure-wordpress.php:678
|
114 |
-
msgid "WordPress Version"
|
115 |
-
msgstr "WordPress版本"
|
116 |
-
|
117 |
-
#@ secure_wp
|
118 |
-
#: secure-wordpress.php:682
|
119 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
120 |
-
msgstr "隐藏WordPress版本号,除了管理页面"
|
121 |
-
|
122 |
-
#@ secure_wp
|
123 |
-
#: secure-wordpress.php:688
|
124 |
-
msgid "WordPress Version in Backend"
|
125 |
-
msgstr "WordPress版本号在后台"
|
126 |
-
|
127 |
-
#@ secure_wp
|
128 |
-
#: secure-wordpress.php:692
|
129 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
130 |
-
msgstr "对非管理员隐藏WordPress版本号在管理区域。"
|
131 |
-
|
132 |
-
#@ secure_wp
|
133 |
-
#: secure-wordpress.php:698
|
134 |
-
msgid "index.php"
|
135 |
-
msgstr "index.php"
|
136 |
-
|
137 |
-
#@ secure_wp
|
138 |
-
#: secure-wordpress.php:702
|
139 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
140 |
-
msgstr "创建一个 <code>index.php</code> 文件在 <code>/plugins/</code> 和 <code>/themes/</code> 目录"
|
141 |
-
|
142 |
-
#@ secure_wp
|
143 |
-
#: secure-wordpress.php:708
|
144 |
-
msgid "Really Simple Discovery"
|
145 |
-
msgstr "RSD离线编辑接口"
|
146 |
-
|
147 |
-
#@ secure_wp
|
148 |
-
#: secure-wordpress.php:712
|
149 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
150 |
-
msgstr "隐藏RSD离线编辑接口在 <code>wp_head</code> 前端"
|
151 |
-
|
152 |
-
#@ secure_wp
|
153 |
-
#: secure-wordpress.php:718
|
154 |
-
msgid "Windows Live Writer"
|
155 |
-
msgstr "Windows Live Writer"
|
156 |
-
|
157 |
-
#@ secure_wp
|
158 |
-
#: secure-wordpress.php:722
|
159 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
160 |
-
msgstr "隐藏windows live writer 识别标记在 <code>wp_head</code> 前端"
|
161 |
-
|
162 |
-
#@ secure_wp
|
163 |
-
#: secure-wordpress.php:728
|
164 |
-
msgid "Core Update"
|
165 |
-
msgstr "核心更新"
|
166 |
-
|
167 |
-
#@ secure_wp
|
168 |
-
#: secure-wordpress.php:732
|
169 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
170 |
-
msgstr "隐藏WordPress核心更新对非管理员。"
|
171 |
-
|
172 |
-
#@ secure_wp
|
173 |
-
#: secure-wordpress.php:738
|
174 |
-
msgid "Plugin Update"
|
175 |
-
msgstr "插件更新"
|
176 |
-
|
177 |
-
#@ secure_wp
|
178 |
-
#: secure-wordpress.php:742
|
179 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
180 |
-
msgstr "隐藏WordPress插件更新对非管理员。"
|
181 |
-
|
182 |
-
#@ secure_wp
|
183 |
-
#: secure-wordpress.php:749
|
184 |
-
msgid "Theme Update"
|
185 |
-
msgstr "主题更新"
|
186 |
-
|
187 |
-
#@ secure_wp
|
188 |
-
#: secure-wordpress.php:753
|
189 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
190 |
-
msgstr "隐藏WordPress插件更新对非管理员。"
|
191 |
-
|
192 |
-
#@ secure_wp
|
193 |
-
#: secure-wordpress.php:760
|
194 |
-
msgid "WP Scanner"
|
195 |
-
msgstr "WP 扫描"
|
196 |
-
|
197 |
-
#@ secure_wp
|
198 |
-
#: secure-wordpress.php:764
|
199 |
-
msgid "WordPress scanner is a free online resource that blog administrators can use to provide a measure of their wordpress security level. To run wp-scanner check this option and is add <code><!-- wpscanner --></code> to your current WordPress template. After this go to <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> and scan your site."
|
200 |
-
msgstr "WordPress scanner 是一个免费的在线安全扫描服务。为了运行在线安全检测,需要将<!-- wpscanner -->这一行代码加到主题中,然后浏览 <a href=\"http://blogsecurity.net/wpscan\">http://blogsecurity.net/wpscan</a> 扫描你的网站."
|
201 |
-
|
202 |
-
#@ secure_wp
|
203 |
-
#: secure-wordpress.php:772
|
204 |
-
msgid "Save Changes"
|
205 |
-
msgstr "保存更改"
|
206 |
-
|
207 |
-
#@ secure_wp
|
208 |
-
#: secure-wordpress.php:783
|
209 |
-
msgid "Clear Options"
|
210 |
-
msgstr "清除选项"
|
211 |
-
|
212 |
-
#@ secure_wp
|
213 |
-
#: secure-wordpress.php:786
|
214 |
-
msgid "Click this button to delete settings of this plugin. Deactivating Secure WordPress plugin remove any data that may have been created."
|
215 |
-
msgstr "点击此按钮可删除此插件的设置。"
|
216 |
-
|
217 |
-
#@ secure_wp
|
218 |
-
#: secure-wordpress.php:791
|
219 |
-
msgid "Delete Options"
|
220 |
-
msgstr "删除选项"
|
221 |
-
|
222 |
-
#@ secure_wp
|
223 |
-
#: secure-wordpress.php:803
|
224 |
-
msgid "About the plugin"
|
225 |
-
msgstr "关于插件"
|
226 |
-
|
227 |
-
#@ secure_wp
|
228 |
-
#: secure-wordpress.php:816
|
229 |
-
msgid "Further information: Visit the <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">plugin homepage</a> for further information or to grab the latest version of this plugin."
|
230 |
-
msgstr "更多信息:访问 <a href=\"http://bueltge.de/wordpress-login-sicherheit-plugin/652/\">插件页面</a> 和 <a href=\"http://dd54.net/\">汉化者网站</a> 了解进一步的信息或查找这个插件的最新版本。"
|
231 |
-
|
232 |
-
#@ secure_wp
|
233 |
-
#: secure-wordpress.php:816
|
234 |
-
msgid "You want to thank me? Visit my <a href=\"http://bueltge.de/wunschliste/\">wishlist</a>."
|
235 |
-
msgstr "你要感谢我呢?访问我的 <a href=\"http://bueltge.de/wunschliste/\">心愿</a> 和 <a href=\"http://dd54.net/\">汉化者网站</a>."
|
236 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/secure_wp.pot
DELETED
@@ -1,533 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Secure WordPress\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2010-05-16 12:34+0100\n"
|
6 |
-
"PO-Revision-Date: 2010-07-09 13:20+0100\n"
|
7 |
-
"Last-Translator: Frank Bueltge <frank@bueltge.de>\n"
|
8 |
-
"Language-Team: \n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: \n"
|
14 |
-
"X-Poedit-Country: \n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
17 |
-
"X-Poedit-Basepath: ../\n"
|
18 |
-
"X-Poedit-Bookmarks: \n"
|
19 |
-
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
"X-Textdomain-Support: yes"
|
21 |
-
|
22 |
-
#. translators: plugin header field 'Description'
|
23 |
-
#: secure-wordpress.php:0
|
24 |
-
#@ secure_wp
|
25 |
-
msgid "Little basics for secure your WordPress-installation."
|
26 |
-
msgstr "Kleine Grundlagen für die Sicherheit deiner WordPress Installation"
|
27 |
-
|
28 |
-
#: secure-wordpress.php:370
|
29 |
-
#@ default
|
30 |
-
msgid "Settings"
|
31 |
-
msgstr "Einstellungen"
|
32 |
-
|
33 |
-
#: secure-wordpress.php:399
|
34 |
-
#: secure-wordpress.php:446
|
35 |
-
#@ secure_wp
|
36 |
-
msgid "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Documentation</a>"
|
37 |
-
msgstr "<a href=\"http://wordpress.org/extend/plugins/secure-wordpress/\">Dokumentation</a>"
|
38 |
-
|
39 |
-
#: secure-wordpress.php:422
|
40 |
-
#@ secure_wp
|
41 |
-
msgid "Options update."
|
42 |
-
msgstr "Einstellungen aktualisiert."
|
43 |
-
|
44 |
-
#: secure-wordpress.php:424
|
45 |
-
#@ secure_wp
|
46 |
-
msgid "All entries in the database was cleared. Now deactivate this plugin."
|
47 |
-
msgstr "Alle Einträge in der Datenbank wurden entfernt. Jetzt deaktiviere das Plugin."
|
48 |
-
|
49 |
-
#: secure-wordpress.php:438
|
50 |
-
#: secure-wordpress.php:449
|
51 |
-
#@ secure_wp
|
52 |
-
msgid "Secure WP"
|
53 |
-
msgstr "Secure WP"
|
54 |
-
|
55 |
-
#. translators: plugin header field 'Name'
|
56 |
-
#: secure-wordpress.php:0
|
57 |
-
#: secure-wordpress.php:445
|
58 |
-
#: secure-wordpress.php:773
|
59 |
-
#@ secure_wp
|
60 |
-
msgid "Secure WordPress"
|
61 |
-
msgstr "Secure WordPress"
|
62 |
-
|
63 |
-
#: secure-wordpress.php:469
|
64 |
-
#@ default
|
65 |
-
msgid "Version"
|
66 |
-
msgstr "Version"
|
67 |
-
|
68 |
-
#: secure-wordpress.php:469
|
69 |
-
#@ secure_wp
|
70 |
-
msgid "History"
|
71 |
-
msgstr "Historie"
|
72 |
-
|
73 |
-
#: secure-wordpress.php:469
|
74 |
-
#@ default
|
75 |
-
msgid "Author"
|
76 |
-
msgstr "Autor"
|
77 |
-
|
78 |
-
#: secure-wordpress.php:698
|
79 |
-
#@ secure_wp
|
80 |
-
msgid "Options not updated - you don‘t have the privileges to do this!"
|
81 |
-
msgstr "Einstellungen wurden nicht aktualisiert - du hast nicht genügend Rechte dazu!"
|
82 |
-
|
83 |
-
#: secure-wordpress.php:718
|
84 |
-
#@ secure_wp
|
85 |
-
msgid "Entries were not deleted - you don‘t have the privileges to do this!"
|
86 |
-
msgstr "Einstellungen wurden nicht entfernt - du hast nicht genügend Rechte dazu!"
|
87 |
-
|
88 |
-
#: secure-wordpress.php:726
|
89 |
-
#@ secure_wp
|
90 |
-
msgid "Entries were not deleted - check the checkbox!"
|
91 |
-
msgstr "Einstellungen wurden nicht entfernt - prüfe dich Checkbox!"
|
92 |
-
|
93 |
-
#: secure-wordpress.php:746
|
94 |
-
#@ secure_wp
|
95 |
-
msgid "All entries in the database were cleared."
|
96 |
-
msgstr "Alle Einträge in der Datenbank wurden entfernt."
|
97 |
-
|
98 |
-
#: secure-wordpress.php:750
|
99 |
-
#@ secure_wp
|
100 |
-
msgid "Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!"
|
101 |
-
msgstr "Einstellungen wurden nicht entfernt - prüfe dich Checkbox oder du hast nicht genügend Rechte dazu!"
|
102 |
-
|
103 |
-
#: secure-wordpress.php:778
|
104 |
-
#: secure-wordpress.php:914
|
105 |
-
#: secure-wordpress.php:1027
|
106 |
-
#: secure-wordpress.php:1141
|
107 |
-
#@ default
|
108 |
-
msgid "Click to toggle"
|
109 |
-
msgstr "Zum umschalten klicken"
|
110 |
-
|
111 |
-
#: secure-wordpress.php:779
|
112 |
-
#@ secure_wp
|
113 |
-
msgid "Configuration"
|
114 |
-
msgstr "Einstellungen"
|
115 |
-
|
116 |
-
#: secure-wordpress.php:789
|
117 |
-
#@ secure_wp
|
118 |
-
msgid "Error-Messages"
|
119 |
-
msgstr "Fehler-Meldungen"
|
120 |
-
|
121 |
-
#: secure-wordpress.php:793
|
122 |
-
#@ secure_wp
|
123 |
-
msgid "Deactivates tooltip and error message at login of WordPress"
|
124 |
-
msgstr "Deaktivert die Hinweis- und Fehlermeldung beim Login von WordPress"
|
125 |
-
|
126 |
-
#: secure-wordpress.php:799
|
127 |
-
#@ secure_wp
|
128 |
-
msgid "WordPress Version"
|
129 |
-
msgstr "WordPress Version"
|
130 |
-
|
131 |
-
#: secure-wordpress.php:803
|
132 |
-
#@ secure_wp
|
133 |
-
msgid "Removes version of WordPress in all areas, including feed, not in admin"
|
134 |
-
msgstr "Entfernen der Version von WordPress in allen Bereichen, inkl. Feed, nicht im Admin-Bereich"
|
135 |
-
|
136 |
-
#: secure-wordpress.php:809
|
137 |
-
#@ secure_wp
|
138 |
-
msgid "WordPress Version in Backend"
|
139 |
-
msgstr "WordPress Version im Administrationsbereich"
|
140 |
-
|
141 |
-
#: secure-wordpress.php:813
|
142 |
-
#@ secure_wp
|
143 |
-
msgid "Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins."
|
144 |
-
msgstr "Entfernen der Version von WordPress im Admin-Bereich für Nicht-Administratoren. Die WordPress Version deines Blogs wird ausschließlich Nutzern dargestellt, die die Rechte zum Editieren von Plugins haben."
|
145 |
-
|
146 |
-
#: secure-wordpress.php:819
|
147 |
-
#@ secure_wp
|
148 |
-
msgid "index.php"
|
149 |
-
msgstr "index.php"
|
150 |
-
|
151 |
-
#: secure-wordpress.php:823
|
152 |
-
#@ secure_wp
|
153 |
-
msgid "creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing"
|
154 |
-
msgstr "hinterlegt eine <code>index.php</code> in <code>/plugins/</code> und <code>/themes/</code> um das Auslesen des Verzeichnis zu vermeiden"
|
155 |
-
|
156 |
-
#: secure-wordpress.php:829
|
157 |
-
#@ secure_wp
|
158 |
-
msgid "Really Simple Discovery"
|
159 |
-
msgstr "Really Simple Discovery"
|
160 |
-
|
161 |
-
#: secure-wordpress.php:833
|
162 |
-
#@ secure_wp
|
163 |
-
msgid "Remove Really Simple Discovery link in <code>wp_head</code> of the frontend"
|
164 |
-
msgstr "Entfernt den link für Really Simple Discovery im head des Frontend"
|
165 |
-
|
166 |
-
#: secure-wordpress.php:839
|
167 |
-
#@ secure_wp
|
168 |
-
msgid "Windows Live Writer"
|
169 |
-
msgstr "Windows Live Writer"
|
170 |
-
|
171 |
-
#: secure-wordpress.php:843
|
172 |
-
#@ secure_wp
|
173 |
-
msgid "Remove Windows Live Writer link in <code>wp_head</code> of the frontend"
|
174 |
-
msgstr "Entfernt den link für Windows Live Writer im head des Frontend"
|
175 |
-
|
176 |
-
#: secure-wordpress.php:849
|
177 |
-
#@ secure_wp
|
178 |
-
msgid "Core Update"
|
179 |
-
msgstr "Core Update"
|
180 |
-
|
181 |
-
#: secure-wordpress.php:853
|
182 |
-
#@ secure_wp
|
183 |
-
msgid "Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update."
|
184 |
-
msgstr "Deaktiviert das Core-Update für Nicht-Admin's. Die Mitteilung einer neuen Version von WordPress wird ausschließlich Nutzern gezeigt, die die Rechte zum Editieren von Plugins haben."
|
185 |
-
|
186 |
-
#: secure-wordpress.php:859
|
187 |
-
#@ secure_wp
|
188 |
-
msgid "Plugin Update"
|
189 |
-
msgstr "Plugin Update"
|
190 |
-
|
191 |
-
#: secure-wordpress.php:863
|
192 |
-
#@ secure_wp
|
193 |
-
msgid "Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins."
|
194 |
-
msgstr "Deaktiviert das Plugin-Update für Nicht-Admin's. Die Mitteilung einer neuen Version von WordPress zu Plugins wird ausschließlich Nutzern gezeigt, die die Rechte zum Editieren von Plugins haben."
|
195 |
-
|
196 |
-
#: secure-wordpress.php:870
|
197 |
-
#@ secure_wp
|
198 |
-
msgid "Theme Update"
|
199 |
-
msgstr "Theme Update"
|
200 |
-
|
201 |
-
#: secure-wordpress.php:874
|
202 |
-
#@ secure_wp
|
203 |
-
msgid "Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes."
|
204 |
-
msgstr "Deaktiviert das Theme-Update für Nicht-Admin's. Die Mitteilung einer neuen Version von WordPress zum Theme wird ausschließlich Nutzern gezeigt, die die Rechte zum Editieren von Themes haben."
|
205 |
-
|
206 |
-
#: secure-wordpress.php:891
|
207 |
-
#@ secure_wp
|
208 |
-
msgid "Block bad queries"
|
209 |
-
msgstr "Blocke negative Abfragen"
|
210 |
-
|
211 |
-
#: secure-wordpress.php:895
|
212 |
-
#@ secure_wp
|
213 |
-
msgid "Protect WordPress against malicious URL requests, read more information at the <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >post from Jeff Starr</a>"
|
214 |
-
msgstr "WordPress gegen bösartige URL-Anforderungen schützen, mehr Informationen gibt es im <a href=\"http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/\" title=\"read this post\" >Beitrag von Jeff Starr</a>"
|
215 |
-
|
216 |
-
#: secure-wordpress.php:903
|
217 |
-
#@ secure_wp
|
218 |
-
msgid "Save Changes"
|
219 |
-
msgstr "Einstellungen aktualisieren"
|
220 |
-
|
221 |
-
#: secure-wordpress.php:915
|
222 |
-
#@ secure_wp
|
223 |
-
msgid "Validate your site with a free malware scan from www.sitesecuritymonitor.com"
|
224 |
-
msgstr "Überprüfe deine Seite mit einem freien Malware-Scan von www.sitesecuritymonitor.com"
|
225 |
-
|
226 |
-
#: secure-wordpress.php:918
|
227 |
-
#@ secure_wp
|
228 |
-
msgid "Take us for a Test Drive - Free Scan"
|
229 |
-
msgstr "Nutze uns für eine Probefahrt - freier Scan"
|
230 |
-
|
231 |
-
#: secure-wordpress.php:919
|
232 |
-
#@ secure_wp
|
233 |
-
msgid "We understand you may have questions:"
|
234 |
-
msgstr "Wie verstehen, dass du Fragen hast:"
|
235 |
-
|
236 |
-
#: secure-wordpress.php:920
|
237 |
-
#@ secure_wp
|
238 |
-
msgid "What does this do for me?"
|
239 |
-
msgstr "Was bedeutet der Scan für mich?"
|
240 |
-
|
241 |
-
#: secure-wordpress.php:921
|
242 |
-
#@ secure_wp
|
243 |
-
msgid "Am I really safe? I need to be sure."
|
244 |
-
msgstr "Bin ich wirklich sicher? Ich muss sicher sein."
|
245 |
-
|
246 |
-
#: secure-wordpress.php:922
|
247 |
-
#@ secure_wp
|
248 |
-
msgid "Rest Assured, Site Security Monitor has you covered."
|
249 |
-
msgstr "Sei dir sicher, Site Security Monitor ist sicher."
|
250 |
-
|
251 |
-
#: secure-wordpress.php:924
|
252 |
-
#@ secure_wp
|
253 |
-
msgid "FREE scan looks for malware"
|
254 |
-
msgstr "FREIER scan um Malware zu finden"
|
255 |
-
|
256 |
-
#: secure-wordpress.php:925
|
257 |
-
#@ secure_wp
|
258 |
-
msgid "FREE report of website vulnerabilities found"
|
259 |
-
msgstr "FREIE Auswertung der gefundenen Schwachstellen auf einer Webseite"
|
260 |
-
|
261 |
-
#: secure-wordpress.php:926
|
262 |
-
#@ secure_wp
|
263 |
-
msgid "No setup, tuning and installation on your site - scan begins immediately"
|
264 |
-
msgstr "Keine Einrichtung, keine Anpassunge und Installationen auf deiner Site - der Scan kann sofort starten"
|
265 |
-
|
266 |
-
#: secure-wordpress.php:928
|
267 |
-
#@ secure_wp
|
268 |
-
msgid "We will deliver to you a detailed malware and web vulnerability report - FREE of charge. You are free to use the report to resolve issues, show your boss that you are clean, or show your clients that the site you built is safe!"
|
269 |
-
msgstr "Wir liefern einen detaillierten Bericht zu Schwachstellen und Malware (Schadprogrammen) - kostenlos. Du kannst entscheiden, wie du den Bericht verwendest um Probleme zu lösen, es werden Hinweise zum Problem gegeben. Zeigen den anderen, dass die Site sauber und sicher ist."
|
270 |
-
|
271 |
-
#: secure-wordpress.php:929
|
272 |
-
#@ secure_wp
|
273 |
-
msgid "** Bonus: You will be able to use the Site Security Monitor \"Safe-Seal\" on your site after the scan - this shows the world that you are malware free!"
|
274 |
-
msgstr "** Bonus: Du kannst das Site Security Monitor \"Safe-Seal\" in deine Site integrieren - zeige der Welt, dass du frei von Malware bist."
|
275 |
-
|
276 |
-
#: secure-wordpress.php:931
|
277 |
-
#@ secure_wp
|
278 |
-
msgid "The form"
|
279 |
-
msgstr "Das Formular"
|
280 |
-
|
281 |
-
#: secure-wordpress.php:932
|
282 |
-
#@ secure_wp
|
283 |
-
msgid "Use the follow form or use it on <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">our website</a>."
|
284 |
-
msgstr "Nutze das Formular oder gehe direkt über <a href=\"http://www.sitesecuritymonitor.com/free-scan-for-secure-wordpress\">unsere Website</a>."
|
285 |
-
|
286 |
-
#: secure-wordpress.php:967
|
287 |
-
#@ secure_wp
|
288 |
-
msgid "Full Name"
|
289 |
-
msgstr "Name, Vorname"
|
290 |
-
|
291 |
-
#: secure-wordpress.php:970
|
292 |
-
#: secure-wordpress.php:978
|
293 |
-
#: secure-wordpress.php:986
|
294 |
-
#: secure-wordpress.php:994
|
295 |
-
#: secure-wordpress.php:1010
|
296 |
-
#@ secure_wp
|
297 |
-
msgid "*required"
|
298 |
-
msgstr "*Pflichtfeld"
|
299 |
-
|
300 |
-
#: secure-wordpress.php:975
|
301 |
-
#@ secure_wp
|
302 |
-
msgid "eMail Adress"
|
303 |
-
msgstr "E-Mail Adresse"
|
304 |
-
|
305 |
-
#: secure-wordpress.php:978
|
306 |
-
#@ secure_wp
|
307 |
-
msgid ", eMail Address must match domain name"
|
308 |
-
msgstr ", die E-Mail Adresse muss den Domain-Namen enthalten"
|
309 |
-
|
310 |
-
#: secure-wordpress.php:983
|
311 |
-
#@ secure_wp
|
312 |
-
msgid "Website"
|
313 |
-
msgstr "Website"
|
314 |
-
|
315 |
-
#: secure-wordpress.php:991
|
316 |
-
#@ secure_wp
|
317 |
-
msgid "Phone"
|
318 |
-
msgstr "Telefon"
|
319 |
-
|
320 |
-
#: secure-wordpress.php:999
|
321 |
-
#@ secure_wp
|
322 |
-
msgid "Yes, I need help!"
|
323 |
-
msgstr "Ja, ich brauche Hilfe!"
|
324 |
-
|
325 |
-
#: secure-wordpress.php:1002
|
326 |
-
#@ secure_wp
|
327 |
-
msgid "Call me"
|
328 |
-
msgstr "Rufe mich an"
|
329 |
-
|
330 |
-
#: secure-wordpress.php:1007
|
331 |
-
#@ secure_wp
|
332 |
-
msgid "Terms and Conditions"
|
333 |
-
msgstr "Allgemeine Geschäftsbedingungen"
|
334 |
-
|
335 |
-
#: secure-wordpress.php:1010
|
336 |
-
#@ secure_wp
|
337 |
-
msgid ", I accept"
|
338 |
-
msgstr ", ich akzeptiere"
|
339 |
-
|
340 |
-
#: secure-wordpress.php:1017
|
341 |
-
#@ secure_wp
|
342 |
-
msgid "Get my Free Web Scan"
|
343 |
-
msgstr "Starte meinen freien Web-Scan"
|
344 |
-
|
345 |
-
#: secure-wordpress.php:1028
|
346 |
-
#@ secure_wp
|
347 |
-
msgid "Safe Seal"
|
348 |
-
msgstr "Safe Seal"
|
349 |
-
|
350 |
-
#: secure-wordpress.php:1058
|
351 |
-
#@ secure_wp
|
352 |
-
msgid "Color"
|
353 |
-
msgstr "Farbe"
|
354 |
-
|
355 |
-
#: secure-wordpress.php:1062
|
356 |
-
#@ secure_wp
|
357 |
-
msgid "Green"
|
358 |
-
msgstr "Grün"
|
359 |
-
|
360 |
-
#: secure-wordpress.php:1063
|
361 |
-
#@ secure_wp
|
362 |
-
msgid "Blue"
|
363 |
-
msgstr "Blau"
|
364 |
-
|
365 |
-
#: secure-wordpress.php:1064
|
366 |
-
#@ secure_wp
|
367 |
-
msgid "Red"
|
368 |
-
msgstr "Rot"
|
369 |
-
|
370 |
-
#: secure-wordpress.php:1065
|
371 |
-
#@ secure_wp
|
372 |
-
msgid "Brown"
|
373 |
-
msgstr "Braun"
|
374 |
-
|
375 |
-
#: secure-wordpress.php:1066
|
376 |
-
#@ secure_wp
|
377 |
-
msgid "Gray"
|
378 |
-
msgstr "Grau"
|
379 |
-
|
380 |
-
#: secure-wordpress.php:1075
|
381 |
-
#@ secure_wp
|
382 |
-
msgid "Text"
|
383 |
-
msgstr "Text"
|
384 |
-
|
385 |
-
#: secure-wordpress.php:1079
|
386 |
-
#@ secure_wp
|
387 |
-
msgid "Protected"
|
388 |
-
msgstr "Geschützt"
|
389 |
-
|
390 |
-
#: secure-wordpress.php:1080
|
391 |
-
#@ secure_wp
|
392 |
-
msgid "Secured"
|
393 |
-
msgstr "Sicher"
|
394 |
-
|
395 |
-
#: secure-wordpress.php:1081
|
396 |
-
#@ secure_wp
|
397 |
-
msgid "Scanned"
|
398 |
-
msgstr "Gescannt"
|
399 |
-
|
400 |
-
#: secure-wordpress.php:1082
|
401 |
-
#@ secure_wp
|
402 |
-
msgid "Protected by"
|
403 |
-
msgstr "Geschützt durch"
|
404 |
-
|
405 |
-
#: secure-wordpress.php:1088
|
406 |
-
#@ secure_wp
|
407 |
-
msgid "Orientation"
|
408 |
-
msgstr "Orientierung"
|
409 |
-
|
410 |
-
#: secure-wordpress.php:1092
|
411 |
-
#@ secure_wp
|
412 |
-
msgid "Horizontal"
|
413 |
-
msgstr "Horizontal"
|
414 |
-
|
415 |
-
#: secure-wordpress.php:1093
|
416 |
-
#@ secure_wp
|
417 |
-
msgid "Vertical"
|
418 |
-
msgstr "Vertical"
|
419 |
-
|
420 |
-
#: secure-wordpress.php:1099
|
421 |
-
#@ secure_wp
|
422 |
-
msgid "Image border"
|
423 |
-
msgstr "Bilder-Rahmen"
|
424 |
-
|
425 |
-
#: secure-wordpress.php:1107
|
426 |
-
#@ secure_wp
|
427 |
-
msgid "Language"
|
428 |
-
msgstr "Sprache"
|
429 |
-
|
430 |
-
#: secure-wordpress.php:1111
|
431 |
-
#@ secure_wp
|
432 |
-
msgid "English (US)"
|
433 |
-
msgstr "Englisch (US)"
|
434 |
-
|
435 |
-
#: secure-wordpress.php:1112
|
436 |
-
#@ secure_wp
|
437 |
-
msgid "English (UK)"
|
438 |
-
msgstr "Englisch (UK)"
|
439 |
-
|
440 |
-
#: secure-wordpress.php:1113
|
441 |
-
#@ secure_wp
|
442 |
-
msgid "Spanish"
|
443 |
-
msgstr "Spanisch"
|
444 |
-
|
445 |
-
#: secure-wordpress.php:1114
|
446 |
-
#@ secure_wp
|
447 |
-
msgid "German"
|
448 |
-
msgstr "Deutsch"
|
449 |
-
|
450 |
-
#: secure-wordpress.php:1115
|
451 |
-
#@ secure_wp
|
452 |
-
msgid "Italian"
|
453 |
-
msgstr "Italienisch"
|
454 |
-
|
455 |
-
#: secure-wordpress.php:1116
|
456 |
-
#@ secure_wp
|
457 |
-
msgid "Japanese"
|
458 |
-
msgstr "Japanisch"
|
459 |
-
|
460 |
-
#: secure-wordpress.php:1117
|
461 |
-
#@ secure_wp
|
462 |
-
msgid "Chinese (Simplified)"
|
463 |
-
msgstr "Chinesisch (Einfach)"
|
464 |
-
|
465 |
-
#: secure-wordpress.php:1118
|
466 |
-
#@ secure_wp
|
467 |
-
msgid "Chinese (Traditional)"
|
468 |
-
msgstr "Chinesisch (Traditonell)"
|
469 |
-
|
470 |
-
#: secure-wordpress.php:1127
|
471 |
-
#@ secure_wp
|
472 |
-
msgid "Here is your generated code. Place it on your website (as html widget) to show that you are protected."
|
473 |
-
msgstr "Hier ist der erstellte Code, platziere in ihn in deiner Site (als HTML Widget) um zu zeigen, dass du geschützt bist."
|
474 |
-
|
475 |
-
#: secure-wordpress.php:1142
|
476 |
-
#@ secure_wp
|
477 |
-
msgid "Clear Options"
|
478 |
-
msgstr "Einstellungen löschen"
|
479 |
-
|
480 |
-
#: secure-wordpress.php:1145
|
481 |
-
#@ secure_wp
|
482 |
-
msgid "Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created."
|
483 |
-
msgstr "Nutze diese Möglichkeit um alle Einstellungen des Plugins in der Datenbank zu löschen. Das Plugin löscht ebenfalls alle Einstellungen wenn du es deaktivierst oder aus dem Backend heraus entfernst."
|
484 |
-
|
485 |
-
#: secure-wordpress.php:1150
|
486 |
-
#@ secure_wp
|
487 |
-
msgid "Delete Options"
|
488 |
-
msgstr "Einstellungen löschen"
|
489 |
-
|
490 |
-
#. translators: plugin header field 'PluginURI'
|
491 |
-
#: secure-wordpress.php:0
|
492 |
-
#@ secure_wp
|
493 |
-
msgid "http://www.sitesecuritymonitor.com/secure-wordpress-plugin"
|
494 |
-
msgstr ""
|
495 |
-
|
496 |
-
#. translators: plugin header field 'Author'
|
497 |
-
#: secure-wordpress.php:0
|
498 |
-
#@ secure_wp
|
499 |
-
msgid "jremillard"
|
500 |
-
msgstr ""
|
501 |
-
|
502 |
-
#. translators: plugin header field 'AuthorURI'
|
503 |
-
#: secure-wordpress.php:0
|
504 |
-
#@ secure_wp
|
505 |
-
msgid "http://www.sitesecuritymonitor.com/"
|
506 |
-
msgstr ""
|
507 |
-
|
508 |
-
#: secure-wordpress.php:1031
|
509 |
-
#@ secure_wp
|
510 |
-
msgid "Thankyou for using our plugin! You are free to use the scan below (outputs HTML for easy copy-pasting) into your blog. This seal does not give you scanning services - it simple does the basics of wordpress security - as recommended by the community and our own experiences with our customers.<br/>Should you wish to get regular vulnerability and malware scanning services, please <a href=\"http://www.sitesecuritymonitor.com/wordpress-secure-plugin/\">see our main page here...</a>"
|
511 |
-
msgstr ""
|
512 |
-
|
513 |
-
#: secure-wordpress.php:1126
|
514 |
-
#@ secure_wp
|
515 |
-
msgid "Source"
|
516 |
-
msgstr "Quellcode"
|
517 |
-
|
518 |
-
#. translators: plugin header field 'Version'
|
519 |
-
#: secure-wordpress.php:0
|
520 |
-
#@ secure_wp
|
521 |
-
msgid "1.0.5"
|
522 |
-
msgstr ""
|
523 |
-
|
524 |
-
#: secure-wordpress.php:881
|
525 |
-
#@ secure_wp
|
526 |
-
msgid "WP Version on Scripts/Styles"
|
527 |
-
msgstr "WP Version bei Scripten/Stylesheets"
|
528 |
-
|
529 |
-
#: secure-wordpress.php:885
|
530 |
-
#@ secure_wp
|
531 |
-
msgid "Removes version of WordPress on the url form scripts and stylesheets only on frontend."
|
532 |
-
msgstr "Entfernt die WordPress Version an den URLs von Scripten und Stylesheets, nur im Frontend."
|
533 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
license.txt
DELETED
@@ -1,674 +0,0 @@
|
|
1 |
-
GNU GENERAL PUBLIC LICENSE
|
2 |
-
Version 3, 29 June 2007
|
3 |
-
|
4 |
-
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
5 |
-
Everyone is permitted to copy and distribute verbatim copies
|
6 |
-
of this license document, but changing it is not allowed.
|
7 |
-
|
8 |
-
Preamble
|
9 |
-
|
10 |
-
The GNU General Public License is a free, copyleft license for
|
11 |
-
software and other kinds of works.
|
12 |
-
|
13 |
-
The licenses for most software and other practical works are designed
|
14 |
-
to take away your freedom to share and change the works. By contrast,
|
15 |
-
the GNU General Public License is intended to guarantee your freedom to
|
16 |
-
share and change all versions of a program--to make sure it remains free
|
17 |
-
software for all its users. We, the Free Software Foundation, use the
|
18 |
-
GNU General Public License for most of our software; it applies also to
|
19 |
-
any other work released this way by its authors. You can apply it to
|
20 |
-
your programs, too.
|
21 |
-
|
22 |
-
When we speak of free software, we are referring to freedom, not
|
23 |
-
price. Our General Public Licenses are designed to make sure that you
|
24 |
-
have the freedom to distribute copies of free software (and charge for
|
25 |
-
them if you wish), that you receive source code or can get it if you
|
26 |
-
want it, that you can change the software or use pieces of it in new
|
27 |
-
free programs, and that you know you can do these things.
|
28 |
-
|
29 |
-
To protect your rights, we need to prevent others from denying you
|
30 |
-
these rights or asking you to surrender the rights. Therefore, you have
|
31 |
-
certain responsibilities if you distribute copies of the software, or if
|
32 |
-
you modify it: responsibilities to respect the freedom of others.
|
33 |
-
|
34 |
-
For example, if you distribute copies of such a program, whether
|
35 |
-
gratis or for a fee, you must pass on to the recipients the same
|
36 |
-
freedoms that you received. You must make sure that they, too, receive
|
37 |
-
or can get the source code. And you must show them these terms so they
|
38 |
-
know their rights.
|
39 |
-
|
40 |
-
Developers that use the GNU GPL protect your rights with two steps:
|
41 |
-
(1) assert copyright on the software, and (2) offer you this License
|
42 |
-
giving you legal permission to copy, distribute and/or modify it.
|
43 |
-
|
44 |
-
For the developers' and authors' protection, the GPL clearly explains
|
45 |
-
that there is no warranty for this free software. For both users' and
|
46 |
-
authors' sake, the GPL requires that modified versions be marked as
|
47 |
-
changed, so that their problems will not be attributed erroneously to
|
48 |
-
authors of previous versions.
|
49 |
-
|
50 |
-
Some devices are designed to deny users access to install or run
|
51 |
-
modified versions of the software inside them, although the manufacturer
|
52 |
-
can do so. This is fundamentally incompatible with the aim of
|
53 |
-
protecting users' freedom to change the software. The systematic
|
54 |
-
pattern of such abuse occurs in the area of products for individuals to
|
55 |
-
use, which is precisely where it is most unacceptable. Therefore, we
|
56 |
-
have designed this version of the GPL to prohibit the practice for those
|
57 |
-
products. If such problems arise substantially in other domains, we
|
58 |
-
stand ready to extend this provision to those domains in future versions
|
59 |
-
of the GPL, as needed to protect the freedom of users.
|
60 |
-
|
61 |
-
Finally, every program is threatened constantly by software patents.
|
62 |
-
States should not allow patents to restrict development and use of
|
63 |
-
software on general-purpose computers, but in those that do, we wish to
|
64 |
-
avoid the special danger that patents applied to a free program could
|
65 |
-
make it effectively proprietary. To prevent this, the GPL assures that
|
66 |
-
patents cannot be used to render the program non-free.
|
67 |
-
|
68 |
-
The precise terms and conditions for copying, distribution and
|
69 |
-
modification follow.
|
70 |
-
|
71 |
-
TERMS AND CONDITIONS
|
72 |
-
|
73 |
-
0. Definitions.
|
74 |
-
|
75 |
-
"This License" refers to version 3 of the GNU General Public License.
|
76 |
-
|
77 |
-
"Copyright" also means copyright-like laws that apply to other kinds of
|
78 |
-
works, such as semiconductor masks.
|
79 |
-
|
80 |
-
"The Program" refers to any copyrightable work licensed under this
|
81 |
-
License. Each licensee is addressed as "you". "Licensees" and
|
82 |
-
"recipients" may be individuals or organizations.
|
83 |
-
|
84 |
-
To "modify" a work means to copy from or adapt all or part of the work
|
85 |
-
in a fashion requiring copyright permission, other than the making of an
|
86 |
-
exact copy. The resulting work is called a "modified version" of the
|
87 |
-
earlier work or a work "based on" the earlier work.
|
88 |
-
|
89 |
-
A "covered work" means either the unmodified Program or a work based
|
90 |
-
on the Program.
|
91 |
-
|
92 |
-
To "propagate" a work means to do anything with it that, without
|
93 |
-
permission, would make you directly or secondarily liable for
|
94 |
-
infringement under applicable copyright law, except executing it on a
|
95 |
-
computer or modifying a private copy. Propagation includes copying,
|
96 |
-
distribution (with or without modification), making available to the
|
97 |
-
public, and in some countries other activities as well.
|
98 |
-
|
99 |
-
To "convey" a work means any kind of propagation that enables other
|
100 |
-
parties to make or receive copies. Mere interaction with a user through
|
101 |
-
a computer network, with no transfer of a copy, is not conveying.
|
102 |
-
|
103 |
-
An interactive user interface displays "Appropriate Legal Notices"
|
104 |
-
to the extent that it includes a convenient and prominently visible
|
105 |
-
feature that (1) displays an appropriate copyright notice, and (2)
|
106 |
-
tells the user that there is no warranty for the work (except to the
|
107 |
-
extent that warranties are provided), that licensees may convey the
|
108 |
-
work under this License, and how to view a copy of this License. If
|
109 |
-
the interface presents a list of user commands or options, such as a
|
110 |
-
menu, a prominent item in the list meets this criterion.
|
111 |
-
|
112 |
-
1. Source Code.
|
113 |
-
|
114 |
-
The "source code" for a work means the preferred form of the work
|
115 |
-
for making modifications to it. "Object code" means any non-source
|
116 |
-
form of a work.
|
117 |
-
|
118 |
-
A "Standard Interface" means an interface that either is an official
|
119 |
-
standard defined by a recognized standards body, or, in the case of
|
120 |
-
interfaces specified for a particular programming language, one that
|
121 |
-
is widely used among developers working in that language.
|
122 |
-
|
123 |
-
The "System Libraries" of an executable work include anything, other
|
124 |
-
than the work as a whole, that (a) is included in the normal form of
|
125 |
-
packaging a Major Component, but which is not part of that Major
|
126 |
-
Component, and (b) serves only to enable use of the work with that
|
127 |
-
Major Component, or to implement a Standard Interface for which an
|
128 |
-
implementation is available to the public in source code form. A
|
129 |
-
"Major Component", in this context, means a major essential component
|
130 |
-
(kernel, window system, and so on) of the specific operating system
|
131 |
-
(if any) on which the executable work runs, or a compiler used to
|
132 |
-
produce the work, or an object code interpreter used to run it.
|
133 |
-
|
134 |
-
The "Corresponding Source" for a work in object code form means all
|
135 |
-
the source code needed to generate, install, and (for an executable
|
136 |
-
work) run the object code and to modify the work, including scripts to
|
137 |
-
control those activities. However, it does not include the work's
|
138 |
-
System Libraries, or general-purpose tools or generally available free
|
139 |
-
programs which are used unmodified in performing those activities but
|
140 |
-
which are not part of the work. For example, Corresponding Source
|
141 |
-
includes interface definition files associated with source files for
|
142 |
-
the work, and the source code for shared libraries and dynamically
|
143 |
-
linked subprograms that the work is specifically designed to require,
|
144 |
-
such as by intimate data communication or control flow between those
|
145 |
-
subprograms and other parts of the work.
|
146 |
-
|
147 |
-
The Corresponding Source need not include anything that users
|
148 |
-
can regenerate automatically from other parts of the Corresponding
|
149 |
-
Source.
|
150 |
-
|
151 |
-
The Corresponding Source for a work in source code form is that
|
152 |
-
same work.
|
153 |
-
|
154 |
-
2. Basic Permissions.
|
155 |
-
|
156 |
-
All rights granted under this License are granted for the term of
|
157 |
-
copyright on the Program, and are irrevocable provided the stated
|
158 |
-
conditions are met. This License explicitly affirms your unlimited
|
159 |
-
permission to run the unmodified Program. The output from running a
|
160 |
-
covered work is covered by this License only if the output, given its
|
161 |
-
content, constitutes a covered work. This License acknowledges your
|
162 |
-
rights of fair use or other equivalent, as provided by copyright law.
|
163 |
-
|
164 |
-
You may make, run and propagate covered works that you do not
|
165 |
-
convey, without conditions so long as your license otherwise remains
|
166 |
-
in force. You may convey covered works to others for the sole purpose
|
167 |
-
of having them make modifications exclusively for you, or provide you
|
168 |
-
with facilities for running those works, provided that you comply with
|
169 |
-
the terms of this License in conveying all material for which you do
|
170 |
-
not control copyright. Those thus making or running the covered works
|
171 |
-
for you must do so exclusively on your behalf, under your direction
|
172 |
-
and control, on terms that prohibit them from making any copies of
|
173 |
-
your copyrighted material outside their relationship with you.
|
174 |
-
|
175 |
-
Conveying under any other circumstances is permitted solely under
|
176 |
-
the conditions stated below. Sublicensing is not allowed; section 10
|
177 |
-
makes it unnecessary.
|
178 |
-
|
179 |
-
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
180 |
-
|
181 |
-
No covered work shall be deemed part of an effective technological
|
182 |
-
measure under any applicable law fulfilling obligations under article
|
183 |
-
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
184 |
-
similar laws prohibiting or restricting circumvention of such
|
185 |
-
measures.
|
186 |
-
|
187 |
-
When you convey a covered work, you waive any legal power to forbid
|
188 |
-
circumvention of technological measures to the extent such circumvention
|
189 |
-
is effected by exercising rights under this License with respect to
|
190 |
-
the covered work, and you disclaim any intention to limit operation or
|
191 |
-
modification of the work as a means of enforcing, against the work's
|
192 |
-
users, your or third parties' legal rights to forbid circumvention of
|
193 |
-
technological measures.
|
194 |
-
|
195 |
-
4. Conveying Verbatim Copies.
|
196 |
-
|
197 |
-
You may convey verbatim copies of the Program's source code as you
|
198 |
-
receive it, in any medium, provided that you conspicuously and
|
199 |
-
appropriately publish on each copy an appropriate copyright notice;
|
200 |
-
keep intact all notices stating that this License and any
|
201 |
-
non-permissive terms added in accord with section 7 apply to the code;
|
202 |
-
keep intact all notices of the absence of any warranty; and give all
|
203 |
-
recipients a copy of this License along with the Program.
|
204 |
-
|
205 |
-
You may charge any price or no price for each copy that you convey,
|
206 |
-
and you may offer support or warranty protection for a fee.
|
207 |
-
|
208 |
-
5. Conveying Modified Source Versions.
|
209 |
-
|
210 |
-
You may convey a work based on the Program, or the modifications to
|
211 |
-
produce it from the Program, in the form of source code under the
|
212 |
-
terms of section 4, provided that you also meet all of these conditions:
|
213 |
-
|
214 |
-
a) The work must carry prominent notices stating that you modified
|
215 |
-
it, and giving a relevant date.
|
216 |
-
|
217 |
-
b) The work must carry prominent notices stating that it is
|
218 |
-
released under this License and any conditions added under section
|
219 |
-
7. This requirement modifies the requirement in section 4 to
|
220 |
-
"keep intact all notices".
|
221 |
-
|
222 |
-
c) You must license the entire work, as a whole, under this
|
223 |
-
License to anyone who comes into possession of a copy. This
|
224 |
-
License will therefore apply, along with any applicable section 7
|
225 |
-
additional terms, to the whole of the work, and all its parts,
|
226 |
-
regardless of how they are packaged. This License gives no
|
227 |
-
permission to license the work in any other way, but it does not
|
228 |
-
invalidate such permission if you have separately received it.
|
229 |
-
|
230 |
-
d) If the work has interactive user interfaces, each must display
|
231 |
-
Appropriate Legal Notices; however, if the Program has interactive
|
232 |
-
interfaces that do not display Appropriate Legal Notices, your
|
233 |
-
work need not make them do so.
|
234 |
-
|
235 |
-
A compilation of a covered work with other separate and independent
|
236 |
-
works, which are not by their nature extensions of the covered work,
|
237 |
-
and which are not combined with it such as to form a larger program,
|
238 |
-
in or on a volume of a storage or distribution medium, is called an
|
239 |
-
"aggregate" if the compilation and its resulting copyright are not
|
240 |
-
used to limit the access or legal rights of the compilation's users
|
241 |
-
beyond what the individual works permit. Inclusion of a covered work
|
242 |
-
in an aggregate does not cause this License to apply to the other
|
243 |
-
parts of the aggregate.
|
244 |
-
|
245 |
-
6. Conveying Non-Source Forms.
|
246 |
-
|
247 |
-
You may convey a covered work in object code form under the terms
|
248 |
-
of sections 4 and 5, provided that you also convey the
|
249 |
-
machine-readable Corresponding Source under the terms of this License,
|
250 |
-
in one of these ways:
|
251 |
-
|
252 |
-
a) Convey the object code in, or embodied in, a physical product
|
253 |
-
(including a physical distribution medium), accompanied by the
|
254 |
-
Corresponding Source fixed on a durable physical medium
|
255 |
-
customarily used for software interchange.
|
256 |
-
|
257 |
-
b) Convey the object code in, or embodied in, a physical product
|
258 |
-
(including a physical distribution medium), accompanied by a
|
259 |
-
written offer, valid for at least three years and valid for as
|
260 |
-
long as you offer spare parts or customer support for that product
|
261 |
-
model, to give anyone who possesses the object code either (1) a
|
262 |
-
copy of the Corresponding Source for all the software in the
|
263 |
-
product that is covered by this License, on a durable physical
|
264 |
-
medium customarily used for software interchange, for a price no
|
265 |
-
more than your reasonable cost of physically performing this
|
266 |
-
conveying of source, or (2) access to copy the
|
267 |
-
Corresponding Source from a network server at no charge.
|
268 |
-
|
269 |
-
c) Convey individual copies of the object code with a copy of the
|
270 |
-
written offer to provide the Corresponding Source. This
|
271 |
-
alternative is allowed only occasionally and noncommercially, and
|
272 |
-
only if you received the object code with such an offer, in accord
|
273 |
-
with subsection 6b.
|
274 |
-
|
275 |
-
d) Convey the object code by offering access from a designated
|
276 |
-
place (gratis or for a charge), and offer equivalent access to the
|
277 |
-
Corresponding Source in the same way through the same place at no
|
278 |
-
further charge. You need not require recipients to copy the
|
279 |
-
Corresponding Source along with the object code. If the place to
|
280 |
-
copy the object code is a network server, the Corresponding Source
|
281 |
-
may be on a different server (operated by you or a third party)
|
282 |
-
that supports equivalent copying facilities, provided you maintain
|
283 |
-
clear directions next to the object code saying where to find the
|
284 |
-
Corresponding Source. Regardless of what server hosts the
|
285 |
-
Corresponding Source, you remain obligated to ensure that it is
|
286 |
-
available for as long as needed to satisfy these requirements.
|
287 |
-
|
288 |
-
e) Convey the object code using peer-to-peer transmission, provided
|
289 |
-
you inform other peers where the object code and Corresponding
|
290 |
-
Source of the work are being offered to the general public at no
|
291 |
-
charge under subsection 6d.
|
292 |
-
|
293 |
-
A separable portion of the object code, whose source code is excluded
|
294 |
-
from the Corresponding Source as a System Library, need not be
|
295 |
-
included in conveying the object code work.
|
296 |
-
|
297 |
-
A "User Product" is either (1) a "consumer product", which means any
|
298 |
-
tangible personal property which is normally used for personal, family,
|
299 |
-
or household purposes, or (2) anything designed or sold for incorporation
|
300 |
-
into a dwelling. In determining whether a product is a consumer product,
|
301 |
-
doubtful cases shall be resolved in favor of coverage. For a particular
|
302 |
-
product received by a particular user, "normally used" refers to a
|
303 |
-
typical or common use of that class of product, regardless of the status
|
304 |
-
of the particular user or of the way in which the particular user
|
305 |
-
actually uses, or expects or is expected to use, the product. A product
|
306 |
-
is a consumer product regardless of whether the product has substantial
|
307 |
-
commercial, industrial or non-consumer uses, unless such uses represent
|
308 |
-
the only significant mode of use of the product.
|
309 |
-
|
310 |
-
"Installation Information" for a User Product means any methods,
|
311 |
-
procedures, authorization keys, or other information required to install
|
312 |
-
and execute modified versions of a covered work in that User Product from
|
313 |
-
a modified version of its Corresponding Source. The information must
|
314 |
-
suffice to ensure that the continued functioning of the modified object
|
315 |
-
code is in no case prevented or interfered with solely because
|
316 |
-
modification has been made.
|
317 |
-
|
318 |
-
If you convey an object code work under this section in, or with, or
|
319 |
-
specifically for use in, a User Product, and the conveying occurs as
|
320 |
-
part of a transaction in which the right of possession and use of the
|
321 |
-
User Product is transferred to the recipient in perpetuity or for a
|
322 |
-
fixed term (regardless of how the transaction is characterized), the
|
323 |
-
Corresponding Source conveyed under this section must be accompanied
|
324 |
-
by the Installation Information. But this requirement does not apply
|
325 |
-
if neither you nor any third party retains the ability to install
|
326 |
-
modified object code on the User Product (for example, the work has
|
327 |
-
been installed in ROM).
|
328 |
-
|
329 |
-
The requirement to provide Installation Information does not include a
|
330 |
-
requirement to continue to provide support service, warranty, or updates
|
331 |
-
for a work that has been modified or installed by the recipient, or for
|
332 |
-
the User Product in which it has been modified or installed. Access to a
|
333 |
-
network may be denied when the modification itself materially and
|
334 |
-
adversely affects the operation of the network or violates the rules and
|
335 |
-
protocols for communication across the network.
|
336 |
-
|
337 |
-
Corresponding Source conveyed, and Installation Information provided,
|
338 |
-
in accord with this section must be in a format that is publicly
|
339 |
-
documented (and with an implementation available to the public in
|
340 |
-
source code form), and must require no special password or key for
|
341 |
-
unpacking, reading or copying.
|
342 |
-
|
343 |
-
7. Additional Terms.
|
344 |
-
|
345 |
-
"Additional permissions" are terms that supplement the terms of this
|
346 |
-
License by making exceptions from one or more of its conditions.
|
347 |
-
Additional permissions that are applicable to the entire Program shall
|
348 |
-
be treated as though they were included in this License, to the extent
|
349 |
-
that they are valid under applicable law. If additional permissions
|
350 |
-
apply only to part of the Program, that part may be used separately
|
351 |
-
under those permissions, but the entire Program remains governed by
|
352 |
-
this License without regard to the additional permissions.
|
353 |
-
|
354 |
-
When you convey a copy of a covered work, you may at your option
|
355 |
-
remove any additional permissions from that copy, or from any part of
|
356 |
-
it. (Additional permissions may be written to require their own
|
357 |
-
removal in certain cases when you modify the work.) You may place
|
358 |
-
additional permissions on material, added by you to a covered work,
|
359 |
-
for which you have or can give appropriate copyright permission.
|
360 |
-
|
361 |
-
Notwithstanding any other provision of this License, for material you
|
362 |
-
add to a covered work, you may (if authorized by the copyright holders of
|
363 |
-
that material) supplement the terms of this License with terms:
|
364 |
-
|
365 |
-
a) Disclaiming warranty or limiting liability differently from the
|
366 |
-
terms of sections 15 and 16 of this License; or
|
367 |
-
|
368 |
-
b) Requiring preservation of specified reasonable legal notices or
|
369 |
-
author attributions in that material or in the Appropriate Legal
|
370 |
-
Notices displayed by works containing it; or
|
371 |
-
|
372 |
-
c) Prohibiting misrepresentation of the origin of that material, or
|
373 |
-
requiring that modified versions of such material be marked in
|
374 |
-
reasonable ways as different from the original version; or
|
375 |
-
|
376 |
-
d) Limiting the use for publicity purposes of names of licensors or
|
377 |
-
authors of the material; or
|
378 |
-
|
379 |
-
e) Declining to grant rights under trademark law for use of some
|
380 |
-
trade names, trademarks, or service marks; or
|
381 |
-
|
382 |
-
f) Requiring indemnification of licensors and authors of that
|
383 |
-
material by anyone who conveys the material (or modified versions of
|
384 |
-
it) with contractual assumptions of liability to the recipient, for
|
385 |
-
any liability that these contractual assumptions directly impose on
|
386 |
-
those licensors and authors.
|
387 |
-
|
388 |
-
All other non-permissive additional terms are considered "further
|
389 |
-
restrictions" within the meaning of section 10. If the Program as you
|
390 |
-
received it, or any part of it, contains a notice stating that it is
|
391 |
-
governed by this License along with a term that is a further
|
392 |
-
restriction, you may remove that term. If a license document contains
|
393 |
-
a further restriction but permits relicensing or conveying under this
|
394 |
-
License, you may add to a covered work material governed by the terms
|
395 |
-
of that license document, provided that the further restriction does
|
396 |
-
not survive such relicensing or conveying.
|
397 |
-
|
398 |
-
If you add terms to a covered work in accord with this section, you
|
399 |
-
must place, in the relevant source files, a statement of the
|
400 |
-
additional terms that apply to those files, or a notice indicating
|
401 |
-
where to find the applicable terms.
|
402 |
-
|
403 |
-
Additional terms, permissive or non-permissive, may be stated in the
|
404 |
-
form of a separately written license, or stated as exceptions;
|
405 |
-
the above requirements apply either way.
|
406 |
-
|
407 |
-
8. Termination.
|
408 |
-
|
409 |
-
You may not propagate or modify a covered work except as expressly
|
410 |
-
provided under this License. Any attempt otherwise to propagate or
|
411 |
-
modify it is void, and will automatically terminate your rights under
|
412 |
-
this License (including any patent licenses granted under the third
|
413 |
-
paragraph of section 11).
|
414 |
-
|
415 |
-
However, if you cease all violation of this License, then your
|
416 |
-
license from a particular copyright holder is reinstated (a)
|
417 |
-
provisionally, unless and until the copyright holder explicitly and
|
418 |
-
finally terminates your license, and (b) permanently, if the copyright
|
419 |
-
holder fails to notify you of the violation by some reasonable means
|
420 |
-
prior to 60 days after the cessation.
|
421 |
-
|
422 |
-
Moreover, your license from a particular copyright holder is
|
423 |
-
reinstated permanently if the copyright holder notifies you of the
|
424 |
-
violation by some reasonable means, this is the first time you have
|
425 |
-
received notice of violation of this License (for any work) from that
|
426 |
-
copyright holder, and you cure the violation prior to 30 days after
|
427 |
-
your receipt of the notice.
|
428 |
-
|
429 |
-
Termination of your rights under this section does not terminate the
|
430 |
-
licenses of parties who have received copies or rights from you under
|
431 |
-
this License. If your rights have been terminated and not permanently
|
432 |
-
reinstated, you do not qualify to receive new licenses for the same
|
433 |
-
material under section 10.
|
434 |
-
|
435 |
-
9. Acceptance Not Required for Having Copies.
|
436 |
-
|
437 |
-
You are not required to accept this License in order to receive or
|
438 |
-
run a copy of the Program. Ancillary propagation of a covered work
|
439 |
-
occurring solely as a consequence of using peer-to-peer transmission
|
440 |
-
to receive a copy likewise does not require acceptance. However,
|
441 |
-
nothing other than this License grants you permission to propagate or
|
442 |
-
modify any covered work. These actions infringe copyright if you do
|
443 |
-
not accept this License. Therefore, by modifying or propagating a
|
444 |
-
covered work, you indicate your acceptance of this License to do so.
|
445 |
-
|
446 |
-
10. Automatic Licensing of Downstream Recipients.
|
447 |
-
|
448 |
-
Each time you convey a covered work, the recipient automatically
|
449 |
-
receives a license from the original licensors, to run, modify and
|
450 |
-
propagate that work, subject to this License. You are not responsible
|
451 |
-
for enforcing compliance by third parties with this License.
|
452 |
-
|
453 |
-
An "entity transaction" is a transaction transferring control of an
|
454 |
-
organization, or substantially all assets of one, or subdividing an
|
455 |
-
organization, or merging organizations. If propagation of a covered
|
456 |
-
work results from an entity transaction, each party to that
|
457 |
-
transaction who receives a copy of the work also receives whatever
|
458 |
-
licenses to the work the party's predecessor in interest had or could
|
459 |
-
give under the previous paragraph, plus a right to possession of the
|
460 |
-
Corresponding Source of the work from the predecessor in interest, if
|
461 |
-
the predecessor has it or can get it with reasonable efforts.
|
462 |
-
|
463 |
-
You may not impose any further restrictions on the exercise of the
|
464 |
-
rights granted or affirmed under this License. For example, you may
|
465 |
-
not impose a license fee, royalty, or other charge for exercise of
|
466 |
-
rights granted under this License, and you may not initiate litigation
|
467 |
-
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
468 |
-
any patent claim is infringed by making, using, selling, offering for
|
469 |
-
sale, or importing the Program or any portion of it.
|
470 |
-
|
471 |
-
11. Patents.
|
472 |
-
|
473 |
-
A "contributor" is a copyright holder who authorizes use under this
|
474 |
-
License of the Program or a work on which the Program is based. The
|
475 |
-
work thus licensed is called the contributor's "contributor version".
|
476 |
-
|
477 |
-
A contributor's "essential patent claims" are all patent claims
|
478 |
-
owned or controlled by the contributor, whether already acquired or
|
479 |
-
hereafter acquired, that would be infringed by some manner, permitted
|
480 |
-
by this License, of making, using, or selling its contributor version,
|
481 |
-
but do not include claims that would be infringed only as a
|
482 |
-
consequence of further modification of the contributor version. For
|
483 |
-
purposes of this definition, "control" includes the right to grant
|
484 |
-
patent sublicenses in a manner consistent with the requirements of
|
485 |
-
this License.
|
486 |
-
|
487 |
-
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
488 |
-
patent license under the contributor's essential patent claims, to
|
489 |
-
make, use, sell, offer for sale, import and otherwise run, modify and
|
490 |
-
propagate the contents of its contributor version.
|
491 |
-
|
492 |
-
In the following three paragraphs, a "patent license" is any express
|
493 |
-
agreement or commitment, however denominated, not to enforce a patent
|
494 |
-
(such as an express permission to practice a patent or covenant not to
|
495 |
-
sue for patent infringement). To "grant" such a patent license to a
|
496 |
-
party means to make such an agreement or commitment not to enforce a
|
497 |
-
patent against the party.
|
498 |
-
|
499 |
-
If you convey a covered work, knowingly relying on a patent license,
|
500 |
-
and the Corresponding Source of the work is not available for anyone
|
501 |
-
to copy, free of charge and under the terms of this License, through a
|
502 |
-
publicly available network server or other readily accessible means,
|
503 |
-
then you must either (1) cause the Corresponding Source to be so
|
504 |
-
available, or (2) arrange to deprive yourself of the benefit of the
|
505 |
-
patent license for this particular work, or (3) arrange, in a manner
|
506 |
-
consistent with the requirements of this License, to extend the patent
|
507 |
-
license to downstream recipients. "Knowingly relying" means you have
|
508 |
-
actual knowledge that, but for the patent license, your conveying the
|
509 |
-
covered work in a country, or your recipient's use of the covered work
|
510 |
-
in a country, would infringe one or more identifiable patents in that
|
511 |
-
country that you have reason to believe are valid.
|
512 |
-
|
513 |
-
If, pursuant to or in connection with a single transaction or
|
514 |
-
arrangement, you convey, or propagate by procuring conveyance of, a
|
515 |
-
covered work, and grant a patent license to some of the parties
|
516 |
-
receiving the covered work authorizing them to use, propagate, modify
|
517 |
-
or convey a specific copy of the covered work, then the patent license
|
518 |
-
you grant is automatically extended to all recipients of the covered
|
519 |
-
work and works based on it.
|
520 |
-
|
521 |
-
A patent license is "discriminatory" if it does not include within
|
522 |
-
the scope of its coverage, prohibits the exercise of, or is
|
523 |
-
conditioned on the non-exercise of one or more of the rights that are
|
524 |
-
specifically granted under this License. You may not convey a covered
|
525 |
-
work if you are a party to an arrangement with a third party that is
|
526 |
-
in the business of distributing software, under which you make payment
|
527 |
-
to the third party based on the extent of your activity of conveying
|
528 |
-
the work, and under which the third party grants, to any of the
|
529 |
-
parties who would receive the covered work from you, a discriminatory
|
530 |
-
patent license (a) in connection with copies of the covered work
|
531 |
-
conveyed by you (or copies made from those copies), or (b) primarily
|
532 |
-
for and in connection with specific products or compilations that
|
533 |
-
contain the covered work, unless you entered into that arrangement,
|
534 |
-
or that patent license was granted, prior to 28 March 2007.
|
535 |
-
|
536 |
-
Nothing in this License shall be construed as excluding or limiting
|
537 |
-
any implied license or other defenses to infringement that may
|
538 |
-
otherwise be available to you under applicable patent law.
|
539 |
-
|
540 |
-
12. No Surrender of Others' Freedom.
|
541 |
-
|
542 |
-
If conditions are imposed on you (whether by court order, agreement or
|
543 |
-
otherwise) that contradict the conditions of this License, they do not
|
544 |
-
excuse you from the conditions of this License. If you cannot convey a
|
545 |
-
covered work so as to satisfy simultaneously your obligations under this
|
546 |
-
License and any other pertinent obligations, then as a consequence you may
|
547 |
-
not convey it at all. For example, if you agree to terms that obligate you
|
548 |
-
to collect a royalty for further conveying from those to whom you convey
|
549 |
-
the Program, the only way you could satisfy both those terms and this
|
550 |
-
License would be to refrain entirely from conveying the Program.
|
551 |
-
|
552 |
-
13. Use with the GNU Affero General Public License.
|
553 |
-
|
554 |
-
Notwithstanding any other provision of this License, you have
|
555 |
-
permission to link or combine any covered work with a work licensed
|
556 |
-
under version 3 of the GNU Affero General Public License into a single
|
557 |
-
combined work, and to convey the resulting work. The terms of this
|
558 |
-
License will continue to apply to the part which is the covered work,
|
559 |
-
but the special requirements of the GNU Affero General Public License,
|
560 |
-
section 13, concerning interaction through a network will apply to the
|
561 |
-
combination as such.
|
562 |
-
|
563 |
-
14. Revised Versions of this License.
|
564 |
-
|
565 |
-
The Free Software Foundation may publish revised and/or new versions of
|
566 |
-
the GNU General Public License from time to time. Such new versions will
|
567 |
-
be similar in spirit to the present version, but may differ in detail to
|
568 |
-
address new problems or concerns.
|
569 |
-
|
570 |
-
Each version is given a distinguishing version number. If the
|
571 |
-
Program specifies that a certain numbered version of the GNU General
|
572 |
-
Public License "or any later version" applies to it, you have the
|
573 |
-
option of following the terms and conditions either of that numbered
|
574 |
-
version or of any later version published by the Free Software
|
575 |
-
Foundation. If the Program does not specify a version number of the
|
576 |
-
GNU General Public License, you may choose any version ever published
|
577 |
-
by the Free Software Foundation.
|
578 |
-
|
579 |
-
If the Program specifies that a proxy can decide which future
|
580 |
-
versions of the GNU General Public License can be used, that proxy's
|
581 |
-
public statement of acceptance of a version permanently authorizes you
|
582 |
-
to choose that version for the Program.
|
583 |
-
|
584 |
-
Later license versions may give you additional or different
|
585 |
-
permissions. However, no additional obligations are imposed on any
|
586 |
-
author or copyright holder as a result of your choosing to follow a
|
587 |
-
later version.
|
588 |
-
|
589 |
-
15. Disclaimer of Warranty.
|
590 |
-
|
591 |
-
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
592 |
-
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
593 |
-
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
594 |
-
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
595 |
-
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
596 |
-
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
597 |
-
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
598 |
-
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
599 |
-
|
600 |
-
16. Limitation of Liability.
|
601 |
-
|
602 |
-
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
603 |
-
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
604 |
-
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
605 |
-
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
606 |
-
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
607 |
-
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
608 |
-
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
609 |
-
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
610 |
-
SUCH DAMAGES.
|
611 |
-
|
612 |
-
17. Interpretation of Sections 15 and 16.
|
613 |
-
|
614 |
-
If the disclaimer of warranty and limitation of liability provided
|
615 |
-
above cannot be given local legal effect according to their terms,
|
616 |
-
reviewing courts shall apply local law that most closely approximates
|
617 |
-
an absolute waiver of all civil liability in connection with the
|
618 |
-
Program, unless a warranty or assumption of liability accompanies a
|
619 |
-
copy of the Program in return for a fee.
|
620 |
-
|
621 |
-
END OF TERMS AND CONDITIONS
|
622 |
-
|
623 |
-
How to Apply These Terms to Your New Programs
|
624 |
-
|
625 |
-
If you develop a new program, and you want it to be of the greatest
|
626 |
-
possible use to the public, the best way to achieve this is to make it
|
627 |
-
free software which everyone can redistribute and change under these terms.
|
628 |
-
|
629 |
-
To do so, attach the following notices to the program. It is safest
|
630 |
-
to attach them to the start of each source file to most effectively
|
631 |
-
state the exclusion of warranty; and each file should have at least
|
632 |
-
the "copyright" line and a pointer to where the full notice is found.
|
633 |
-
|
634 |
-
<one line to give the program's name and a brief idea of what it does.>
|
635 |
-
Copyright (C) <year> <name of author>
|
636 |
-
|
637 |
-
This program is free software: you can redistribute it and/or modify
|
638 |
-
it under the terms of the GNU General Public License as published by
|
639 |
-
the Free Software Foundation, either version 3 of the License, or
|
640 |
-
(at your option) any later version.
|
641 |
-
|
642 |
-
This program is distributed in the hope that it will be useful,
|
643 |
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
644 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
645 |
-
GNU General Public License for more details.
|
646 |
-
|
647 |
-
You should have received a copy of the GNU General Public License
|
648 |
-
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
649 |
-
|
650 |
-
Also add information on how to contact you by electronic and paper mail.
|
651 |
-
|
652 |
-
If the program does terminal interaction, make it output a short
|
653 |
-
notice like this when it starts in an interactive mode:
|
654 |
-
|
655 |
-
<program> Copyright (C) <year> <name of author>
|
656 |
-
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
657 |
-
This is free software, and you are welcome to redistribute it
|
658 |
-
under certain conditions; type `show c' for details.
|
659 |
-
|
660 |
-
The hypothetical commands `show w' and `show c' should show the appropriate
|
661 |
-
parts of the General Public License. Of course, your program's commands
|
662 |
-
might be different; for a GUI interface, you would use an "about box".
|
663 |
-
|
664 |
-
You should also get your employer (if you work as a programmer) or school,
|
665 |
-
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
666 |
-
For more information on this, and how to apply and follow the GNU GPL, see
|
667 |
-
<http://www.gnu.org/licenses/>.
|
668 |
-
|
669 |
-
The GNU General Public License does not permit incorporating your program
|
670 |
-
into proprietary programs. If your program is a subroutine library, you
|
671 |
-
may consider it more useful to permit linking proprietary applications with
|
672 |
-
the library. If this is what you want to do, use the GNU Lesser General
|
673 |
-
Public License instead of this License. But first, please read
|
674 |
-
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -1,57 +1,167 @@
|
|
1 |
-
=== Secure WordPress ===
|
2 |
-
|
3 |
-
|
4 |
-
Tags:
|
|
|
5 |
Requires at least: 3.0
|
6 |
-
Tested up to: 3.
|
7 |
Stable tag: trunk
|
8 |
|
9 |
-
WordPress
|
10 |
|
11 |
== Description ==
|
12 |
-
Secure WordPress
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
1.
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
1. Blocks any bad queries that could be harmful to your WordPress website
|
25 |
|
26 |
= Requirements =
|
27 |
-
|
|
|
28 |
* PHP5 (tested with PHP Interpreter >= 5.2.9)
|
29 |
|
30 |
-
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
== Installation ==
|
34 |
-
1. Make a backup of your current installation
|
35 |
-
1. Unpack the download-package
|
36 |
-
1. Upload the extracted files to the /wp-content/plugins/ directory
|
37 |
-
1. Configure the desired options and activate the plugin from the 'Plugins' menu in WordPress
|
38 |
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
|
41 |
== Screenshots ==
|
42 |
-
|
|
|
|
|
|
|
|
|
43 |
|
44 |
|
45 |
== Other Notes ==
|
46 |
= License =
|
47 |
Good news, this plugin is free for everyone! Since it's released under the GPL, you can use it free of charge on your personal or commercial blog.
|
48 |
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
51 |
|
52 |
|
53 |
== Changelog ==
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
= v2.0.6 =
|
56 |
* New setting: Option to open / close WebsiteDefender dashboard widget
|
57 |
* Update: Internal code updates
|
@@ -62,7 +172,7 @@ The plugin comes with various translations, please refer to the [WordPress Codex
|
|
62 |
* Update: Minor internal updates
|
63 |
|
64 |
= v2.0.4 =
|
65 |
-
* Feature: The
|
66 |
* Update: The plug-in has been made compatible with WP Security Scan and WebsiteDefender WordPress Security
|
67 |
* Feature: Turkish language files added.
|
68 |
|
@@ -98,7 +208,7 @@ The plugin comes with various translations, please refer to the [WordPress Codex
|
|
98 |
= v1.0.3 (10/06/2010) =
|
99 |
* Bugfix: include JS for remove version in backend for Non-Admins
|
100 |
* Bugfix: change for php-warning at update options
|
101 |
-
* Maintenance: update
|
102 |
* Maintenance: update german language files
|
103 |
* Maintenance: update pot file
|
104 |
|
@@ -111,7 +221,7 @@ The plugin comes with various translations, please refer to the [WordPress Codex
|
|
111 |
* add more hooks to remove WordPress Version; was change with WP3.0
|
112 |
|
113 |
= v1.0 (07/09/2010) =
|
114 |
-
*
|
115 |
* small changes on the source
|
116 |
* change owner of the plugin
|
117 |
|
@@ -123,7 +233,7 @@ The plugin comes with various translations, please refer to the [WordPress Codex
|
|
123 |
* add free malware and vulnerabilities scan for test this; the scan has most interested informations and scan all of the server
|
124 |
|
125 |
= v0.8.4 (05/05/2010) =
|
126 |
-
* add
|
127 |
* change uninstall method
|
128 |
|
129 |
= v0.8.3 (04/14/2010) =
|
@@ -134,7 +244,7 @@ The plugin comes with various translations, please refer to the [WordPress Codex
|
|
134 |
* add french language files
|
135 |
|
136 |
= v0.8.1 (03/08/2010) =
|
137 |
-
* remove versions-
|
138 |
* small changes
|
139 |
|
140 |
= v0.8 (03/04/2010) =
|
@@ -158,4 +268,4 @@ The plugin comes with various translations, please refer to the [WordPress Codex
|
|
158 |
|
159 |
= v0.3.8 (06/22/2009) =
|
160 |
* add function to remove theme-update information for non-admins
|
161 |
-
* rescan language file; edit de_DE
|
1 |
+
=== Acunetix Secure WordPress ===
|
2 |
+
Author: Acunetix
|
3 |
+
Contributors: Acunetix
|
4 |
+
Tags: security, securityscan, chmod, permissions, admin, administration, authentication, database, dashboard, post, notification, password, plugin, posts,
|
5 |
+
plugins, private, protection, tracking, wordpress
|
6 |
Requires at least: 3.0
|
7 |
+
Tested up to: 3.6
|
8 |
Stable tag: trunk
|
9 |
|
10 |
+
Scans your WordPress installation for security vulnerabilities.
|
11 |
|
12 |
== Description ==
|
13 |
+
Acunetix Secure WordPress plugin is a free and comprehensive security tool that helps you secure your WordPress
|
14 |
+
installation and suggests corrective measures for: securing file permissions, security of the database, version hiding,
|
15 |
+
WordPress admin protection and lots more.
|
16 |
+
|
17 |
+
Acunetix Secure WordPress checks your WordPress website/blog for security vulnerabilities and suggests corrective actions such as:
|
18 |
+
|
19 |
+
1. Passwords
|
20 |
+
2. File permissions
|
21 |
+
3. Database security
|
22 |
+
4. Version hiding
|
23 |
+
5. WordPress admin protection/security
|
24 |
+
6. Removes WP Generator META tag from core code
|
|
|
25 |
|
26 |
= Requirements =
|
27 |
+
|
28 |
+
* WordPress version 3.0 and higher
|
29 |
* PHP5 (tested with PHP Interpreter >= 5.2.9)
|
30 |
|
31 |
+
For more information on the Acunetix WP Security plug-in and other WordPress security news, visit the
|
32 |
+
<a href="http://www.acunetix.com/blog/" target="_blank">Acunetix Blog</a> and join
|
33 |
+
our <a href="http://www.facebook.com/Acunetix" target="_blank">Facebook</a> page. Post any questions or feedback
|
34 |
+
on the <a href="http://wordpress.org/support/plugin/secure-wordpress" target="_blank">Acunetix Secure WordPress plug-in forum</a>.
|
35 |
+
|
36 |
+
|
37 |
+
= Key security features: =
|
38 |
+
|
39 |
+
* Easy backup of WordPress database for disaster recovery
|
40 |
+
* Removal of error-information on login-page
|
41 |
+
* Addition of index.php to the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listings
|
42 |
+
* Removal of wp-version, except in admin-area
|
43 |
+
* Removal of Really Simple Discovery meta tag
|
44 |
+
* Removal of Windows Live Writer meta tag
|
45 |
+
* Removal of core update information for non-admins
|
46 |
+
* Removal of plugin-update information for non-admins
|
47 |
+
* Removal of theme-update information for non-admins (only WP 2.8 and higher)
|
48 |
+
* Hiding of wp-version in backend-dashboard for non-admins
|
49 |
+
* Removal of version in URLs from scripts and stylesheets only on frontend
|
50 |
+
* Reporting of security overview after WordPress blog is scanned
|
51 |
+
* Reporting of file permissions following security checks
|
52 |
+
* Live traffic tool to monitor your website activity in real time
|
53 |
+
* Integrated tool to change the database prefix
|
54 |
+
* Disabling of database error reporting (if enabled)
|
55 |
+
* Disabling of PHP error reporting
|
56 |
+
|
57 |
+
For more information on the Acunetix Secure WordPress plug-in and other WordPress security news, visit the
|
58 |
+
<a href="http://www.acunetix.com/blog/" target="_blank">Acunetix Blog</a> and join
|
59 |
+
our <a href="http://www.facebook.com/Acunetix" target="_blank">Facebook</a> page. Post any questions or feedback
|
60 |
+
on the <a href="http://wordpress.org/support/plugin/secure-wordpress" target="_blank">Acunetix Secure WordPress plug-in forum</a>.
|
61 |
+
|
62 |
+
|
63 |
|
64 |
== Installation ==
|
|
|
|
|
|
|
|
|
65 |
|
66 |
+
* Make a backup of your current installation
|
67 |
+
* Unpack the downloaded package
|
68 |
+
* Upload the extracted files to the /wp-content/plugins/ directory
|
69 |
+
* Activate the plugin through the 'Plugins' menu in WordPress
|
70 |
+
|
71 |
+
If you encounter any bugs, or have comments or suggestions, please post them on the
|
72 |
+
<a href="http://wordpress.org/support/plugin/secure-wordpress" target="_blank">Acunetix Secure WordPress plug-in forum</a>.
|
73 |
+
|
74 |
+
For more information on the Acunetix Secure WordPress plug-in and other WordPress security news, visit the
|
75 |
+
<a href="http://www.acunetix.com/blog/" target="_blank">Acunetix Blog</a> and join
|
76 |
+
our <a href="http://www.facebook.com/Acunetix" target="_blank">Facebook</a> page. Post any questions or feedback
|
77 |
+
on the <a href="http://wordpress.org/support/plugin/secure-wordpress" target="_blank">Acunetix Secure WordPress plug-in forum</a>.
|
78 |
+
|
79 |
+
== WordPress Security ==
|
80 |
+
|
81 |
+
Security Scanner:
|
82 |
+
|
83 |
+
1. Scans Wordpress installation for file/directory permissions vulnerabilites
|
84 |
+
2. Recommends corrective actions
|
85 |
+
3. Scans for general security vulnerabilities
|
86 |
+
|
87 |
+
|
88 |
+
For more information on the Acunetix Secure WordPress plug-in and other WordPress security news, visit the
|
89 |
+
<a href="http://www.acunetix.com/blog/" target="_blank">Acunetix Blog</a> and join
|
90 |
+
our <a href="http://www.facebook.com/Acunetix" target="_blank">Facebook</a> page. Post any questions or feedback
|
91 |
+
on the <a href="http://wordpress.org/support/plugin/secure-wordpress" target="_blank">Acunetix Secure WordPress plug-in forum</a>.
|
92 |
+
|
93 |
+
|
94 |
+
== Frequently Asked Questions ==
|
95 |
+
|
96 |
+
= Can I deactivate Acunetix Secure WordPress once I've run it once? =
|
97 |
+
|
98 |
+
No. Acunetix Secure WordPress needs to be left activated to work. Version hiding,
|
99 |
+
turning off DB errors, removing WP ID META tag from HTML output, and other
|
100 |
+
functionality will cease if you deactivate the plugin.
|
101 |
+
|
102 |
+
= How do I change the file permissions on my WordPress installation? =
|
103 |
+
|
104 |
+
From the Linux command line (for advanced users):
|
105 |
+
chmod xxx filename.ext
|
106 |
+
(replace xxx with with the permissions settings for the file or folder).
|
107 |
+
|
108 |
+
From your FTP client:
|
109 |
+
Most FTP clients, such as FileZilla, etc, allow for changing file
|
110 |
+
permissions. Please consult your client's documentation for your specific
|
111 |
+
directions.
|
112 |
+
|
113 |
+
For more information, please visit http://codex.wordpress.org/Changing_File_Permissions
|
114 |
+
|
115 |
+
= Why do I need to hide my version of WordPress? =
|
116 |
+
|
117 |
+
Many attackers and automated tools will try and determine software versions
|
118 |
+
before launching exploit code. Removing your WordPress blog version may
|
119 |
+
discourage some attackers and certainly will mitigate virus and malware programs
|
120 |
+
that rely on software versions.
|
121 |
+
|
122 |
+
For more information on the Acunetix Secure WordPress plug-in and other WordPress security news, visit the
|
123 |
+
<a href="http://www.acunetix.com/blog/" target="_blank">Acunetix Blog</a> and join
|
124 |
+
our <a href="http://www.facebook.com/Acunetix" target="_blank">Facebook</a> page. Post any questions or feedback
|
125 |
+
on the <a href="http://wordpress.org/support/plugin/secure-wordpress" target="_blank">Acunetix Secure WordPress plug-in forum</a>.
|
126 |
+
|
127 |
|
128 |
== Screenshots ==
|
129 |
+
|
130 |
+
1. The File Scan Report
|
131 |
+
2. The Settings page, displaying all configurable options
|
132 |
+
3. The Live Traffic page
|
133 |
+
4. The new Dashboard page
|
134 |
|
135 |
|
136 |
== Other Notes ==
|
137 |
= License =
|
138 |
Good news, this plugin is free for everyone! Since it's released under the GPL, you can use it free of charge on your personal or commercial blog.
|
139 |
|
140 |
+
For more information on the Acunetix Secure WordPress plug-in and other WordPress security news, visit the
|
141 |
+
<a href="http://www.acunetix.com/blog/" target="_blank">Acunetix Blog</a> and join
|
142 |
+
our <a href="http://www.facebook.com/Acunetix" target="_blank">Facebook</a> page. Post any questions or feedback
|
143 |
+
on the <a href="http://wordpress.org/support/plugin/secure-wordpress" target="_blank">Acunetix Secure WordPress plug-in forum</a>.
|
144 |
+
|
145 |
|
146 |
|
147 |
== Changelog ==
|
148 |
|
149 |
+
= 3.0.0 =
|
150 |
+
* Complete core update
|
151 |
+
* Added live traffic functionality
|
152 |
+
* Added check for the wp-config.php file one level above if not found in the install directory
|
153 |
+
* Fixed broken functionalities
|
154 |
+
* Security settings are now configurable
|
155 |
+
* Removed all languages
|
156 |
+
|
157 |
+
|
158 |
+
= v2.0.8 =
|
159 |
+
* Removed the registration requirement
|
160 |
+
|
161 |
+
= v2.0.7 =
|
162 |
+
* Update: Updated the deprecated function call get_bloginfo('siteurl') to get_bloginfo('url')
|
163 |
+
* Update: Updated validation for plug-in form fields (email address, user name, target id, etc.)
|
164 |
+
|
165 |
= v2.0.6 =
|
166 |
* New setting: Option to open / close WebsiteDefender dashboard widget
|
167 |
* Update: Internal code updates
|
172 |
* Update: Minor internal updates
|
173 |
|
174 |
= v2.0.4 =
|
175 |
+
* Feature: The Acunetix RSS widget added to the admin dashboard
|
176 |
* Update: The plug-in has been made compatible with WP Security Scan and WebsiteDefender WordPress Security
|
177 |
* Feature: Turkish language files added.
|
178 |
|
208 |
= v1.0.3 (10/06/2010) =
|
209 |
* Bugfix: include JS for remove version in backend for Non-Admins
|
210 |
* Bugfix: change for php-warning at update options
|
211 |
+
* Maintenance: update italian language files
|
212 |
* Maintenance: update german language files
|
213 |
* Maintenance: update pot file
|
214 |
|
221 |
* add more hooks to remove WordPress Version; was change with WP3.0
|
222 |
|
223 |
= v1.0 (07/09/2010) =
|
224 |
+
* release stable version
|
225 |
* small changes on the source
|
226 |
* change owner of the plugin
|
227 |
|
233 |
* add free malware and vulnerabilities scan for test this; the scan has most interested informations and scan all of the server
|
234 |
|
235 |
= v0.8.4 (05/05/2010) =
|
236 |
+
* add method for use the plugin also on ssl-installs
|
237 |
* change uninstall method
|
238 |
|
239 |
= v0.8.3 (04/14/2010) =
|
244 |
* add french language files
|
245 |
|
246 |
= v0.8.1 (03/08/2010) =
|
247 |
+
* remove versions-information on backend with javascript
|
248 |
* small changes
|
249 |
|
250 |
= v0.8 (03/04/2010) =
|
268 |
|
269 |
= v0.3.8 (06/22/2009) =
|
270 |
* add function to remove theme-update information for non-admins
|
271 |
+
* rescan language file; edit de_DE
|
res/backups/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/css/acx-styles-extra.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.update-plugins, #login #login_error, #wp-version-message, #footer-upgrade {display: none !important;}
|
res/css/blog.css
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
#pageblog { margin: 10px 0 10px 16px;}
|
3 |
+
|
4 |
+
#pageblog #header {
|
5 |
+
background: transparent;
|
6 |
+
padding: 10px 10px;
|
7 |
+
overflow: hidden;
|
8 |
+
border-bottom: 1px solid #cccccc;
|
9 |
+
background: url("../images/blog/featured-slider-bg.jpg") no-repeat center top;
|
10 |
+
}
|
11 |
+
#pageblog #header #logo {
|
12 |
+
float: left;
|
13 |
+
width: 301px;
|
14 |
+
margin: 0 13px 0 0;
|
15 |
+
}
|
16 |
+
#pageblog #header #logo a {
|
17 |
+
width: 300px;
|
18 |
+
height: 70px;
|
19 |
+
float: left;
|
20 |
+
text-indent: -9999px;
|
21 |
+
background: url("../images/blog/logo.png") no-repeat left top;
|
22 |
+
}
|
23 |
+
#pageblog #header #main-nav {
|
24 |
+
float: right;
|
25 |
+
zoom: 1;
|
26 |
+
display: block;
|
27 |
+
margin: 27px 0 0 0;
|
28 |
+
}
|
29 |
+
#pageblog #header #main-nav:after {
|
30 |
+
content: '\\0020';
|
31 |
+
display: block;
|
32 |
+
height: 0;
|
33 |
+
clear: both;
|
34 |
+
visibility: hidden;
|
35 |
+
font-size: 0;
|
36 |
+
}
|
37 |
+
|
38 |
+
#pageblog #header #main-nav .facebook, #pageblog #header #main-nav .twitter {
|
39 |
+
float: left;
|
40 |
+
width: 16px;
|
41 |
+
height: 16px;
|
42 |
+
margin: 4px 0 0 10px;
|
43 |
+
text-indent: -9999px;
|
44 |
+
}
|
45 |
+
#pageblog #header #main-nav .facebook { background: url("../images/blog/ico-facebook.png") no-repeat left top; }
|
46 |
+
#pageblog #header #main-nav .twitter { background: url("../images/blog/ico-twitter.png") no-repeat left top; }
|
47 |
+
|
48 |
+
#pageblog #content {
|
49 |
+
background: none repeat scroll 0 0 #F5F5F5;
|
50 |
+
border-top: 1px solid #FFFFFF;
|
51 |
+
padding: 10px 0 5px;
|
52 |
+
width: 100%;
|
53 |
+
}
|
54 |
+
#pageblog #content #feed-list{ list-style-position: outside; list-style-type: none; margin: 10px 30px;}
|
55 |
+
#pageblog #content #feed-list li {
|
56 |
+
padding: 2px 0;
|
57 |
+
}
|
58 |
+
#pageblog #content #feed-list li h4 {
|
59 |
+
background: url('../images/logo-small.png') no-repeat left center;
|
60 |
+
padding: 2px 0 2px 25px;
|
61 |
+
}
|
62 |
+
|
63 |
+
|
64 |
+
|
65 |
+
|
66 |
+
|
res/css/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/css/styles.alerts.css
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* CSS used for alerts page
|
3 |
+
*
|
4 |
+
**/
|
5 |
+
|
6 |
+
/** Indicators **/
|
7 |
+
.wsdplugin_content td.wsdplugin_alert_indicator
|
8 |
+
{
|
9 |
+
text-align: center;
|
10 |
+
vertical-align: middle;
|
11 |
+
width: 14px;
|
12 |
+
height: 17px;
|
13 |
+
}
|
14 |
+
.wsdplugin_content td.wsdplugin_alert_indicator.wsdplugin_alert_indicator_info { background: transparent url('../images/indicator-green.png') no-repeat scroll center center; }
|
15 |
+
.wsdplugin_content td.wsdplugin_alert_indicator.wsdplugin_alert_indicator_low { background: transparent url('../images/indicator-blue.png') no-repeat scroll center center; }
|
16 |
+
.wsdplugin_content td.wsdplugin_alert_indicator.wsdplugin_alert_indicator_medium { background: transparent url('../images/indicator-yellow.png') no-repeat scroll center center; }
|
17 |
+
.wsdplugin_content td.wsdplugin_alert_indicator.wsdplugin_alert_indicator_critical { background: transparent url('../images/indicator-red.png') no-repeat scroll center center; }
|
18 |
+
|
19 |
+
/** Actions Bar **/
|
20 |
+
.wsdplugin_content .wsdplugin_page_alerts_action_bar .wsdplugin_alerts_select_actions select,
|
21 |
+
.wsdplugin_content .wsdplugin_page_alerts_action_bar .wsdplugin_alerts_bulk_actions select,
|
22 |
+
.wsdplugin_content .wsdplugin_page_alerts_action_bar .wsdplugin_alerts_filter_severity select { width: 130px; }
|
23 |
+
.wsdplugin_content .wsdplugin_page_alerts_action_bar .wsdplugin_alerts_sort .wsdplugin_alerts_sort_field { width: 120px; }
|
24 |
+
.wsdplugin_content .wsdplugin_page_alerts_action_bar .wsdplugin_alerts_sort .wsdplugin_alerts_sort_dir { width: 110px; }
|
25 |
+
.wsdplugin_content .wsdplugin_alerts_show_view select { width: 90px; }
|
26 |
+
|
27 |
+
/** Alert Page **/
|
28 |
+
.wsdplugin_content .wsdplugin_page_alerts { }
|
29 |
+
.wsdplugin_content .wsdplugin_alert_section_title
|
30 |
+
{
|
31 |
+
clear: both;
|
32 |
+
padding: 20px 50px 20px 15px;
|
33 |
+
font-size: 18px;
|
34 |
+
border-radius: 3px;
|
35 |
+
margin-bottom: 20px;
|
36 |
+
margin-top: 10px;
|
37 |
+
}
|
38 |
+
.wsdplugin_content .wsdplugin_alert_section_title.wsdplugin_alert_section_title_category { background-color: #F9F9F9; border: 1px solid #DFDFDF; margin-bottom: 10px; box-shadow: 0px 0px 3px #DFDFDF; }
|
39 |
+
|
40 |
+
.acx-section-box { padding-top: 0 !important; padding-bottom: 0 !important;}
|
41 |
+
|
42 |
+
/** Checkbox **/
|
43 |
+
.wsdplugin-overflow { overflow: hidden; }
|
44 |
+
.wsdplugin-overflow .wsdplugin_checkbox { float: left; display: block; text-align: center; vertical-align: middle; width: 13px; margin-top: 1px; }
|
45 |
+
.wsdplugin-overflow span { float: left; display: block; margin-left: 7px; margin-top: 0;}
|
46 |
+
.wsdplugin-overflow .wsdplugin_checkbox a
|
47 |
+
{
|
48 |
+
background: transparent url('../images/checkbox.png') no-repeat scroll 0 0;
|
49 |
+
display: block;
|
50 |
+
width: 13px;
|
51 |
+
height: 13px;
|
52 |
+
}
|
53 |
+
.wsdplugin-overflow .wsdplugin_checkbox-active a { background-position: -13px 0; }
|
54 |
+
|
res/css/styles.base.css
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
.status-indicator { display: block; width: 16px; height: 16px;}
|
3 |
+
/* == 0 */
|
4 |
+
.indicator-green { background: url('../images/indicator-green.png') no-repeat 0 0; }
|
5 |
+
/* == 1 */
|
6 |
+
.indicator-red { background: url('../images/indicator-red.png') no-repeat 0 0; }
|
7 |
+
/* == 2 */
|
8 |
+
.indicator-yellow { background: url('../images/indicator-yellow.png') no-repeat 0 0; }
|
9 |
+
/* == 3 */
|
10 |
+
.indicator-blue { background: url('../images/indicator-blue.png') no-repeat 0 0; }
|
11 |
+
|
12 |
+
.wsd-content-section { float: left; display: block; }
|
13 |
+
|
14 |
+
#wsd-banner-rotator {
|
15 |
+
display: block; clear: both;
|
16 |
+
margin-top: 50px;
|
17 |
+
}
|
18 |
+
|
19 |
+
.entry {}
|
20 |
+
.entry-description { display: none; }
|
21 |
+
|
22 |
+
|
23 |
+
|
24 |
+
|
25 |
+
|
26 |
+
|
27 |
+
|
28 |
+
|
29 |
+
|
30 |
+
|
31 |
+
|
res/css/styles.general.css
ADDED
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
/** General Styling **/
|
3 |
+
|
4 |
+
.wsdplugin_content
|
5 |
+
{
|
6 |
+
|
7 |
+
}
|
8 |
+
|
9 |
+
.wsdplugin_content .wsdplugin_status_page_ico {
|
10 |
+
background: url('../images/logo.png') no-repeat scroll center center transparent;
|
11 |
+
}
|
12 |
+
.wsdplugin_content .wsdplugin_alerts-page-ico {
|
13 |
+
background: url('../images/alerts-page-ico.png') no-repeat scroll center center transparent;
|
14 |
+
}
|
15 |
+
|
16 |
+
|
17 |
+
/*
|
18 |
+
* Error box
|
19 |
+
*/
|
20 |
+
.wsdplugin_content .wsdplugin_error_box { }
|
21 |
+
.wsdplugin_content .wsdplugin_error_box p { overflow: hidden; }
|
22 |
+
.wsdplugin_content .wsdplugin_error_box p strong { display: block; float: left; }
|
23 |
+
.wsdplugin_content .wsdplugin_error_box p a.dismiss { float: right; display: block; }
|
24 |
+
|
25 |
+
|
26 |
+
.wsdplugin_content .wsdplugin_info_box {
|
27 |
+
background-color: #E0E9F9;
|
28 |
+
border-color: #98BCF9;
|
29 |
+
}
|
30 |
+
.wsdplugin_content .wsdplugin_info_box p { overflow: hidden; }
|
31 |
+
.wsdplugin_content .wsdplugin_info_box p strong { display: block; float: left; }
|
32 |
+
.wsdplugin_content .wsdplugin_info_box p a.dismiss { float: right; display: block; }
|
33 |
+
|
34 |
+
|
35 |
+
|
36 |
+
/*
|
37 |
+
* INFO / ERROR boxes
|
38 |
+
*/
|
39 |
+
.wsdplugin_message
|
40 |
+
{
|
41 |
+
margin: 5px 0 15px;
|
42 |
+
padding: 0 0.6em;
|
43 |
+
border-radius: 3px;
|
44 |
+
border: 1px solid;
|
45 |
+
}
|
46 |
+
.wsdplugin_message.wsdplugin_message_warning
|
47 |
+
{
|
48 |
+
background-color: #FFFFE0;
|
49 |
+
border-color: #E6DB55;
|
50 |
+
}
|
51 |
+
.wsdplugin_message.wsdplugin_message_error
|
52 |
+
{
|
53 |
+
background-color: #FCC2C2;
|
54 |
+
border-color: #CC0000;
|
55 |
+
}
|
56 |
+
.wsdplugin_message.wsdplugin_message_success
|
57 |
+
{
|
58 |
+
background-color: #FFFFE0;
|
59 |
+
border-color: #E6DB55;
|
60 |
+
color: #006600;
|
61 |
+
}
|
62 |
+
.wsdplugin_message p
|
63 |
+
{
|
64 |
+
margin: 0.5em 0;
|
65 |
+
padding: 2px;
|
66 |
+
}
|
67 |
+
|
68 |
+
|
69 |
+
|
70 |
+
/*
|
71 |
+
* auth menu
|
72 |
+
*/
|
73 |
+
#wsdplugin_advert a, #wsdplugin_advert img { border: none 0; outline: none 0;}
|
74 |
+
.wsdplugin_website_detail { overflow: hidden; float: none; clear: both;}
|
75 |
+
.wsdplugin_page_title { overflow: hidden; display: block; clear: both; }
|
76 |
+
|
77 |
+
.wsdplugin_page_title h2 {
|
78 |
+
background: url("../images/logo.png") no-repeat scroll 0 50% transparent;
|
79 |
+
padding-left: 45px;
|
80 |
+
}
|
81 |
+
.wsdplugin_page_title #uinfo {
|
82 |
+
float: right;
|
83 |
+
margin: 10px 10px;
|
84 |
+
cursor: pointer;
|
85 |
+
padding: 5px 0;
|
86 |
+
background-color: transparent;
|
87 |
+
border: 1px solid transparent;
|
88 |
+
border-radius: 3px;
|
89 |
+
/*width: 180px;*/
|
90 |
+
overflow: hidden;
|
91 |
+
text-align: right;
|
92 |
+
}
|
93 |
+
.wsdplugin_page_title #uinfo #wsdplugin-current-user-name { display: block; color: #CC0000; padding-right: 7px; padding-left: 7px; }
|
94 |
+
.wsdplugin_page_title #uinfo #wsdplugin-current-user-menu{
|
95 |
+
width: 180px;
|
96 |
+
display: none;
|
97 |
+
margin: 5px 0 0 0 !important;
|
98 |
+
padding: 5px 0;
|
99 |
+
background-color: #F9F9F9;
|
100 |
+
border: 1px solid #DFDFDF;
|
101 |
+
border-top: none 0;
|
102 |
+
border-bottom-right-radius: 3px;
|
103 |
+
border-bottom-left-radius: 3px;
|
104 |
+
}
|
105 |
+
.wsdplugin_page_title #uinfo:hover{
|
106 |
+
background-color: #F9F9F9;
|
107 |
+
border: 1px solid #DFDFDF;
|
108 |
+
border-radius: 3px;
|
109 |
+
}
|
110 |
+
|
111 |
+
.wsdplugin_page_title #uinfo:hover #wsdplugin-current-user-menu{
|
112 |
+
position: absolute; z-index: 9888998;
|
113 |
+
display: block; clear: both;
|
114 |
+
border-top: solid 1px #dadada;
|
115 |
+
right: 25px;
|
116 |
+
}
|
117 |
+
.wsdplugin_page_title #uinfo:hover #wsdplugin-current-user-menu ul,
|
118 |
+
.wsdplugin_page_title #uinfo:hover #wsdplugin-current-user-menu ul li { margin: 0 0; padding: 0 0; width: 100%; list-style-type: none; list-style-position: outside;}
|
119 |
+
.wsdplugin_page_title #uinfo:hover #wsdplugin-current-user-menu ul li { padding: 7px 5px; text-align: left !important; }
|
120 |
+
.wsdplugin_page_title #uinfo:hover #wsdplugin-current-user-menu ul li a { display: block; margin: 3px 5px;}
|
121 |
+
|
122 |
+
|
123 |
+
.wsdplugin_page_title .wsdplugin_error_box { clear: both; }
|
124 |
+
.wsdplugin_page_alerts { float: none; clear: both;}
|
125 |
+
|
126 |
+
|
127 |
+
/*
|
128 |
+
* Page: database
|
129 |
+
*/
|
130 |
+
.acx-section-box { padding: 0.5em; margin: 0.5em; }
|
131 |
+
.acx-common-list {
|
132 |
+
list-style-type: none;
|
133 |
+
list-style-position: outside;
|
134 |
+
list-style-image: none;
|
135 |
+
}
|
136 |
+
.acx-common-list li {
|
137 |
+
background: url('../images/arrow-black-icon.png') no-repeat left center;
|
138 |
+
padding-left: 20px;
|
139 |
+
}
|
140 |
+
.acx-common-list li p span {}
|
141 |
+
.acx-common-list li .acx-icon-alert-critical { padding-top: 2px; }
|
142 |
+
.acx-common-list li .acx-icon-alert-info { padding-top: 2px; }
|
143 |
+
|
144 |
+
.acx-info-box {
|
145 |
+
margin: 7px 7px; padding: 0.2em 0.2em 0.2em 2.2em;
|
146 |
+
font-family: Verdana, Geneva, sans-serif; font-size: 1em; color: #d00000;
|
147 |
+
background: #FFC url('../images/icon-info.png') no-repeat 5px 50%; border: solid 1px #FC0;
|
148 |
+
}
|
149 |
+
|
150 |
+
.acx-info-box-noicon { background-image: none; }
|
151 |
+
|
152 |
+
.acx-notice-info { color: #252525; }
|
153 |
+
.acx-notice-success { color: #060; font-weight: 900; }
|
154 |
+
|
155 |
+
.acx-icon-alert-success { background: url('../images/green-check-icon.png') no-repeat right bottom; padding-right: 25px; line-height: 22px; }
|
156 |
+
.acx-icon-alert-critical { background: url('../images/alert-info-critical.png') no-repeat right bottom; padding-right: 25px; line-height: 22px; }
|
157 |
+
.acx-icon-alert-info { background: url('../images/alert-info-icon.png') no-repeat right bottom; padding-right: 25px; line-height: 22px; }
|
158 |
+
|
159 |
+
.acx-table tbody td.td_success { width: 20px; background: url('../images/green-check-icon.png') no-repeat 5px center; }
|
160 |
+
.acx-table tbody td.td_error { width: 20px; background: url('../images/alert-info-icon.png') no-repeat 5px center; }
|
161 |
+
.acx-table tbody tr:hover { background: #e0e0e0; }
|
162 |
+
|
163 |
+
|
164 |
+
|
165 |
+
.wsdplugin-tooltip {
|
166 |
+
cursor: pointer;
|
167 |
+
/*margin-left: 15px;*/
|
168 |
+
color: #21759B;
|
169 |
+
background: url('../images/icon-info.png') no-repeat 0 0 ! important;;
|
170 |
+
}
|
171 |
+
|
172 |
+
#tt {
|
173 |
+
position:absolute;
|
174 |
+
display:block;
|
175 |
+
}
|
176 |
+
#tttop {
|
177 |
+
display:block;
|
178 |
+
height:5px;
|
179 |
+
margin-left:5px;
|
180 |
+
background:url("../images/tooltips/tt_top.gif") top right no-repeat;
|
181 |
+
overflow:hidden;
|
182 |
+
}
|
183 |
+
#ttcont {
|
184 |
+
display:block;
|
185 |
+
padding:2px 12px 3px 12px;
|
186 |
+
margin-left:5px;
|
187 |
+
background:#666;
|
188 |
+
color:#fff;
|
189 |
+
}
|
190 |
+
#ttbot {
|
191 |
+
display:block;
|
192 |
+
height:5px;
|
193 |
+
margin-left:5px;
|
194 |
+
background:url("../images/tooltips/tt_bottom.gif") top right no-repeat;
|
195 |
+
overflow:hidden;
|
196 |
+
}
|
res/css/styles.status.css
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.wsdplugin_page_status {
|
2 |
+
display: block;
|
3 |
+
border-radius: 3px;
|
4 |
+
border: 1px solid #DFDFDF;
|
5 |
+
box-shadow: 0 0 1px #DFDFDF;
|
6 |
+
background-color: #FFFFFF;
|
7 |
+
padding: 10px 4px;
|
8 |
+
margin-bottom: 15px;
|
9 |
+
margin-top: 5px;
|
10 |
+
}
|
11 |
+
.wsdplugin_status_box {
|
12 |
+
display: inline-block;
|
13 |
+
margin-left: 5px;
|
14 |
+
line-height: 22px;
|
15 |
+
}
|
16 |
+
.wsdplugin_status_box span:first-child {
|
17 |
+
margin-right: 8px;
|
18 |
+
font-weight: bold;
|
19 |
+
display: inline;
|
20 |
+
}
|
21 |
+
.wsdplugin_status_box span.wsdplugin_status_ok {
|
22 |
+
color: #006400;
|
23 |
+
}
|
24 |
+
.wsdplugin_status_box span.wsdplugin_status_bad {
|
25 |
+
color: #cc0000;
|
26 |
+
}
|
27 |
+
.wsdplugin_status_box_spacer {
|
28 |
+
display: inline-block;
|
29 |
+
width: 2px;
|
30 |
+
border-left: 1px solid #BCB8B8;
|
31 |
+
border-right: 1px solid #fff;
|
32 |
+
margin-left: 10px;
|
33 |
+
}
|
34 |
+
.wsdplugin_page_status_horizontal .wsdplugin_status_box span:first-child {
|
35 |
+
display: inline-block;
|
36 |
+
width: 180px;
|
37 |
+
}
|
res/images/ajax-loader.gif
ADDED
Binary file
|
res/images/alert-info-critical.png
ADDED
Binary file
|
res/images/alert-info-icon.png
ADDED
Binary file
|
res/images/alerts-page-ico.png
ADDED
Binary file
|
res/images/arrow-black-icon.png
ADDED
Binary file
|
res/images/blog/featured-slider-bg.jpg
ADDED
Binary file
|
res/images/blog/ico-facebook.png
ADDED
Binary file
|
res/images/blog/ico-twitter.png
ADDED
Binary file
|
res/images/blog/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/images/blog/logo.png
ADDED
Binary file
|
res/images/checkbox.png
ADDED
Binary file
|
{img → res/images}/close-button.png
RENAMED
File without changes
|
res/images/green-check-icon.png
ADDED
Binary file
|
res/images/icon-info.png
ADDED
Binary file
|
res/images/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/images/indicator-blue.png
ADDED
Binary file
|
res/images/indicator-green.png
ADDED
Binary file
|
res/images/indicator-red.png
ADDED
Binary file
|
res/images/indicator-yellow.png
ADDED
Binary file
|
img/wsd-logo-small-list.png → res/images/logo-small.png
RENAMED
File without changes
|
res/images/logo.png
ADDED
Binary file
|
{img → res/images}/rss.png
RENAMED
File without changes
|
res/images/tooltips/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/images/tooltips/tt_bottom.gif
ADDED
Binary file
|
res/images/tooltips/tt_top.gif
ADDED
Binary file
|
res/inc/SwpaCheck.php
ADDED
@@ -0,0 +1,286 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
/**
|
3 |
+
* Class SwpaCheck
|
4 |
+
* Static class. Provides security checks for Wordpress
|
5 |
+
*/
|
6 |
+
class SwpaCheck extends SwpaPlugin
|
7 |
+
{
|
8 |
+
// type: stack - cron
|
9 |
+
public static function adminUsername()
|
10 |
+
{
|
11 |
+
global $wpdb, $wsdPluginAlertsArray;
|
12 |
+
$actionName = $wsdPluginAlertsArray['check_username_admin']['name'];
|
13 |
+
$alertType = $wsdPluginAlertsArray['check_username_admin']['type'];
|
14 |
+
|
15 |
+
$u = $wpdb->get_var("SELECT `ID` FROM $wpdb->users WHERE user_login='admin';");
|
16 |
+
if(empty($u)){
|
17 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
18 |
+
sprintf(__('User <strong>"%s"</strong> (with administrative rights) was not found'), 'admin'),
|
19 |
+
sprintf(__('<p>One well known and dangerous WordPress security vulnerability is User Enumeration, in which a
|
20 |
+
malicious user is able to enumerate a valid WordPress user account to launch a brute force attack against it.
|
21 |
+
In order to help deter this type of attack, it is important not to have the default <a href="%s" target="%s">WordPress administrator</a>
|
22 |
+
username enabled on your blog.</p>'), 'http://www.acunetix.com/blog/web-security-zone/articles/default-wordpress-administrator-account/', '_blank')
|
23 |
+
);
|
24 |
+
}
|
25 |
+
else {
|
26 |
+
// check to see if this user is an administrator
|
27 |
+
$userRole = $wpdb->get_var("SELECT meta_value FROM ".$wpdb->usermeta. " WHERE user_id = $u AND meta_key = '".$wpdb->prefix."user_level'");
|
28 |
+
if(! empty($userRole)){
|
29 |
+
$userRole = intval($userRole);
|
30 |
+
if(in_array($userRole, array(8,9,10))){
|
31 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_CRITICAL,
|
32 |
+
sprintf(__('The default user <strong>"%s"</strong> was found'), 'admin'),
|
33 |
+
sprintf(__('<p>One well known and dangerous WordPress security vulnerability is User Enumeration, in which a malicious user is able to enumerate
|
34 |
+
a valid WordPress user account to launch a brute force attack against it.</p>
|
35 |
+
<p>In order to help deter this type of attack, you should change your default <a href="%s" target="%s">WordPress administrator</a>
|
36 |
+
username to something more difficult to guess.</p>'), 'http://www.acunetix.com/blog/web-security-zone/articles/default-wordpress-administrator-account/', '_blank'),
|
37 |
+
// solution
|
38 |
+
__('<p>Do not make the following change unless you are comfortable working with PHPMyAdmin and MySQL. If not, ask someone who is familiar with WordPress and MySQL to assist you. </p>
|
39 |
+
<p>Also, it is of utmost importance to backup your whole blog - including the database - before making any of the changes described below.</p>
|
40 |
+
<p>To change your WordPress default admin username, navigate to your web host\'s MySQL administration tool (probably PHPMyAdmin) and browse to your WordPress database.
|
41 |
+
Locate the users table, in which you will find a user_login column. One of the rows will contain admin in the field.
|
42 |
+
Change this to a complex and hard-to-guess name, which ideally consists of alpha-numeric characters.</p>
|
43 |
+
<p><strong>IMPORTANT:</strong> Even if the username is hard to guess, you will still need a very strong password.</p>'));
|
44 |
+
return;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
// type: overwrite
|
51 |
+
public static function check_tablePrefix()
|
52 |
+
{
|
53 |
+
global $wpdb, $wsdPluginAlertsArray;
|
54 |
+
$actionName = $wsdPluginAlertsArray['check_table_prefix']['name'];
|
55 |
+
$alertType = $wsdPluginAlertsArray['check_table_prefix']['type'];
|
56 |
+
|
57 |
+
if(strcasecmp('wp_', $wpdb->prefix)==0){
|
58 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_CRITICAL,
|
59 |
+
sprintf(__('The default WordPress database prefix (<strong>%s</strong>) is used'), $wpdb->prefix),
|
60 |
+
__('<p>The majority of reported WordPress database security attacks were performed by exploiting SQL Injection vulnerabilities.
|
61 |
+
By renaming the WordPress database table prefixes you are securing your WordPress blog and website from zero day SQL injections attacks.</p>
|
62 |
+
<p>Therefore by renaming the WordPress database table prefixes, you are automatically enforcing your WordPress database security against such dangerous attacks
|
63 |
+
because the attacker would not be able to guess the table names.</p>
|
64 |
+
<p>We recommend to use difficult to guess prefixes, like long random strings which include both letters and numbers.</p>'),
|
65 |
+
sprintf(__('<p>This plugin can automatically <a href="%s">do this</a> for you, but if you want to do it manually then please read this <a href="%s" target="%s">article</a> first.</p>'),
|
66 |
+
'admin.php?page=wsd_database',
|
67 |
+
'http://www.websitedefender.com/wordpress-security/change-wordpress-database-prefix/', '_blank')
|
68 |
+
);
|
69 |
+
}
|
70 |
+
else {
|
71 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
72 |
+
__('The default WordPress database prefix is not used'),
|
73 |
+
__('<p>The majority of reported WordPress database security attacks were performed by exploiting SQL Injection vulnerabilities.
|
74 |
+
By renaming the WordPress database table prefixes you are securing your WordPress blog and website from zero day SQL injections attacks.</p>
|
75 |
+
<p>Therefore by renaming the WordPress database table prefixes, you are automatically enforcing your WordPress database security against such dangerous attacks because the attacker would not be able to guess the table names.</p>')
|
76 |
+
);
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
// type: overwrite
|
81 |
+
public static function check_currentVersion()
|
82 |
+
{
|
83 |
+
global $wsdPluginAlertsArray;
|
84 |
+
$actionName = $wsdPluginAlertsArray['check_wp_current_version']['name'];
|
85 |
+
$alertType = $wsdPluginAlertsArray['check_wp_current_version']['type'];
|
86 |
+
|
87 |
+
$c = get_site_transient('update_core');
|
88 |
+
if(is_object($c))
|
89 |
+
{
|
90 |
+
if(empty($c->updates)) {
|
91 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
92 |
+
__('You have the latest version of WordPress installed'),
|
93 |
+
__('<p>The latest WordPress version is usually more stable and secure, and is only released to include new features or fix technical and WordPress security bugs;
|
94 |
+
making it an important part of your website administration to keep up to date since some fixes might resolve security issues.<p>
|
95 |
+
<p>Running an older WordPress version could put your blog security at risk, allowing a hacker to exploit known vulnerabilities for your specific version and take full control over your web server.</p>')
|
96 |
+
);
|
97 |
+
}
|
98 |
+
else {
|
99 |
+
if (!empty($c->updates[0]))
|
100 |
+
{
|
101 |
+
$c = $c->updates[0];
|
102 |
+
if (!isset($c->response) || 'latest' == $c->response ) {
|
103 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
104 |
+
__('You have the latest version of WordPress installed'),
|
105 |
+
__('<p>The latest WordPress version is usually more stable and secure, and is only released to include new features or fix technical and WordPress security bugs;
|
106 |
+
making it an important part of your website administration to keep up to date since some fixes might resolve security issues.<p>
|
107 |
+
<p>Running an older WordPress version could put your blog security at risk, allowing a hacker to exploit known vulnerabilities for your specific version and take full control over your web server.</p>')
|
108 |
+
);
|
109 |
+
}
|
110 |
+
elseif ('upgrade' == $c->response) {
|
111 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_CRITICAL,
|
112 |
+
sprintf(__('An updated version of WordPress is available: <strong>%s</strong>'), $c->current),
|
113 |
+
__('<p>The latest WordPress version is usually more stable and secure, and is only released to include new features or fix technical and WordPress security bugs;
|
114 |
+
making it an important part of your website administration to keep up to date since some fixes might resolve security issues.<p>
|
115 |
+
<p>Running an older WordPress version could put your blog security at risk, allowing a hacker to exploit known vulnerabilities for your specific version and take full control over your web server.</p>'),
|
116 |
+
sprintf(__('<p>It is recommended to update your WordPress installation as soon as possible. More information on updating WordPress manually and automatically
|
117 |
+
can be found on the official <a href="%s" target="%s">WordPress site</a>.</p>'), 'http://codex.wordpress.org/Updating_WordPress', '_blank')
|
118 |
+
);
|
119 |
+
}
|
120 |
+
}
|
121 |
+
}
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
// type: overwrite
|
126 |
+
public static function check_files()
|
127 |
+
{
|
128 |
+
global $wsdPluginAlertsArray;
|
129 |
+
|
130 |
+
$actionName = $wsdPluginAlertsArray['check_index_wp_content']['name'];
|
131 |
+
$alertType = $wsdPluginAlertsArray['check_index_wp_content']['type'];
|
132 |
+
$path = WP_CONTENT_DIR.'/index.php';
|
133 |
+
if(!is_file($path)) {
|
134 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
135 |
+
sprintf(__('The <strong>"%s"</strong> file was not found in the <strong>"%s"</strong> directory'), 'index.php', '/wp-content'),
|
136 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible.</p>
|
137 |
+
<p>Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
138 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>"%s"</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if
|
139 |
+
the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
140 |
+
'index.php', 'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
141 |
+
);
|
142 |
+
}
|
143 |
+
else {
|
144 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
145 |
+
sprintf(__('The <strong>"%s"</strong> file was found in the <strong>"%s"</strong> directory'), 'index.php', '/wp-content'),
|
146 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible.</p>
|
147 |
+
<p>Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
148 |
+
);
|
149 |
+
}
|
150 |
+
|
151 |
+
$actionName = $wsdPluginAlertsArray['check_index_wp_plugins']['name'];
|
152 |
+
$alertType = $wsdPluginAlertsArray['check_index_wp_plugins']['type'];
|
153 |
+
$path = WP_CONTENT_DIR.'/plugins/index.php';
|
154 |
+
if(!is_file($path)) {
|
155 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
156 |
+
sprintf(__('The <strong>"%s"</strong> file was not found in the <strong>"%s"</strong> directory'), 'index.php', '/wp-content/plugins'),
|
157 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible.</p>
|
158 |
+
<p>Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
159 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>"%s"</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if
|
160 |
+
the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
161 |
+
'index.php', 'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
162 |
+
);
|
163 |
+
}
|
164 |
+
else {
|
165 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
166 |
+
sprintf(__('The <strong>"%s"</strong> file was found in the <strong>"%s"</strong> directory'), 'index.php', '/wp-content/plugins'),
|
167 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible.</p>
|
168 |
+
<p>Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
169 |
+
);
|
170 |
+
}
|
171 |
+
|
172 |
+
$actionName = $wsdPluginAlertsArray['check_index_wp_themes']['name'];
|
173 |
+
$alertType = $wsdPluginAlertsArray['check_index_wp_themes']['type'];
|
174 |
+
$path = WP_CONTENT_DIR.'/themes/index.php';
|
175 |
+
if(!is_file($path)) {
|
176 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
177 |
+
sprintf(__('The <strong>"%s"</strong> file was not found in the <strong>"%s"</strong> directory'), 'index.php', '/wp-content/themes'),
|
178 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible.</p>
|
179 |
+
<p>Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
180 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>"%s"</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if
|
181 |
+
the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
182 |
+
'index.php', 'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
183 |
+
);
|
184 |
+
}
|
185 |
+
else {
|
186 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
187 |
+
sprintf(__('The <strong>"%s"</strong> file was found in the <strong>"%s"</strong> directory'), 'index.php', '/wp-content/themes'),
|
188 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible.</p>
|
189 |
+
<p>Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
190 |
+
);
|
191 |
+
}
|
192 |
+
|
193 |
+
$actionName = $wsdPluginAlertsArray['check_index_wp_uploads']['name'];
|
194 |
+
$alertType = $wsdPluginAlertsArray['check_index_wp_uploads']['type'];
|
195 |
+
$path = WP_CONTENT_DIR.'/uploads';
|
196 |
+
if(is_dir($path))
|
197 |
+
{
|
198 |
+
if(!is_file(WP_CONTENT_DIR.'/uploads/index.php')) {
|
199 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
200 |
+
sprintf(__('The <strong>"%s"</strong> file was not found in the <strong>"%s"</strong> directory'), 'index.php', '/wp-content/uploads'),
|
201 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible.</p>
|
202 |
+
<p>Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
203 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>"%s"</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if the
|
204 |
+
option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
205 |
+
'index.php', 'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
206 |
+
);
|
207 |
+
}
|
208 |
+
else {
|
209 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
210 |
+
sprintf(__('The <strong>"%s"</strong> file was found in the <strong>"%s"</strong> directory'), 'index.php', '/wp-content/uploads'),
|
211 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible.</p>
|
212 |
+
<p>Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
213 |
+
);
|
214 |
+
}
|
215 |
+
}
|
216 |
+
|
217 |
+
$actionName = $wsdPluginAlertsArray['check_htaccess_wp_admin']['name'];
|
218 |
+
$alertType = $wsdPluginAlertsArray['check_htaccess_wp_admin']['type'];
|
219 |
+
$path = ABSPATH.'wp-admin/.htaccess';
|
220 |
+
if(!is_file($path)){
|
221 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
222 |
+
sprintf(__('The <strong>"%s"</strong> file was not found in the <strong>"%s"</strong> directory'), '.htaccess', 'wp-admin'),
|
223 |
+
__('<p>An .htaccess file is a configuration file which provides the ability to specify configuration settings for a specific directory in a website.
|
224 |
+
The .htaccess file can include one or more configuration settings which apply only for the directory in which the .htaccess file has been placed.
|
225 |
+
So while web servers have their own main configuration settings file, the .htaccess file can be used to override their main configuration settings.</p>'),
|
226 |
+
sprintf(__('<p>Please refer to this <a href="%s" target="%s">article</a> for more information on how to create an .htaccess file.</p>'),
|
227 |
+
'http://www.acunetix.com/blog/web-security-zone/articles/what-is-an-htaccess-file/', '_blank')
|
228 |
+
);
|
229 |
+
}
|
230 |
+
else {
|
231 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
232 |
+
sprintf(__('The <strong>"%s"</strong> file was found in the <strong>"%s"</strong> directory'), '.htaccess', 'wp-admin'),
|
233 |
+
__('<p>An .htaccess file is a configuration file which provides the ability to specify configuration settings for a specific directory in a website.
|
234 |
+
The .htaccess file can include one or more configuration settings which apply only for the directory in which the .htaccess file has been placed.
|
235 |
+
So while web servers have their own main configuration settings file, the .htaccess file can be used to override their main configuration settings.</p>')
|
236 |
+
);
|
237 |
+
}
|
238 |
+
|
239 |
+
$actionName = $wsdPluginAlertsArray['check_readme_wp_root']['name'];
|
240 |
+
$alertType = $wsdPluginAlertsArray['check_readme_wp_root']['type'];
|
241 |
+
$path = ABSPATH.'readme.html';
|
242 |
+
if(is_file($path))
|
243 |
+
{
|
244 |
+
if(is_readable($path)){
|
245 |
+
$fsize = @filesize($path);
|
246 |
+
// couldn't retrieve the file's size
|
247 |
+
if($fsize > 0){
|
248 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
249 |
+
__('The <strong>readme.html</strong> file was found in the root directory'),
|
250 |
+
__('<p>A default WordPress installation contains a readme.html file.
|
251 |
+
This file is a simple html file that does not contain executable content that can be exploited by hackers or malicious users.
|
252 |
+
Still, this file can provide hackers the version of your WordPress installation, therefore it is important to either delete this file or make it inaccessible for your visitors.</p>'),
|
253 |
+
sprintf(__('<p>This plugin can automatically delete its content if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.
|
254 |
+
You can also delete this file manually by connecting to your website through an FTP connection.</p>'),'Empty the content of the readme.html file from the root directory.')
|
255 |
+
);
|
256 |
+
}
|
257 |
+
else {
|
258 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
259 |
+
__('The <strong>readme.html</strong> file is either empty or not accessible.'),
|
260 |
+
__('<p>A default WordPress installation contains a readme.html file.
|
261 |
+
This file is a simple html file that does not contain executable content that can be exploited by hackers or malicious users.
|
262 |
+
Still, this file can provide hackers the version of your WordPress installation, therefore it is important to either delete this file or make it inaccessible for your visitors.</p>')
|
263 |
+
);
|
264 |
+
}
|
265 |
+
}
|
266 |
+
else {
|
267 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
268 |
+
__('The <strong>readme.html</strong> file is not accessible.'),
|
269 |
+
__('<p>A default WordPress installation contains a readme.html file.
|
270 |
+
This file is a simple html file that does not contain executable content that can be exploited by hackers or malicious users.
|
271 |
+
Still, this file can provide hackers the version of your WordPress installation, therefore it is important to either delete this file or make it inaccessible for your visitors.</p>')
|
272 |
+
);
|
273 |
+
}
|
274 |
+
}
|
275 |
+
else{
|
276 |
+
// file not found or file is not accessible
|
277 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
278 |
+
__('The <strong>readme.html</strong> file was not found in the root directory'),
|
279 |
+
__('<p>A default WordPress installation contains a readme.html file.
|
280 |
+
This file is a simple html file that does not contain executable content that can be exploited by hackers or malicious users.
|
281 |
+
Still, this file can provide hackers the version of your WordPress installation, therefore it is important to either delete this file or make it inaccessible for your visitors.</p>')
|
282 |
+
);
|
283 |
+
}
|
284 |
+
}
|
285 |
+
|
286 |
+
}
|
res/inc/SwpaInfo.php
ADDED
@@ -0,0 +1,317 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class SwpaInfo
|
4 |
+
* Static class. Provides common methods to inspect a WordPress installation settings
|
5 |
+
*/
|
6 |
+
class SwpaInfo
|
7 |
+
{
|
8 |
+
public static function getCurrentVersionInfo()
|
9 |
+
{
|
10 |
+
$c = get_site_transient( 'update_core' );
|
11 |
+
if ( is_object($c))
|
12 |
+
{
|
13 |
+
if (empty($c->updates))
|
14 |
+
{
|
15 |
+
return '<span class="acx-icon-alert-success">'.__('You have the latest version of Wordpress.').'</span>';
|
16 |
+
}
|
17 |
+
|
18 |
+
if (!empty($c->updates[0]))
|
19 |
+
{
|
20 |
+
$c = $c->updates[0];
|
21 |
+
|
22 |
+
if ( !isset($c->response) || 'latest' == $c->response ) {
|
23 |
+
return '<span class="acx-icon-alert-success">'.__('You have the latest version of Wordpress.').'</span>';
|
24 |
+
}
|
25 |
+
|
26 |
+
if ('upgrade' == $c->response)
|
27 |
+
{
|
28 |
+
$lv = $c->current;
|
29 |
+
$m = '<span class="acx-icon-alert-critical">'.sprintf('A new version of Wordpress <strong>(%s)</strong> is available. You should upgrade to the latest version.', $lv).'</span>';
|
30 |
+
return __($m);
|
31 |
+
}
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
return '<span class="acx-icon-alert-critical">'.__('An error has occurred while trying to retrieve the status of your Wordpress version.').'</span>';
|
36 |
+
}
|
37 |
+
|
38 |
+
public static function getDatabasePrefixInfo()
|
39 |
+
{
|
40 |
+
global $table_prefix;
|
41 |
+
|
42 |
+
if (strcasecmp('wp_', $table_prefix)==0) {
|
43 |
+
return '<span class="acx-icon-alert-critical">'
|
44 |
+
.__('Your database prefix should not be <code>wp_</code>.')
|
45 |
+
.'(<a href="http://www.websitedefender.com/wordpress-security/wordpress-database-tables-prefix/" target="_blank">'.__('read more').'</a>)</span>';
|
46 |
+
}
|
47 |
+
|
48 |
+
return '<span class="acx-icon-alert-success">'.__('Your database prefix is not <code>wp_</code>.').'</span>';
|
49 |
+
}
|
50 |
+
|
51 |
+
public static function getWpVersionStatusInfo()
|
52 |
+
{
|
53 |
+
if (SwpaSecurity::$isVersionHidden) {
|
54 |
+
return '<span class="acx-icon-alert-success">'.__('The Wordpress version <code>is</code> hidden for all users but administrators.').'</span>';
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
public static function getPhpStartupErrorStatusInfo()
|
59 |
+
{
|
60 |
+
$dse = strtolower(ini_get('display_startup_errors'));
|
61 |
+
if ($dse == 0) {
|
62 |
+
return '<span class="acx-icon-alert-success">'.__('Startup errors <code>are not</code> displayed.').'</span><br/>';
|
63 |
+
}
|
64 |
+
|
65 |
+
return '<span class="acx-icon-alert-critical">'.__('Startup errors <code>are displayed</code>.').'</span>'.'<br/>';
|
66 |
+
}
|
67 |
+
|
68 |
+
public static function getAdminUsernameInfo()
|
69 |
+
{
|
70 |
+
global $wpdb;
|
71 |
+
|
72 |
+
$u = $wpdb->get_var("SELECT `ID` FROM $wpdb->users WHERE user_login='admin';");
|
73 |
+
|
74 |
+
if (empty($u)) {
|
75 |
+
return '<span class="acx-icon-alert-success">'.__('User <code>admin</code> was not found.').'</span>';
|
76 |
+
}
|
77 |
+
|
78 |
+
return '<span class="acx-icon-alert-critical">'.__('User <code>admin</code> was found! You should change it in order to avoid user enumeration attacks.').'</span>';
|
79 |
+
}
|
80 |
+
|
81 |
+
public static function getWpAdminHtaccessInfo()
|
82 |
+
{
|
83 |
+
$file = trailingslashit(ABSPATH).'wp-admin/.htaccess';
|
84 |
+
if (is_file($file)) {
|
85 |
+
return '<span class="acx-icon-alert-success">'.__('The <code>.htaccess</code> file was found in the <code>wp-admin</code> directory.').'</span>';
|
86 |
+
}
|
87 |
+
|
88 |
+
return '<span class="acx-icon-alert-info">'
|
89 |
+
.__('The <code>.htaccess</code> file was not found in the <code>wp-admin</code> directory.')
|
90 |
+
.'(<a href="http://www.websitedefender.com/wordpress-security/htaccess-files-wordpress-security/" target="_blank">'.__('read more').'</a>)</span>';
|
91 |
+
}
|
92 |
+
|
93 |
+
public static function getDatabaseUserAccessRightsInfo()
|
94 |
+
{
|
95 |
+
$rights = SwpaInfoServer::getDatabaseUserAccessRights();
|
96 |
+
$rightsNeeded = $rights['rightsNeeded'];
|
97 |
+
$rightsHaving = $rights['rightsHaving'];
|
98 |
+
$rightsMissing = array_diff($rightsNeeded, $rightsHaving);
|
99 |
+
|
100 |
+
if ($rights['rightsTooMuch']) {
|
101 |
+
$e = '<code>'.implode('</code>, <code>', $rightsNeeded).'</code>';
|
102 |
+
$m = sprintf(__("Your currently used User to access the WordPress Database <code>holds too many rights</code>.
|
103 |
+
We suggest that you limit his rights (to only %s) or to use another User with more limited rights instead, to increase your website's Security."),$e);
|
104 |
+
return '<span class="acx-icon-alert-info">'.$m.'</span>';
|
105 |
+
}
|
106 |
+
else
|
107 |
+
{
|
108 |
+
if($rights['rightsEnough']){
|
109 |
+
$m = __("Your currently used User to access the WordPress Database holds the appropriate rights to interact with the database.");
|
110 |
+
return '<span class="acx-icon-alert-success">'.$m.'</span>';
|
111 |
+
}
|
112 |
+
else {
|
113 |
+
$missing = '<code>'.implode('</code>, <code>', $rightsMissing).'</code>';
|
114 |
+
$m = sprintf(__("Your currently used User to access the WordPress Database is missing the following rights to interact with the database: %s"),$missing);
|
115 |
+
return '<span class="acx-icon-alert-info">'.$m.'</span>';
|
116 |
+
}
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
public static function getWpContentIndexInfo()
|
121 |
+
{
|
122 |
+
if (is_file(trailingslashit(WP_CONTENT_DIR).'index.php')) {
|
123 |
+
return '<span class="acx-icon-alert-success">'.__('The <code>index.php</code> file <code>was found</code> in the wp-content directory.').'</span>'.'<br/>';
|
124 |
+
}
|
125 |
+
|
126 |
+
return '<span class="acx-icon-alert-info">'.__('The <code>index.php</code> file <code>was not found</code> in the wp-content directory! You should create one in order to prevent directory listings.').'</span>'.'<br/>';
|
127 |
+
}
|
128 |
+
|
129 |
+
public static function getWpContentPluginsIndexInfo()
|
130 |
+
{
|
131 |
+
$dirPath = trailingslashit(WP_CONTENT_DIR).'plugins/';
|
132 |
+
if(!is_dir($dirPath)) { return ''; }
|
133 |
+
if (is_file($dirPath.'index.php')) {
|
134 |
+
return '<span class="acx-icon-alert-success">'.__('The <code>index.php</code> file <code>was found</code> in the plugins directory.').'</span>'.'<br/>';
|
135 |
+
}
|
136 |
+
|
137 |
+
return '<span class="acx-icon-alert-info">'.acxt_t('The <code>index.php</code> file <code>was not found</code> in the plugins directory! You should create one in order to prevent directory listings.').'</span>'.'<br/>';
|
138 |
+
}
|
139 |
+
|
140 |
+
public static function getWpContentThemesIndexInfo()
|
141 |
+
{
|
142 |
+
$dirPath = trailingslashit(WP_CONTENT_DIR).'themes/';
|
143 |
+
if(!is_dir($dirPath)) { return ''; }
|
144 |
+
if (is_file($dirPath.'index.php')) {
|
145 |
+
return '<span class="acx-icon-alert-success">'.__('The <code>index.php</code> file <code>was found</code> in the themes directory.').'</span>'.'<br/>';
|
146 |
+
}
|
147 |
+
|
148 |
+
return '<span class="acx-icon-alert-info">'.__('The <code>index.php</code> file <code>was not found</code> in the themes directory! You should create one in order to prevent directory listings.').'</span>'.'<br/>';
|
149 |
+
}
|
150 |
+
|
151 |
+
public static function getWpContentUploadsIndexInfo()
|
152 |
+
{
|
153 |
+
$dirPath = trailingslashit(WP_CONTENT_DIR).'uploads/';
|
154 |
+
if(!is_dir($dirPath)) { return ''; }
|
155 |
+
if (is_file($dirPath.'index.php')) {
|
156 |
+
return '<span class="acx-icon-alert-success">'.__('The <code>index.php</code> file <code>was found</code> in the uploads directory.').'</span>'.'<br/>';
|
157 |
+
}
|
158 |
+
return '<span class="acx-icon-alert-info">'.__('The <code>index.php</code> file <code>was not found</code> in the uploads directory! You should create one in order to prevent directory listings.').'</span>'.'<br/>';
|
159 |
+
}
|
160 |
+
|
161 |
+
}
|
162 |
+
|
163 |
+
class SwpaInfoServer extends SwpaInfo
|
164 |
+
{
|
165 |
+
public static function getServerInfo()
|
166 |
+
{
|
167 |
+
global $wpdb;
|
168 |
+
$sqlversion = $wpdb->get_var("SELECT VERSION() AS version");
|
169 |
+
$mysqlinfo = $wpdb->get_results("SHOW VARIABLES LIKE 'sql_mode'");
|
170 |
+
if (is_array($mysqlinfo)) $sql_mode = $mysqlinfo[0]->Value;
|
171 |
+
if (empty($sql_mode)) $sql_mode = __('Not set');
|
172 |
+
$sm = ini_get('safe_mode');
|
173 |
+
if (strcasecmp('On', $sm) == 0) { $safe_mode = __('On'); }
|
174 |
+
else { $safe_mode = __('Off'); }
|
175 |
+
if(ini_get('allow_url_fopen')) $allow_url_fopen = __('On');
|
176 |
+
else $allow_url_fopen = __('Off');
|
177 |
+
if(ini_get('upload_max_filesize')) $upload_max = ini_get('upload_max_filesize');
|
178 |
+
else $upload_max = __('N/A');
|
179 |
+
if(ini_get('post_max_size')) $post_max = ini_get('post_max_size');
|
180 |
+
else $post_max = __('N/A');
|
181 |
+
if(ini_get('max_execution_time')) $max_execute = ini_get('max_execution_time');
|
182 |
+
else $max_execute = __('N/A');
|
183 |
+
if(ini_get('memory_limit')) $memory_limit = ini_get('memory_limit');
|
184 |
+
else $memory_limit = __('N/A');
|
185 |
+
if (function_exists('memory_get_usage')) $memory_usage = round(memory_get_usage() / 1024 / 1024, 2) . __(' MByte');
|
186 |
+
else $memory_usage = __('N/A');
|
187 |
+
if (is_callable('exif_read_data')) $exif = __('Yes'). " ( V" . substr(phpversion('exif'),0,4) . ")" ;
|
188 |
+
else $exif = __('No');
|
189 |
+
if (is_callable('iptcparse')) $iptc = __('Yes');
|
190 |
+
else $iptc = __('No');
|
191 |
+
if (is_callable('xml_parser_create')) $xml = __('Yes');
|
192 |
+
else $xml = __('No');
|
193 |
+
|
194 |
+
$sqlModeText = __('SQL Mode (sql_mode) is a MySQL system variable. By means of this variable the MySQL Server SQL Mode is controlled.
|
195 |
+
Many operational characteristics of MySQL Server can be configured by setting the SQL Mode.
|
196 |
+
By setting the SQL Mode appropriately, a client program can instruct the server how strict or forgiving to be about accepting input data, enable or disable behaviors relating to standard SQL conformance,
|
197 |
+
or provide better compatibility with other database systems. By default, the server uses a sql_mode value of \'\' (the empty string), which enables no restrictions.
|
198 |
+
Thus, the server operates in forgiving mode (non-strict mode) by default. In non-strict mode, the MySQL server converts erroneous input values to the closest legal
|
199 |
+
values (as determined from column definitions) and continues on its way.');
|
200 |
+
$phpSafeModeText = __('The PHP Safe Mode (safe_mode) is an attempt to solve the shared-server security problem.
|
201 |
+
It is architecturally incorrect to try to solve this problem at the PHP level, but since the alternatives at the web server and OS levels aren\'t
|
202 |
+
very realistic, many people, especially ISP\'s, use safe mode for now.');
|
203 |
+
$phpAllowFopenText = __('PHP allow_url_fopen option, if enabled (allows PHP\'s file functions - such as \'file_get_contents()\' and the \'include\' and \'require\' statements),
|
204 |
+
can retrieve data from remote locations, like an FTP or web site, which may pose a security risk.');
|
205 |
+
$phpMemoryLimitText = __('PHP memory_limit option sets the maximum amount of memory in bytes that a script is allowed to allocate.
|
206 |
+
By enabling a realistic memory_limit you can protect your applications from certain types of Denial of Service attacks, and also from bugs in
|
207 |
+
applications (such as infinite loops, poor use of image based functions, or other memory intensive mistakes).');
|
208 |
+
$phpMaxUploadSizeText = __('PHP upload_max_filesize option limits the maximum size of files that PHP will accept through uploads. Attackers may attempt to send grossly oversized files to exhaust your system resources;
|
209 |
+
by setting a realistic value here you can mitigate some of the damage by those attacks.');
|
210 |
+
$phpMaxPostSizeText = __('PHP post_max_size option limits the maximum size of the POST request that PHP will process. Attackers may attempt to send grossly oversized POST requests to exhaust your system resources;
|
211 |
+
by setting a realistic value here you can mitigate some of the damage by those attacks.');
|
212 |
+
$phpScriptExecTimeText = __('PHP max_execution_time option sets the maximum time in seconds a script is allowed to run before it is terminated by the parser.
|
213 |
+
This helps prevent poorly written scripts from tying up the server.');
|
214 |
+
$exifText = __('PHP exif extension enables you to work with image meta data. For example, you may use exif functions to read meta data of pictures taken from digital cameras by working with
|
215 |
+
information stored in the headers of the JPEG and TIFF images.');
|
216 |
+
$iptcText = __('IPTC data is a method of storing textual information in images defined by the International Press Telecommunications Council.
|
217 |
+
It was developed for press photographers who need to attach information to images when they are submitting them electronically but it is useful for all photographers.
|
218 |
+
It provides a standard way of storing information such as captions, keywords, location. Because the information is stored in the image in a standard way this information
|
219 |
+
can be accessed by other IPTC aware applications.');
|
220 |
+
$xmlText = __('XML (eXtensible Markup Language) is a data format for structured document interchange on the Web. It is a standard defined by the World Wide Web Consortium (W3C).');
|
221 |
+
|
222 |
+
$str = '<script type="text/javascript" src="'. SwpaUtil::jsUrl('wsdplugin_glossary_tooltip.js').'"></script>';
|
223 |
+
$str .= '<ul class="acx-common-list">';
|
224 |
+
$str .= '<li>'. __('Operating System').' : <strong> '.PHP_OS.'</strong></li>';
|
225 |
+
$str .= '<li>'. __('Server').' : <strong>'.$_SERVER["SERVER_SOFTWARE"].'</strong></li>';
|
226 |
+
$str .= '<li>'. __('Memory usage').' : <strong>'.$memory_usage.'</strong></li>';
|
227 |
+
$str .= '<li>'. __('PHP Version').' : <strong>'. PHP_VERSION.'</strong></li>';
|
228 |
+
$str .= '<li>'. __('MYSQL Version').' : <strong>'.$sqlversion.'</strong></li>';
|
229 |
+
$str .= '</ul>';
|
230 |
+
|
231 |
+
$str .= '<p class="clear" style="margin-top: 7px;"></p>';
|
232 |
+
|
233 |
+
$str .= '<ul class="acx-common-list">';
|
234 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$sqlModeText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('SQL Mode').' : <strong>'.$sql_mode.'</strong></li>';
|
235 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$phpSafeModeText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP Safe Mode').' : <strong>'. $safe_mode.'</strong></li>';
|
236 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$phpAllowFopenText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP Allow URL fopen').' : <strong>'. $allow_url_fopen.'</strong></li>';
|
237 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$phpMemoryLimitText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP Memory Limit').' : <strong>'. $memory_limit.'</strong></li>';
|
238 |
+
$str .= '<li class="wsdplugin-tooltip"onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$phpMaxUploadSizeText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP Max Upload Size').' : <strong>'. $upload_max.'</strong></li>';
|
239 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$phpMaxPostSizeText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP Max Post Size').' : <strong>'. $post_max.'</strong></li>';
|
240 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$phpScriptExecTimeText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP Max Script Execute Time').' : <strong>'. $max_execute.'s</strong></li>';
|
241 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$exifText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP Exif support').' : <strong>'. $exif.'</strong></li>';
|
242 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$iptcText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP IPTC support').' : <strong>'. $iptc.'</strong></li>';
|
243 |
+
$str .= '<li class="wsdplugin-tooltip" onmouseover="wsdplugin_glossary_tooltip.show(this);" data-bind-title="'.$xmlText.'" onmouseout="wsdplugin_glossary_tooltip.hide();">'. __('PHP XML support').' : <strong>'. $xml.'</strong></li>';
|
244 |
+
$str .= '</ul>';
|
245 |
+
return $str;
|
246 |
+
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* @public
|
250 |
+
* @static
|
251 |
+
* @global $wpdb, DB_USER, DB_HOST
|
252 |
+
*
|
253 |
+
* Retrieve the rights the current used user to connect to the database server has.
|
254 |
+
*
|
255 |
+
* @return array array('rightsEnough' => true|false, 'rightsTooMuch' => true|false, 'rightsMissing' => array, 'rightsNeeded' => array);
|
256 |
+
*/
|
257 |
+
public static function getDatabaseUserAccessRights()
|
258 |
+
{
|
259 |
+
global $wpdb;
|
260 |
+
|
261 |
+
$rightsNeeded = array('SELECT','INSERT','UPDATE','DELETE','ALTER');
|
262 |
+
$data = array(
|
263 |
+
'rightsEnough' => false,
|
264 |
+
'rightsTooMuch' => false,
|
265 |
+
'rightsHaving' => array(),
|
266 |
+
'rightsNeeded' => $rightsNeeded
|
267 |
+
);
|
268 |
+
|
269 |
+
$rights = $wpdb->get_results("SHOW GRANTS FOR '".DB_USER."'@'".DB_HOST."'", ARRAY_N);
|
270 |
+
|
271 |
+
if (empty($rights)) {
|
272 |
+
//return $data;
|
273 |
+
$rights = $wpdb->get_results("SHOW GRANTS FOR current_user()", ARRAY_N);
|
274 |
+
if(empty($rights)){
|
275 |
+
return $data;
|
276 |
+
}
|
277 |
+
}
|
278 |
+
|
279 |
+
foreach($rights as $_right)
|
280 |
+
{
|
281 |
+
$right = $_right[0];
|
282 |
+
//#! no rights
|
283 |
+
if(preg_match("/GRANT USAGE ON/", $right)){
|
284 |
+
continue;
|
285 |
+
}
|
286 |
+
//#! way too many. db scope || global scope
|
287 |
+
$right = str_replace('\\','',$right);
|
288 |
+
$pattern = "/ALL PRIVILEGES ON `?".preg_quote(DB_NAME)."`?/";
|
289 |
+
if(preg_match($pattern, $right) || preg_match("/ALL PRIVILEGES ON \*\./", $right)){
|
290 |
+
array_push($rightsNeeded, 'CREATE');
|
291 |
+
$data = array(
|
292 |
+
'rightsEnough' => true,
|
293 |
+
'rightsTooMuch' => true,
|
294 |
+
'rightsHaving' => $rightsNeeded,
|
295 |
+
'rightsNeeded' => $rightsNeeded
|
296 |
+
);
|
297 |
+
break;
|
298 |
+
}
|
299 |
+
//#! more secure. db scope || global scope
|
300 |
+
elseif(preg_match_all("/GRANT (.*) ON `?".preg_quote(DB_NAME)."`?/",$right,$matches) || preg_match_all("/GRANT (.*) ON \*\./",$right,$matches)){
|
301 |
+
if(! empty($matches[1][0])){
|
302 |
+
$foundRights = explode(',', $matches[1][0]);
|
303 |
+
$foundRights = array_map("trim", $foundRights);
|
304 |
+
$missingRights = array_diff($rightsNeeded, $foundRights);
|
305 |
+
$data = array(
|
306 |
+
'rightsEnough' => (empty($missingRights) ? true : false),
|
307 |
+
'rightsTooMuch' => false,
|
308 |
+
'rightsHaving' => $foundRights,
|
309 |
+
'rightsNeeded' => $rightsNeeded
|
310 |
+
);
|
311 |
+
break;
|
312 |
+
}
|
313 |
+
}
|
314 |
+
}
|
315 |
+
return $data;
|
316 |
+
}
|
317 |
+
}
|
res/inc/SwpaLiveTraffic.php
ADDED
@@ -0,0 +1,222 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
/**
|
3 |
+
* Class SwpaLiveTraffic
|
4 |
+
*/
|
5 |
+
class SwpaLiveTraffic
|
6 |
+
{
|
7 |
+
private function __construct(){}
|
8 |
+
private function __clone(){}
|
9 |
+
|
10 |
+
final public static function clearEvents()
|
11 |
+
{
|
12 |
+
global $wpdb;
|
13 |
+
$settings = SwpaPlugin::getSettings();
|
14 |
+
$keepMaxEntries = (int)$settings['keepNumEntriesLiveTraffic'];
|
15 |
+
|
16 |
+
if($keepMaxEntries < 1){
|
17 |
+
$query = "TRUNCATE ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME);
|
18 |
+
$wpdb->query($query);
|
19 |
+
return;
|
20 |
+
}
|
21 |
+
|
22 |
+
$optData = get_option('SWPA_PLUGIN_ENTRIES_LIVE_TRAFFIC');
|
23 |
+
if(empty($optData)){
|
24 |
+
return;
|
25 |
+
}
|
26 |
+
|
27 |
+
$numEntries = $wpdb->get_var("SELECT COUNT(entryId) FROM ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME));
|
28 |
+
|
29 |
+
if($numEntries <> $keepMaxEntries){
|
30 |
+
update_option('SWPA_PLUGIN_ENTRIES_LIVE_TRAFFIC', $numEntries);
|
31 |
+
}
|
32 |
+
|
33 |
+
if(intval($optData) <= $keepMaxEntries){
|
34 |
+
return;
|
35 |
+
}
|
36 |
+
|
37 |
+
$tableName = SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME);
|
38 |
+
|
39 |
+
$querySelect = "SELECT min(t.entryTime)
|
40 |
+
FROM
|
41 |
+
(
|
42 |
+
SELECT
|
43 |
+
entryTime
|
44 |
+
FROM
|
45 |
+
".$tableName."
|
46 |
+
ORDER BY
|
47 |
+
entryTime DESC
|
48 |
+
LIMIT ".$keepMaxEntries."
|
49 |
+
) AS t";
|
50 |
+
|
51 |
+
|
52 |
+
$deleteFromTime = $wpdb->get_var($querySelect);
|
53 |
+
|
54 |
+
$queryDelete = "DELETE FROM ".$tableName." WHERE entryTime < %s";
|
55 |
+
$result = $wpdb->query($wpdb->prepare($queryDelete,$deleteFromTime));
|
56 |
+
|
57 |
+
if(false === $result){
|
58 |
+
return;
|
59 |
+
}
|
60 |
+
// update option
|
61 |
+
$numEntries = $wpdb->get_var("SELECT COUNT(entryId) FROM ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME));
|
62 |
+
update_option('SWPA_PLUGIN_ENTRIES_LIVE_TRAFFIC', $numEntries);
|
63 |
+
}
|
64 |
+
|
65 |
+
final public static function registerHit()
|
66 |
+
{
|
67 |
+
if(is_admin()){ return; }
|
68 |
+
|
69 |
+
global $wpdb;
|
70 |
+
|
71 |
+
$url = self::getRequestedUrl();
|
72 |
+
|
73 |
+
if(self::isUrlExcluded($url)){ return; }
|
74 |
+
|
75 |
+
$ip = self::getIP();
|
76 |
+
$referrer = self::getReferrer();
|
77 |
+
$ua = self::getUserAgent();
|
78 |
+
|
79 |
+
$query = $wpdb->prepare("INSERT INTO ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME)." (entryTime, entryIp, entryReferrer, entryUA, entryRequestedUrl)
|
80 |
+
VALUES(CURRENT_TIMESTAMP, %s, %s, %s, %s)", $ip, $referrer, $ua, $url);
|
81 |
+
if(false === @$wpdb->query($query)){
|
82 |
+
return;
|
83 |
+
}
|
84 |
+
|
85 |
+
$numEvents = 0;
|
86 |
+
$optData = get_option('SWPA_PLUGIN_ENTRIES_LIVE_TRAFFIC');
|
87 |
+
if(empty($optData)){
|
88 |
+
add_option('SWPA_PLUGIN_ENTRIES_LIVE_TRAFFIC', $numEvents);
|
89 |
+
}
|
90 |
+
else { $numEvents = intval($optData); }
|
91 |
+
|
92 |
+
update_option('SWPA_PLUGIN_ENTRIES_LIVE_TRAFFIC', $numEvents + 1);
|
93 |
+
}
|
94 |
+
|
95 |
+
final public static function getIP()
|
96 |
+
{
|
97 |
+
$ip = null;
|
98 |
+
if ( isset($_SERVER["REMOTE_ADDR"]) ) { $ip = $_SERVER["REMOTE_ADDR"]; }
|
99 |
+
else if ( isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ) { $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; }
|
100 |
+
else if ( isset($_SERVER["HTTP_CLIENT_IP"]) ) { $ip = $_SERVER["HTTP_CLIENT_IP"]; }
|
101 |
+
if(! is_null($ip) && self::isValidIp($ip)){ return $ip; }
|
102 |
+
return 'unknown';
|
103 |
+
}
|
104 |
+
|
105 |
+
final public static function getReferrer() { return (empty($_SERVER['HTTP_REFERER']) ? '' : htmlentities($_SERVER['HTTP_REFERER'],ENT_QUOTES)); }
|
106 |
+
|
107 |
+
final public static function getUserAgent() { return (empty($_SERVER['HTTP_USER_AGENT']) ? '' : htmlentities($_SERVER['HTTP_USER_AGENT'],ENT_QUOTES)); }
|
108 |
+
|
109 |
+
final public static function isValidIp($ip){
|
110 |
+
if(preg_match('/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/', $ip, $m)){
|
111 |
+
if(
|
112 |
+
$m[0] >= 0 && $m[0] <= 255 &&
|
113 |
+
$m[1] >= 0 && $m[1] <= 255 &&
|
114 |
+
$m[2] >= 0 && $m[2] <= 255 &&
|
115 |
+
$m[3] >= 0 && $m[3] <= 255
|
116 |
+
){
|
117 |
+
return true;
|
118 |
+
}
|
119 |
+
}
|
120 |
+
return false;
|
121 |
+
}
|
122 |
+
final public static function getRequestedUrl(){
|
123 |
+
if(isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST']){
|
124 |
+
$host = $_SERVER['HTTP_HOST']; }
|
125 |
+
else {
|
126 |
+
$host = $_SERVER['SERVER_NAME'];
|
127 |
+
}
|
128 |
+
$url = (@$_SERVER['HTTPS'] ? 'https' : 'http') . '://' . $host . $_SERVER['REQUEST_URI'];
|
129 |
+
return htmlentities($url,ENT_QUOTES);
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* @param int $maxEntries If $maxEntries is 0 it means to load all entries, otherwise it will limit the select to that number
|
134 |
+
* @return mixed
|
135 |
+
*/
|
136 |
+
final public static function getTrafficData($maxEntries = 0)
|
137 |
+
{
|
138 |
+
global $wpdb;
|
139 |
+
if(empty($maxEntries)){
|
140 |
+
return $wpdb->get_results("SELECT entryId,entryTime,entryIp,entryReferrer,entryUA,entryRequestedUrl FROM ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME)." ORDER BY entryId DESC");
|
141 |
+
}
|
142 |
+
else { return $wpdb->get_results("SELECT entryId,entryTime,entryIp,entryReferrer,entryUA,entryRequestedUrl FROM ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME)." ORDER BY entryId DESC LIMIT 0, ".$maxEntries);}
|
143 |
+
}
|
144 |
+
|
145 |
+
final public static function getLastID()
|
146 |
+
{
|
147 |
+
global $wpdb;
|
148 |
+
return $wpdb->get_var("SELECT entryId FROM ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME)." ORDER BY entryId DESC");
|
149 |
+
}
|
150 |
+
|
151 |
+
final public static function ajaxGetTrafficData($maxEntries = 0)
|
152 |
+
{
|
153 |
+
if ( !wp_verify_nonce( $_REQUEST['nonce'], "wsdTrafficScan_nonce")) { exit(__('Invalid request - nonce')); }
|
154 |
+
|
155 |
+
if ( !isset( $_REQUEST['lastID'])) { exit(__('Invalid request - lastID')); }
|
156 |
+
|
157 |
+
if ( !isset( $_REQUEST['forceLoad'])) { exit(__('Invalid request - forceload')); }
|
158 |
+
|
159 |
+
if ( isset( $_REQUEST['maxEntries'])) { $maxEntries = intval($_REQUEST['maxEntries']); }
|
160 |
+
|
161 |
+
$result = array();
|
162 |
+
$forceLoad = (bool)$_REQUEST['forceLoad'];
|
163 |
+
|
164 |
+
// no changes yet
|
165 |
+
if(! $forceLoad)
|
166 |
+
{
|
167 |
+
if($_REQUEST['lastID'] == self::getLastID())
|
168 |
+
{
|
169 |
+
$result['type'] = 'success';
|
170 |
+
$result['data'] = '';
|
171 |
+
$result = json_encode($result);
|
172 |
+
exit($result);
|
173 |
+
}
|
174 |
+
}
|
175 |
+
|
176 |
+
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
|
177 |
+
$result['type'] = 'success';
|
178 |
+
$result['data'] = '';
|
179 |
+
$data = self::getTrafficData($maxEntries);
|
180 |
+
if(empty($data)){ $result['data'] = '<tr><td><p style="margin: 5px 5px; font-weight: bold; color: #cc0000">No data yet.</p></td></tr>'; }
|
181 |
+
else {
|
182 |
+
$title= sprintf('title="%s"',__('Opens in a new tab'));
|
183 |
+
foreach($data as $entry)
|
184 |
+
{
|
185 |
+
$result['data'] .= '<tr><td class="wsd-scan-entry">';
|
186 |
+
$result['data'] .= '<div>';
|
187 |
+
if(empty($entry->entryReferrer)){
|
188 |
+
$ref = '';
|
189 |
+
}
|
190 |
+
else {
|
191 |
+
$url = htmlentities(urldecode($entry->entryReferrer),ENT_QUOTES);
|
192 |
+
$ref = __('coming from').' <span class="w-entry"><a href="'.$url.'" target="_blank" '.$title.'>'. $url . '</a></span>';
|
193 |
+
}
|
194 |
+
|
195 |
+
//@todo: add geo-location + flag
|
196 |
+
|
197 |
+
$result['data'] .= '<p><span class="w-ip">'.$entry->entryIp . '</span> ';
|
198 |
+
$rurl = urldecode($entry->entryRequestedUrl);
|
199 |
+
$result['data'] .= $ref.' '.__('requested').' <span class="w-entry"><a href="'.$rurl.'" target="_blank" '.$title.'>'.htmlentities($rurl,ENT_QUOTES).'</a></span></p>';
|
200 |
+
$result['data'] .= '<p><strong>'.__('Date').'</strong>: <span class="w-date">'.$entry->entryTime.'</span></p>';
|
201 |
+
$result['data'] .= '<p><strong>'.__('Agent').'</strong>: <span class="w-ua">'.htmlentities($entry->entryUA,ENT_QUOTES).'</span></p>';
|
202 |
+
$result['data'] .= '</div>';
|
203 |
+
$result['data'] .= '</td></tr>';
|
204 |
+
}
|
205 |
+
}
|
206 |
+
$result = json_encode($result);
|
207 |
+
exit($result);
|
208 |
+
}
|
209 |
+
exit('Invalid request!');
|
210 |
+
}
|
211 |
+
|
212 |
+
/**
|
213 |
+
* @param $url
|
214 |
+
* @return bool
|
215 |
+
* Exclude urls
|
216 |
+
*/
|
217 |
+
private static function isUrlExcluded($url)
|
218 |
+
{
|
219 |
+
if(false !==(strpos($url, 'wp-cron.php?doing_wp_cron'))) { return true; }
|
220 |
+
return false;
|
221 |
+
}
|
222 |
+
}
|
res/inc/SwpaPlugin.php
ADDED
@@ -0,0 +1,382 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
/**
|
3 |
+
* Class SwpaPlugin
|
4 |
+
* Static class
|
5 |
+
*/
|
6 |
+
class SwpaPlugin
|
7 |
+
{
|
8 |
+
public static function createWpMenu()
|
9 |
+
{
|
10 |
+
if (current_user_can('administrator') && function_exists('add_menu_page'))
|
11 |
+
{
|
12 |
+
$reqCap = 'activate_plugins';
|
13 |
+
add_menu_page('Secure WP', 'Secure WP', $reqCap, SWPA_PLUGIN_PREFIX, array(get_class(),'pageMain'), SwpaUtil::imageUrl('logo-small.png'));
|
14 |
+
add_submenu_page(SWPA_PLUGIN_PREFIX, 'Dashboard', __('Dashboard'), $reqCap, SWPA_PLUGIN_PREFIX, array(get_class(),'pageMain'));
|
15 |
+
add_submenu_page(SWPA_PLUGIN_PREFIX, 'Database', __('Database'), $reqCap, SWPA_PLUGIN_PREFIX.'database', array(get_class(),'pageDatabase'));
|
16 |
+
add_submenu_page(SWPA_PLUGIN_PREFIX, 'Scanner', __('Scanner'), $reqCap, SWPA_PLUGIN_PREFIX.'scanner', array(get_class(),'pageScanner'));
|
17 |
+
add_submenu_page(SWPA_PLUGIN_PREFIX, 'Live traffic', __('Live traffic'), $reqCap, SWPA_PLUGIN_PREFIX.'live_traffic', array(get_class(),'pageLiveTraffic'));
|
18 |
+
add_submenu_page(SWPA_PLUGIN_PREFIX, 'Blog', __('Blog'), $reqCap, SWPA_PLUGIN_PREFIX.'blog', array(get_class(),'pageBlog'));
|
19 |
+
add_submenu_page(SWPA_PLUGIN_PREFIX, 'Settings', __('Settings'), $reqCap, SWPA_PLUGIN_PREFIX.'settings', array(get_class(),'pageSettings'));
|
20 |
+
add_submenu_page(SWPA_PLUGIN_PREFIX, 'About', __('About'), $reqCap, SWPA_PLUGIN_PREFIX.'about', array(get_class(),'pageAbout'));
|
21 |
+
}
|
22 |
+
}
|
23 |
+
|
24 |
+
public static function pageMain() { SwpaUtil::includePage('dashboard.php'); }
|
25 |
+
public static function pageDatabase() { SwpaUtil::includePage('database.php'); }
|
26 |
+
public static function pageScanner() { SwpaUtil::includePage('scanner.php'); }
|
27 |
+
public static function pageLiveTraffic() { SwpaUtil::includePage('live_traffic.php'); }
|
28 |
+
public static function pageBlog() { SwpaUtil::includePage('blog.php'); }
|
29 |
+
public static function pageSettings() { SwpaUtil::includePage('settings.php'); }
|
30 |
+
public static function pageAbout() { SwpaUtil::includePage('about.php'); }
|
31 |
+
|
32 |
+
public static function loadResources()
|
33 |
+
{
|
34 |
+
if(SwpaUtil::canLoad()){
|
35 |
+
wp_enqueue_style('wsd-styles-base', SwpaUtil::cssUrl('styles.base.css'));
|
36 |
+
wp_enqueue_style('wsd-styles-alerts', SwpaUtil::cssUrl('styles.alerts.css'));
|
37 |
+
wp_enqueue_style('wsd-styles-general', SwpaUtil::cssUrl('styles.general.css'));
|
38 |
+
wp_enqueue_style('wsd-styles-status', SwpaUtil::cssUrl('styles.status.css'));
|
39 |
+
wp_enqueue_script('wsdplugin-js-util', SwpaUtil::jsUrl('wsd-util.js'), array('jquery'));
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Common method to add an alert to database.
|
46 |
+
* @static
|
47 |
+
* @param string $actionName The name of the action of the alert
|
48 |
+
* @param int $type Can only be one of the following: SWPA_PLUGIN_ALERT_TYPE_OVERWRITE | SWPA_PLUGIN_ALERT_TYPE_STACK. Defaults to SWPA_PLUGIN_ALERT_TYPE_OVERWRITE
|
49 |
+
* @param int $severity Can only have one of the following values: 0 1 2 3. Defaults to 0.
|
50 |
+
* @param string $title
|
51 |
+
* @param string $description
|
52 |
+
* @param string $solution
|
53 |
+
* @return bool
|
54 |
+
*/
|
55 |
+
public static function alert($actionName, $type = 0, $severity = 0, $title = '', $description = '', $solution = '') {
|
56 |
+
global $wpdb;
|
57 |
+
|
58 |
+
$table = self::getTableName();
|
59 |
+
|
60 |
+
if($type == SWPA_PLUGIN_ALERT_TYPE_STACK)
|
61 |
+
{
|
62 |
+
//#! Check the max number of stacked alerts to keep and remove the exceeding ones
|
63 |
+
$afsDate = $wpdb->get_var("SELECT alertFirstSeen FROM $table WHERE alertActionName = '$actionName' ORDER BY `alertDate`;");
|
64 |
+
if(empty($afsDate)){ $afsDate = "CURRENT_TIMESTAMP()";}
|
65 |
+
else { $afsDate = "'".$afsDate."'"; }
|
66 |
+
$result = $wpdb->get_var("SELECT COUNT(alertId) FROM $table WHERE alertActionName = '$actionName';");
|
67 |
+
if($result >= SWPA_PLUGIN_ALERT_STACK_MAX_KEEP){
|
68 |
+
// remove older entries to make room for the new ones
|
69 |
+
$query = "DELETE FROM $table ORDER BY alertDate ASC LIMIT ".($result - (SWPA_PLUGIN_ALERT_STACK_MAX_KEEP - 1));
|
70 |
+
$wpdb->query($query);
|
71 |
+
}
|
72 |
+
|
73 |
+
//Add the new entry
|
74 |
+
$query = $wpdb->prepare(
|
75 |
+
"INSERT INTO $table
|
76 |
+
(`alertType`,
|
77 |
+
`alertSeverity`,
|
78 |
+
`alertActionName`,
|
79 |
+
`alertTitle`,
|
80 |
+
`alertDescription`,
|
81 |
+
`alertSolution`,
|
82 |
+
`alertDate`,
|
83 |
+
`alertFirstSeen`)
|
84 |
+
VALUES
|
85 |
+
(%d,
|
86 |
+
%d,
|
87 |
+
'%s',
|
88 |
+
'%s',
|
89 |
+
'%s',
|
90 |
+
'%s',
|
91 |
+
CURRENT_TIMESTAMP(),
|
92 |
+
$afsDate
|
93 |
+
);"
|
94 |
+
,$type, $severity, $actionName, $title, $description, $solution);
|
95 |
+
}
|
96 |
+
elseif($type == SWPA_PLUGIN_ALERT_TYPE_OVERWRITE)
|
97 |
+
{
|
98 |
+
//#! Find the record by actionName and update fields
|
99 |
+
$result = $wpdb->get_var("SELECT alertId FROM $table WHERE alertActionName = '".$actionName."'; ");
|
100 |
+
//#! found. do update
|
101 |
+
if($result > 0){
|
102 |
+
$query = $wpdb->prepare("UPDATE $table
|
103 |
+
SET
|
104 |
+
`alertType` = %d,
|
105 |
+
`alertSeverity` = %d,
|
106 |
+
`alertActionName` = '%s',
|
107 |
+
`alertTitle` = '%s',
|
108 |
+
`alertDescription` = '%s',
|
109 |
+
`alertSolution` = '%s',
|
110 |
+
`alertDate` = CURRENT_TIMESTAMP()
|
111 |
+
WHERE alertId = %d;",
|
112 |
+
$type, $severity, $actionName, $title, $description, $solution,$result);
|
113 |
+
}
|
114 |
+
//#! record not found. insert query
|
115 |
+
else {
|
116 |
+
$query = $wpdb->prepare("INSERT INTO $table
|
117 |
+
(`alertType`,
|
118 |
+
`alertSeverity`,
|
119 |
+
`alertActionName`,
|
120 |
+
`alertTitle`,
|
121 |
+
`alertDescription`,
|
122 |
+
`alertSolution`,
|
123 |
+
`alertDate`,
|
124 |
+
`alertFirstSeen`)
|
125 |
+
VALUES
|
126 |
+
(%d,
|
127 |
+
%d,
|
128 |
+
'%s',
|
129 |
+
'%s',
|
130 |
+
'%s',
|
131 |
+
'%s',
|
132 |
+
CURRENT_TIMESTAMP(),
|
133 |
+
CURRENT_TIMESTAMP()
|
134 |
+
);",
|
135 |
+
$type, $severity, $actionName, $title, $description, $solution);
|
136 |
+
}
|
137 |
+
}
|
138 |
+
$result = $wpdb->query($query);
|
139 |
+
if($result === false){
|
140 |
+
//#! MySQL error
|
141 |
+
return false;
|
142 |
+
}
|
143 |
+
return true;
|
144 |
+
}
|
145 |
+
|
146 |
+
public static function getTableName($tableName = SWPA_PLUGIN_ALERT_TABLE_NAME){
|
147 |
+
global $wpdb;
|
148 |
+
return $wpdb->prefix.$tableName;
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* Get all alerts grouped by alertActionName
|
153 |
+
* @return array
|
154 |
+
*/
|
155 |
+
public static function getAlerts()
|
156 |
+
{
|
157 |
+
global $wpdb;
|
158 |
+
$columns = "`alertId`,`alertType`,`alertSeverity`,`alertActionName`,`alertTitle`,`alertDescription`,`alertSolution`,`alertDate`,`alertFirstSeen`";
|
159 |
+
return $wpdb->get_results("SELECT $columns FROM ".self::getTableName(SWPA_PLUGIN_ALERT_TABLE_NAME)." GROUP BY `alertActionName`;");
|
160 |
+
}
|
161 |
+
|
162 |
+
// filter alerts by input
|
163 |
+
public static function getAlertsBy($alertSeverity)
|
164 |
+
{
|
165 |
+
global $wpdb;
|
166 |
+
$columns = "`alertId`,`alertType`,`alertSeverity`,`alertActionName`,`alertTitle`,`alertDescription`,`alertSolution`,`alertDate`,`alertFirstSeen`";
|
167 |
+
return $wpdb->get_results("SELECT $columns FROM ".self::getTableName(SWPA_PLUGIN_ALERT_TABLE_NAME)." WHERE `alertSeverity` = '$alertSeverity' GROUP BY `alertActionName`;");
|
168 |
+
}
|
169 |
+
|
170 |
+
public static function getChildAlerts($alertId, $alertType)
|
171 |
+
{
|
172 |
+
global $wpdb;
|
173 |
+
$columns = "`alertId`,`alertType`,`alertSeverity`,`alertActionName`,`alertTitle`,`alertDescription`,`alertSolution`,`alertDate`,`alertFirstSeen`";
|
174 |
+
return $wpdb->get_results("SELECT $columns FROM ".self::getTableName()." WHERE (alertId <> $alertId AND alertType = '$alertType') ORDER BY `alertDate` DESC");
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Retrieve the settings from database. This method will extract all methods found in the SwpaSecurity class and provide them as
|
179 |
+
* settings in the settings page. It will also auto update itself in case new methods are added to the class or if
|
180 |
+
* some of them were removed.
|
181 |
+
* @return array
|
182 |
+
*/
|
183 |
+
public static function getSettings()
|
184 |
+
{
|
185 |
+
$className = 'SwpaSecurity';
|
186 |
+
if(! class_exists($className)){
|
187 |
+
return array();
|
188 |
+
}
|
189 |
+
$settings = get_option(SWPA_PLUGIN_SETTINGS_OPTION_NAME);
|
190 |
+
$class = new ReflectionClass($className);
|
191 |
+
$methods = $class->getMethods();
|
192 |
+
|
193 |
+
if(empty($settings))
|
194 |
+
{
|
195 |
+
$settings = array();
|
196 |
+
foreach($methods as $method)
|
197 |
+
{
|
198 |
+
$mn = $method->name;
|
199 |
+
if($className != $method->class){
|
200 |
+
continue;
|
201 |
+
}
|
202 |
+
$comment = $method->getDocComment();
|
203 |
+
if(false !== ($pos = strpos($mn,SwpaSecurity::$methodPrefix))){
|
204 |
+
$settings[$mn] = array(
|
205 |
+
'name' => $mn,
|
206 |
+
'value' => 0, // 0 or 1 ; whether or not the option will show as selected by default in the plugin's settings page
|
207 |
+
'desc' => trim(str_replace(array('/**','*/'),'', $comment))
|
208 |
+
);
|
209 |
+
}
|
210 |
+
}
|
211 |
+
add_option(SWPA_PLUGIN_SETTINGS_OPTION_NAME, $settings);
|
212 |
+
}
|
213 |
+
else
|
214 |
+
{
|
215 |
+
$n1 = (isset($settings['keepNumEntriesLiveTraffic']) ? $settings['keepNumEntriesLiveTraffic'] : 500);
|
216 |
+
$n2 = (isset($settings['liveTrafficRefreshRateAjax']) ? $settings['liveTrafficRefreshRateAjax'] : 10);
|
217 |
+
|
218 |
+
// Check to see whether or not new methods were added or subtracted
|
219 |
+
$numSettings = count($settings);
|
220 |
+
$numMethods = count($methods);
|
221 |
+
if($numMethods <> $numSettings)
|
222 |
+
{
|
223 |
+
// add new methods
|
224 |
+
$_temp = array();
|
225 |
+
foreach($methods as $method){
|
226 |
+
if($className != $method->class){
|
227 |
+
continue;
|
228 |
+
}
|
229 |
+
$comment = $method->getDocComment();
|
230 |
+
if(false === ($pos = strpos($method->name,SwpaSecurity::$methodPrefix))){ continue; }
|
231 |
+
if(! isset($settings[$method->name])){
|
232 |
+
$settings[$method->name] = array(
|
233 |
+
'name' => $method->name,
|
234 |
+
'value' => 0,
|
235 |
+
'desc' => trim(str_replace(array('/**','*/'),'', $comment))
|
236 |
+
);
|
237 |
+
}
|
238 |
+
array_push($_temp, $method->name);
|
239 |
+
}
|
240 |
+
// remove missing methods
|
241 |
+
foreach($settings as $k => &$entry){
|
242 |
+
if(! in_array($entry['name'], $_temp)){
|
243 |
+
unset($settings[$k]);
|
244 |
+
}
|
245 |
+
}
|
246 |
+
|
247 |
+
$settings['keepNumEntriesLiveTraffic'] = $n1;
|
248 |
+
$settings['liveTrafficRefreshRateAjax'] = $n2;
|
249 |
+
update_option(SWPA_PLUGIN_SETTINGS_OPTION_NAME, $settings);
|
250 |
+
}
|
251 |
+
}
|
252 |
+
return $settings;
|
253 |
+
}
|
254 |
+
|
255 |
+
/**
|
256 |
+
* Check to see whether or not the provided setting is enabled (as the settings are configurable the user might chose to turn some of them off)
|
257 |
+
* @param string $name The name of the setting to look for in the settings array
|
258 |
+
* @return bool
|
259 |
+
*/
|
260 |
+
public static function isSettingEnabled($name)
|
261 |
+
{
|
262 |
+
$settings = self::getSettings();
|
263 |
+
return (isset($settings[$name]) ? $settings[$name]['value'] : false);
|
264 |
+
}
|
265 |
+
|
266 |
+
public static function activate()
|
267 |
+
{
|
268 |
+
global $wpdb;
|
269 |
+
$charset_collate = '';
|
270 |
+
|
271 |
+
if ( ! empty($wpdb->charset) ){$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";}
|
272 |
+
if ( ! empty($wpdb->collate) ){$charset_collate .= " COLLATE $wpdb->collate";}
|
273 |
+
|
274 |
+
// MUST HAVE "CREATE" RIGHTS if a table is not found and needs to be created
|
275 |
+
$rights = SwpaInfoServer::getDatabaseUserAccessRights();
|
276 |
+
$hasCreateRight = in_array('CREATE', $rights['rightsHaving']);
|
277 |
+
$table1 = self::getTableName(SWPA_PLUGIN_ALERT_TABLE_NAME);
|
278 |
+
$table2 = self::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME);
|
279 |
+
|
280 |
+
if(! SwpaUtil::tableExists($table1)){
|
281 |
+
$query1 = "CREATE TABLE IF NOT EXISTS ".$table1." (
|
282 |
+
`alertId` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
|
283 |
+
`alertType` TINYINT NOT NULL DEFAULT 0 ,
|
284 |
+
`alertSeverity` INT NOT NULL DEFAULT 0 ,
|
285 |
+
`alertActionName` VARCHAR (255) NOT NULL,
|
286 |
+
`alertTitle` VARCHAR(255) NOT NULL ,
|
287 |
+
`alertDescription` TEXT NOT NULL ,
|
288 |
+
`alertSolution` TEXT NOT NULL ,
|
289 |
+
`alertDate` DATETIME NOT NULL default '0000-00-00 00:00:00',
|
290 |
+
`alertFirstSeen` DATETIME NOT NULL default '0000-00-00 00:00:00',
|
291 |
+
PRIMARY KEY (`alertId`) ,
|
292 |
+
UNIQUE INDEX `alertId_UNIQUE` (`alertId` ASC) ) $charset_collate;";
|
293 |
+
if(! $hasCreateRight){
|
294 |
+
$notices= get_option('wsd_plugin_install_error', array());
|
295 |
+
$notices[]= '<strong>'.SWPA_PLUGIN_NAME."</strong>: The database user needs the '<strong>CREATE</strong>' right in order to install this plugin.";
|
296 |
+
update_option('wsd_plugin_install_error', $notices);
|
297 |
+
return;
|
298 |
+
}
|
299 |
+
$result = @$wpdb->query($query1);
|
300 |
+
if($result === false){
|
301 |
+
//#! MySQL error
|
302 |
+
$GLOBALS['SWPA_PLUGIN_INSTALL_ERROR'] = 'Error running query: '.$query1;
|
303 |
+
$notices= get_option('wsd_plugin_install_error', array());
|
304 |
+
$notices[]= '<strong>'.SWPA_PLUGIN_NAME."</strong>. Error running query: <strong><pre>$query1</pre></strong>.";
|
305 |
+
update_option('wsd_plugin_install_error', $notices);
|
306 |
+
return;
|
307 |
+
}
|
308 |
+
}
|
309 |
+
|
310 |
+
if(! SwpaUtil::tableExists($table2)){
|
311 |
+
$query2 = "CREATE TABLE IF NOT EXISTS ".$table2." (
|
312 |
+
`entryId` bigint(20) unsigned NOT NULL auto_increment,
|
313 |
+
`entryTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
314 |
+
`entryIp` text,
|
315 |
+
`entryReferrer` text,
|
316 |
+
`entryUA` text,
|
317 |
+
`entryRequestedUrl` text,
|
318 |
+
PRIMARY KEY (entryId)) $charset_collate;";
|
319 |
+
if(! $hasCreateRight){
|
320 |
+
$notices= get_option('wsd_plugin_install_error', array());
|
321 |
+
$notices[]= '<strong>'.SWPA_PLUGIN_NAME."</strong>: The database user needs the '<strong>CREATE</strong>' right in order to install this plugin.";
|
322 |
+
update_option('wsd_plugin_install_error', $notices);
|
323 |
+
return;
|
324 |
+
}
|
325 |
+
$result = @$wpdb->query($query2);
|
326 |
+
if($result === false){
|
327 |
+
//#! MySQL error
|
328 |
+
$GLOBALS['SWPA_PLUGIN_INSTALL_ERROR'] = 'Error running query: '.$query2;
|
329 |
+
$notices= get_option('wsd_plugin_install_error', array());
|
330 |
+
$notices[]= '<strong>'.SWPA_PLUGIN_NAME."</strong>. Error running query: <strong><pre>$query2</pre></strong>.";
|
331 |
+
update_option('wsd_plugin_install_error', $notices);
|
332 |
+
return;
|
333 |
+
}
|
334 |
+
}
|
335 |
+
|
336 |
+
add_option('WSD-PLUGIN-CAN-RUN-TASKS', 1);
|
337 |
+
}
|
338 |
+
public static function deactivate() {
|
339 |
+
if(self::wpssPluginInstalled()){
|
340 |
+
return;
|
341 |
+
}
|
342 |
+
SwpaScheduler::unregisterCronTasks();
|
343 |
+
delete_option(SWPA_PLUGIN_SETTINGS_OPTION_NAME);
|
344 |
+
delete_option('wsd_plugin_install_error');
|
345 |
+
delete_option('WSD-PLUGIN-CAN-RUN-TASKS');
|
346 |
+
}
|
347 |
+
public static function uninstall(){
|
348 |
+
if(self::wpssPluginInstalled()){
|
349 |
+
return;
|
350 |
+
}
|
351 |
+
delete_option('SWPA_PLUGIN_ENTRIES_LIVE_TRAFFIC');
|
352 |
+
global $wpdb;
|
353 |
+
$wpdb->query("DROP TABLE IF EXISTS ".SwpaPlugin::getTableName(SWPA_PLUGIN_ALERT_TABLE_NAME));
|
354 |
+
$wpdb->query("DROP TABLE IF EXISTS ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME));
|
355 |
+
}
|
356 |
+
|
357 |
+
/**
|
358 |
+
* Check to see whether or not the Wp Security Scan plugin is installed
|
359 |
+
* @return bool
|
360 |
+
*/
|
361 |
+
public static function wpssPluginInstalled()
|
362 |
+
{
|
363 |
+
$pluginPath = 'wp-security-scan/index.php';
|
364 |
+
$pluginFilePath = trailingslashit(ABSPATH).'wp-content/plugins/'.$pluginPath;
|
365 |
+
if(function_exists('is_plugin_active')){
|
366 |
+
if(is_plugin_active($pluginPath)){
|
367 |
+
return true;
|
368 |
+
}
|
369 |
+
else {
|
370 |
+
// check plugins dir
|
371 |
+
if(is_file($pluginFilePath)){
|
372 |
+
return true;
|
373 |
+
}
|
374 |
+
}
|
375 |
+
}
|
376 |
+
// check plugins dir
|
377 |
+
if(is_file($pluginFilePath)){
|
378 |
+
return true;
|
379 |
+
}
|
380 |
+
return false;
|
381 |
+
}
|
382 |
+
}
|
res/inc/SwpaScheduler.php
ADDED
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
/**
|
3 |
+
* Class SwpaScheduler
|
4 |
+
* Provides common methods to register action with wp-cron
|
5 |
+
*/
|
6 |
+
class SwpaScheduler
|
7 |
+
{
|
8 |
+
/**
|
9 |
+
* @var array
|
10 |
+
* Holds all the registered cron tasks so to provide an easy way to
|
11 |
+
* unregister them all upon deactivation of the plugin
|
12 |
+
*/
|
13 |
+
private static $_cronTasks = array();
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Register a cron task
|
17 |
+
* @param string $cronActionName The name of the action that will be registered with wp-cron
|
18 |
+
* @param string $callback The function to register with wp-cron
|
19 |
+
* @param string $interval can only be one of the following: hourly, daily and twicedaily if no other custom intervals are registered. Defaults to daily
|
20 |
+
* @return void
|
21 |
+
*/
|
22 |
+
public static function registerCronTask($cronActionName, $callback, $interval = 'daily')
|
23 |
+
{
|
24 |
+
if(! is_callable($callback)) { return; }
|
25 |
+
|
26 |
+
// if cron disabled -> run callback
|
27 |
+
if(! self::canRegisterCronTask()){
|
28 |
+
self::registerTask($callback);
|
29 |
+
return;
|
30 |
+
}
|
31 |
+
$interval = strtolower($interval);
|
32 |
+
if(empty($interval)){ $interval = 'daily'; }
|
33 |
+
else{
|
34 |
+
// check to see if the time interval is valid
|
35 |
+
$timeIntervals = wp_get_schedules();
|
36 |
+
if(! array_key_exists($interval, $timeIntervals)){
|
37 |
+
$interval = 'daily';
|
38 |
+
}
|
39 |
+
}
|
40 |
+
// avoid duplicate crons
|
41 |
+
add_action($cronActionName, $callback);
|
42 |
+
if ( ! wp_next_scheduled($cronActionName) ) {
|
43 |
+
wp_schedule_event( time(), $interval, $cronActionName );
|
44 |
+
array_push(self::$_cronTasks, $cronActionName);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
public static function unregisterCronTask($cronActionName){
|
49 |
+
wp_clear_scheduled_hook($cronActionName);
|
50 |
+
if(! empty(self::$_cronTasks)){
|
51 |
+
if(isset(self::$_cronTasks[$cronActionName])){
|
52 |
+
unset(self::$_cronTasks[$cronActionName]);
|
53 |
+
}
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
public static function unregisterCronTasks(){
|
58 |
+
if(! empty(self::$_cronTasks)){
|
59 |
+
foreach (self::$_cronTasks as $task) {
|
60 |
+
wp_clear_scheduled_hook($task);
|
61 |
+
}
|
62 |
+
self::$_cronTasks = array();
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Check to see whether or not cron is enabled in WordPress
|
68 |
+
* @return bool
|
69 |
+
*/
|
70 |
+
public static function canRegisterCronTask(){ return ((defined('DISABLE_WP_CRON') && 'DISABLE_WP_CRON') ? false : true); }
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Register a task
|
74 |
+
* @param string $callback The callback to register
|
75 |
+
* @param string $wpActionName Optional. If provided it must be a valid action name to hook the $callback to. If omitted, then the $callback will just be executed.
|
76 |
+
* @return void
|
77 |
+
*/
|
78 |
+
public static function registerTask($callback, $wpActionName = '') {
|
79 |
+
if(! empty($wpActionName)){
|
80 |
+
add_action($wpActionName, $callback);
|
81 |
+
}
|
82 |
+
else {
|
83 |
+
if(is_callable($callback)){
|
84 |
+
call_user_func($callback);
|
85 |
+
}
|
86 |
+
}
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Execute all methods of a class that are prefixed with $onlyWithPrefix (if provided)
|
91 |
+
* @param $className The name of the class
|
92 |
+
* @param string $onlyWithPrefix Optional. The prefix to look up in the methods' name
|
93 |
+
* @return void
|
94 |
+
*/
|
95 |
+
public static function registerClassTasks($className, $onlyWithPrefix = '')
|
96 |
+
{
|
97 |
+
$_class = new ReflectionClass($className);
|
98 |
+
$methods = $_class->getMethods();
|
99 |
+
if(! empty($methods)){
|
100 |
+
$pLength = strlen($onlyWithPrefix);
|
101 |
+
foreach($methods as $_method){
|
102 |
+
$method = $_method->name;
|
103 |
+
// only certain methods
|
104 |
+
if($pLength > 0){
|
105 |
+
$search = substr($method, 0, $pLength);
|
106 |
+
if(strcasecmp($search,$onlyWithPrefix) == 0){
|
107 |
+
call_user_func(array($className, $method));
|
108 |
+
}
|
109 |
+
}
|
110 |
+
else { call_user_func(array($className, $method)); }
|
111 |
+
}
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
}
|
res/inc/SwpaSecurity.php
ADDED
@@ -0,0 +1,726 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
/**
|
3 |
+
* Class SwpaSecurity
|
4 |
+
* Static class. Provides security fixes for WordPress
|
5 |
+
*/
|
6 |
+
|
7 |
+
class SwpaSecurity extends SwpaPlugin
|
8 |
+
{
|
9 |
+
/**
|
10 |
+
* The prefix each method should have in order to be executed automatically.
|
11 |
+
* @var string Defaults to 'fix_'
|
12 |
+
*/
|
13 |
+
public static $methodPrefix = 'fix_';
|
14 |
+
public static $isVersionHidden = false;
|
15 |
+
|
16 |
+
/** Hide WordPress version for all users but administrators */
|
17 |
+
public static function fix_hideWpVersion()
|
18 |
+
{
|
19 |
+
global $wsdPluginAlertsArray;
|
20 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_version_hidden']['name'];
|
21 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_version_hidden']['type'];
|
22 |
+
|
23 |
+
/* This check is important so this function will run only if the user enables it. */
|
24 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
25 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_CRITICAL,
|
26 |
+
__('WordPress version is displayed for all users'),
|
27 |
+
__('<p>Displaying your WordPress version on frontend and in the backend\'s footer to all visitors
|
28 |
+
and users of your website is a security risk because if a hacker knows which version of WordPress a website is running, it can make it easier for him to target a known WordPress security issue.</p>'),
|
29 |
+
sprintf(__('<p>This plugin can automatically hide your WordPress version from frontend, backend and rss feeds if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
30 |
+
'Hide WordPress version for all users but administrators')
|
31 |
+
);
|
32 |
+
return;
|
33 |
+
}
|
34 |
+
|
35 |
+
$isAdmin = SwpaUtil::isAdministrator();
|
36 |
+
|
37 |
+
//@@ back-end
|
38 |
+
if(is_admin())
|
39 |
+
{
|
40 |
+
if(! $isAdmin){
|
41 |
+
function __hideFooterVersion(){ return ' ';}
|
42 |
+
add_filter( 'update_footer', '__hideFooterVersion',800);
|
43 |
+
self::$isVersionHidden = true;
|
44 |
+
}
|
45 |
+
// version hidden
|
46 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
47 |
+
__('WordPress version is only displayed to administrator users'),
|
48 |
+
__('<p>Displaying your WordPress version on frontend and in the backend\'s footer to all visitors
|
49 |
+
and users of your website is a security risk because if a hacker knows which version of WordPress a website is running, it can make it easier for him to target a known WordPress security issue.</p>')
|
50 |
+
);
|
51 |
+
}
|
52 |
+
//@@ front-end
|
53 |
+
else {
|
54 |
+
if (!$isAdmin)
|
55 |
+
{
|
56 |
+
global $wp_version, $wp_db_version, $manifest_version, $tinymce_version;
|
57 |
+
|
58 |
+
// random values
|
59 |
+
$v = intval( rand(0, 9999) );
|
60 |
+
$d = intval( rand(9999, 99999) );
|
61 |
+
$m = intval( rand(99999, 999999) );
|
62 |
+
$t = intval( rand(999999, 9999999) );
|
63 |
+
|
64 |
+
if ( function_exists('the_generator') )
|
65 |
+
{
|
66 |
+
// eliminate version for wordpress >= 2.4
|
67 |
+
remove_filter( 'wp_head', 'wp_generator' );
|
68 |
+
$actions = array( 'rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head', 'app_head' );
|
69 |
+
foreach ( $actions as $action ) {
|
70 |
+
remove_action( $action, 'the_generator' );
|
71 |
+
}
|
72 |
+
// for vars
|
73 |
+
$wp_version = $v;
|
74 |
+
$wp_db_version = $d;
|
75 |
+
$manifest_version = $m;
|
76 |
+
$tinymce_version = $t;
|
77 |
+
}
|
78 |
+
else {
|
79 |
+
// for wordpress < 2.4
|
80 |
+
add_filter( "bloginfo_rss('version')", create_function('$a', "return $v;") );
|
81 |
+
// for rdf and rss v0.92
|
82 |
+
$wp_version = $v;
|
83 |
+
$wp_db_version = $d;
|
84 |
+
$manifest_version = $m;
|
85 |
+
$tinymce_version = $t;
|
86 |
+
}
|
87 |
+
self::$isVersionHidden = true;
|
88 |
+
}
|
89 |
+
// version hidden
|
90 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
91 |
+
__('WordPress version is only displayed to administrator users'),
|
92 |
+
__('<p>Displaying your WordPress version on frontend and in the backend\'s footer to all visitors
|
93 |
+
and users of your website is a security risk because if a hacker knows which version of WordPress a website is running, it can make it easier for him to target a known WordPress security issue.</p>')
|
94 |
+
);
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
/** Remove various meta tags generators from the blog's head tag for non-administrators. */
|
99 |
+
public static function fix_removeWpMetaGeneratorsFrontend()
|
100 |
+
{
|
101 |
+
global $wsdPluginAlertsArray;
|
102 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_generators_frontend']['name'];
|
103 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_generators_frontend']['type'];
|
104 |
+
|
105 |
+
/* This check is important so this function will run only if the user enables it. */
|
106 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
107 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_CRITICAL,
|
108 |
+
__('WordPress meta tags are displayed on frontend to all users'),
|
109 |
+
__('<p>By default, WordPress creates a few meta tags, among which is the currently installed version, that give a hacker the knowledge about your WordPress installation. At the moment, these meta tags are available for anyone to see, which is a potentially security risk.</p>'),
|
110 |
+
sprintf(__('<p>This plugin can automatically hide your WordPress\'s default meta tags if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Remove various meta tags generators from the blog\'s head tag for non-administrators')
|
111 |
+
);
|
112 |
+
return;
|
113 |
+
}
|
114 |
+
|
115 |
+
if (!is_admin())
|
116 |
+
{
|
117 |
+
if(!SwpaUtil::isAdministrator()){
|
118 |
+
//@@ remove various meta tags generators from blog's head tag
|
119 |
+
function acx_filter_generator($gen, $type)
|
120 |
+
{
|
121 |
+
switch ( $type ) {
|
122 |
+
case 'html':
|
123 |
+
$gen = '<meta name="generator" content="WordPress">';
|
124 |
+
break;
|
125 |
+
case 'xhtml':
|
126 |
+
$gen = '<meta name="generator" content="WordPress" />';
|
127 |
+
break;
|
128 |
+
case 'atom':
|
129 |
+
$gen = '<generator uri="http://wordpress.org/">WordPress</generator>';
|
130 |
+
break;
|
131 |
+
case 'rss2':
|
132 |
+
$gen = '<generator>http://wordpress.org/?v=</generator>';
|
133 |
+
break;
|
134 |
+
case 'rdf':
|
135 |
+
$gen = '<admin:generatorAgent rdf:resource="http://wordpress.org/?v=" />';
|
136 |
+
break;
|
137 |
+
case 'comment':
|
138 |
+
$gen = '<!-- generator="WordPress" -->';
|
139 |
+
break;
|
140 |
+
}
|
141 |
+
return $gen;
|
142 |
+
}
|
143 |
+
foreach ( array( 'html', 'xhtml', 'atom', 'rss2', 'rdf', 'comment' ) as $type ) {
|
144 |
+
add_filter( "get_the_generator_".$type, 'acx_filter_generator', 10, 2 );
|
145 |
+
}
|
146 |
+
}
|
147 |
+
}
|
148 |
+
// version hidden
|
149 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
150 |
+
__('WordPress meta tags are only displayed on frontend to administrator users'),
|
151 |
+
__('<p>By default, WordPress creates a few meta tags, among which is the currently installed version, that give a hacker the knowledge about your WordPress installation.
|
152 |
+
At the moment, all WordPress\'s defaults meta tags are hidden for all users but administrators.</p>')
|
153 |
+
);
|
154 |
+
}
|
155 |
+
|
156 |
+
/** Remove Really Simple Discovery meta tags from front-end */
|
157 |
+
public static function fix_removeReallySimpleDiscovery()
|
158 |
+
{
|
159 |
+
global $wsdPluginAlertsArray;
|
160 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_rsd_frontend']['name'];
|
161 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_rsd_frontend']['type'];
|
162 |
+
|
163 |
+
/* This check is important so this function will run only if the user enables it. */
|
164 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
165 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
166 |
+
__('WordPress Really Simple Discovery tag is displayed on frontend to all users'),
|
167 |
+
sprintf(__('<p>By default, WordPress creates the <strong>rsd meta tag</strong> to allow bloggers to consume services like Flickr using the <a href="%s" target="%s">XML-RPC</a> protocol.
|
168 |
+
If you don\'t use such services it is recommended to hide this meta tag.</p>'),
|
169 |
+
'http://en.wikipedia.org/wiki/XML-RPC', '_blank'),
|
170 |
+
sprintf(__('<p>This plugin can automatically hide the rsd meta tag if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Remove Really Simple Discovery meta tags from front-end')
|
171 |
+
);
|
172 |
+
return;
|
173 |
+
}
|
174 |
+
|
175 |
+
if (!is_admin()) {
|
176 |
+
if(!SwpaUtil::isAdministrator() && function_exists('rsd_link')) {
|
177 |
+
remove_action('wp_head', 'rsd_link');
|
178 |
+
}
|
179 |
+
}
|
180 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
181 |
+
__('WordPress Really Simple Discovery tag is only displayed on frontend to administrator users.'),
|
182 |
+
sprintf(__('<p>By default, WordPress creates the <strong>rsd meta tag</strong> to allow bloggers to consume services like Flickr using the <a href="%s" target="%s">XML-RPC</a> protocol.
|
183 |
+
If you don\'t use such services it is recommended to hide this meta tag.</p>'),
|
184 |
+
'http://en.wikipedia.org/wiki/XML-RPC', '_blank')
|
185 |
+
);
|
186 |
+
}
|
187 |
+
|
188 |
+
/** Remove Windows Live Writer meta tags from front-end */
|
189 |
+
public static function fix_removeWindowsLiveWriter()
|
190 |
+
{
|
191 |
+
global $wsdPluginAlertsArray;
|
192 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_wlw_frontend']['name'];
|
193 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_wlw_frontend']['type'];
|
194 |
+
|
195 |
+
/* This check is important so this function will run only if the user enables it. */
|
196 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
197 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
198 |
+
__('WordPress Windows Live Writer tag is displayed on frontend for all users'),
|
199 |
+
sprintf(__('<p>By default, WordPress creates the wlw meta tag to allow bloggers to publish their articles using the <strong>"%s"</strong> application.
|
200 |
+
It is recommended to hide this meta tag from all visitors. If the option <strong>"%s"</strong> is checked on the plugin\'s settings page, this meta tag
|
201 |
+
will still be available for administrator users to use the <strong>"%s"</strong> application to publish their blog posts.</p>'),
|
202 |
+
'Windows Live Writer', 'Remove Windows Live Writer meta tags from front-end', 'Windows Live Writer'),
|
203 |
+
sprintf(__('<p>This plugin can automatically hide the wlw meta tag if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Remove Windows Live Writer meta tags from front-end"')
|
204 |
+
);
|
205 |
+
return;
|
206 |
+
}
|
207 |
+
|
208 |
+
if (!is_admin() && function_exists('wlwmanifest_link')) {
|
209 |
+
if(!SwpaUtil::isAdministrator()) {
|
210 |
+
remove_action('wp_head', 'wlwmanifest_link');
|
211 |
+
}
|
212 |
+
}
|
213 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
214 |
+
__('WordPress Windows Live Writer tag is only displayed on frontend for administrator users'),
|
215 |
+
sprintf(__('<p>By default, WordPress creates the wlw meta tag to allow bloggers to publish their articles using the <strong>"%s"</strong> application.
|
216 |
+
It is recommended to hide this meta tag from all visitors. If the option <strong>"%s"</strong> is checked on the plugin\'s settings page, this meta tag
|
217 |
+
will still be available for administrator users to use the <strong>"%s"</strong> application to publish their blog posts.</p>'),
|
218 |
+
'Windows Live Writer', 'Remove Windows Live Writer meta tags from front-end', 'Windows Live Writer')
|
219 |
+
);
|
220 |
+
}
|
221 |
+
|
222 |
+
/** Disable error reporting (php + db) for all but administrators */
|
223 |
+
public static function fix_disableErrorReporting()
|
224 |
+
{
|
225 |
+
global $wsdPluginAlertsArray;
|
226 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_error_reporting']['name'];
|
227 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_error_reporting']['type'];
|
228 |
+
|
229 |
+
/* This check is important so this function will run only if the user enables it. */
|
230 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
231 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_CRITICAL,
|
232 |
+
__('The check for PHP and database error reporting is disabled'),
|
233 |
+
sprintf(__('<p>By default, WordPress hides database errors, but there are times when a plugin might enable them thus it is very important to have this type of errors turned off
|
234 |
+
so if there is an error during a connection to the database the user will not get access to the error message generated during that request.</p>
|
235 |
+
<p>As regarding the PHP errors, with the <strong>display_error</strong> PHP configuration directive enabled, untrusted sources can see detailed web application environment
|
236 |
+
error messages which include sensitive information that can be used to craft further attacks.</p>
|
237 |
+
<p>Attackers will do anything to collect information in order to design their attack in a more sophisticated way to eventually hack your website or web application, and causing
|
238 |
+
errors to display is a common starting point. Website errors can always occur, but they should be suppressed from being displayed back to the public.</p>
|
239 |
+
<p>Therefore we highly recommend you to have the <strong>"%s"</strong> option checked on the plugin\'s settings page to ensure PHP and
|
240 |
+
database errors will be hidden from all users. For more information, please check the following <a href="%s" target="%s">article</a>.</p>'),
|
241 |
+
'Disable error reporting (php + db) for all but administrators', 'http://www.acunetix.com/blog/web-security-zone/articles/php-security-directive-your-website-is-showing-php-errors/', '_blank'),
|
242 |
+
sprintf(__('<p>This plugin can do this automatically if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
243 |
+
'Disable error reporting (php + db) for all but administrators')
|
244 |
+
);
|
245 |
+
return;
|
246 |
+
}
|
247 |
+
if(! SwpaUtil::isAdministrator())
|
248 |
+
{
|
249 |
+
@error_reporting(0);
|
250 |
+
@ini_set('display_errors','Off');
|
251 |
+
@ini_set('display_startup_errors', 0);
|
252 |
+
global $wpdb;
|
253 |
+
$wpdb->hide_errors();
|
254 |
+
$wpdb->suppress_errors();
|
255 |
+
}
|
256 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
257 |
+
__('Error reporting, PHP and database, is enabled only for administrator users'),
|
258 |
+
sprintf(__('<p>By default, WordPress hides database errors, but there are times when a plugin might enable them thus it is very important to have this type of errors turned off
|
259 |
+
so if there is an error during a connection to the database the user will not get access to the error message generated during that request.</p>
|
260 |
+
<p>As regarding the PHP errors, with the <strong>display_error</strong> PHP configuration directive enabled, untrusted sources can see detailed web application environment
|
261 |
+
error messages which include sensitive information that can be used to craft further attacks.</p>
|
262 |
+
<p>Attackers will do anything to collect information in order to design their attack in a more sophisticated way to eventually hack your website or web application, and causing
|
263 |
+
errors to display is a common starting point. Website errors can always occur, but they should be suppressed from being displayed back to the public.</p>
|
264 |
+
<p>Therefore we highly recommend you to have the <strong>"%s"</strong> option checked on the plugin\'s settings page to ensure PHP and
|
265 |
+
database errors will be hidden from all users. For more information, please check the following <a href="%s" target="%s">article</a>.</p>'),
|
266 |
+
'Disable error reporting (php + db) for all but administrators', 'http://www.acunetix.com/blog/web-security-zone/articles/php-security-directive-your-website-is-showing-php-errors/', '_blank')
|
267 |
+
);
|
268 |
+
}
|
269 |
+
|
270 |
+
/** Remove core update notifications from back-end for all but administrators */
|
271 |
+
public static function fix_removeCoreUpdateNotification()
|
272 |
+
{
|
273 |
+
global $wsdPluginAlertsArray;
|
274 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_core_update_notif']['name'];
|
275 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_core_update_notif']['type'];
|
276 |
+
|
277 |
+
/* This check is important so this function will run only if the user enables it. */
|
278 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
279 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_CRITICAL,
|
280 |
+
__('Core update notifications are displayed to all users'),
|
281 |
+
__('<p>These notifications are displayed at the top of the screen by the WordPress platform whenever the website was updated or needs an update.</p>
|
282 |
+
<p>These notifications should only be viewed by the website\'s administrators and not visible to any other users registered with that website.</p>'),
|
283 |
+
sprintf(__('<p>This plugin can automatically hide these notifications if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Remove core update notifications from back-end for all but administrators')
|
284 |
+
);
|
285 |
+
return;
|
286 |
+
}
|
287 |
+
|
288 |
+
if (!SwpaUtil::isAdministrator())
|
289 |
+
{
|
290 |
+
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_notices', 'maintenance_nag' );" ) );
|
291 |
+
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_notices', 'update_nag', 3 );" ) );
|
292 |
+
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', '_maybe_update_core' );" ) );
|
293 |
+
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ) );
|
294 |
+
add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
|
295 |
+
remove_action( 'wp_version_check', 'wp_version_check' );
|
296 |
+
remove_action( 'admin_init', '_maybe_update_core' );
|
297 |
+
add_filter( 'pre_transient_update_core', create_function( '$a', "return null;" ) );
|
298 |
+
add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );
|
299 |
+
}
|
300 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
301 |
+
__('Core update notifications are only displayed to administrator users.'),
|
302 |
+
__('<p>These notifications are displayed at the top of the screen by the WordPress platform whenever the website was updated or needs an update.</p>
|
303 |
+
<p>Currently, these notifications are only displayed to administrator users.</p>')
|
304 |
+
);
|
305 |
+
}
|
306 |
+
|
307 |
+
/** Remove plug-ins update notifications from back-end */
|
308 |
+
public static function fix_removePluginUpdateNotifications()
|
309 |
+
{
|
310 |
+
global $wsdPluginAlertsArray;
|
311 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_plugins_update_notif']['name'];
|
312 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_plugins_update_notif']['type'];
|
313 |
+
|
314 |
+
/* This check is important so this function will run only if the user enables it. */
|
315 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
316 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
317 |
+
__('Plugins update notifications are displayed to all users'),
|
318 |
+
__('<p>These notifications are displayed at the top of the screen by the WordPress platform whenever the blog administrator
|
319 |
+
needs to be informed about an available update for a plugin.</p>
|
320 |
+
<p>These notifications should only be viewed by the website\'s administrators and not visible to any other users registered with that website.</p>'),
|
321 |
+
sprintf(__('<p>This plugin can automatically hide these notifications if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Remove plug-ins update notifications from back-end')
|
322 |
+
);
|
323 |
+
return;
|
324 |
+
}
|
325 |
+
|
326 |
+
if (!SwpaUtil::isAdministrator())
|
327 |
+
{
|
328 |
+
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', 'wp_plugin_update_rows' );" ), 2 );
|
329 |
+
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', '_maybe_update_plugins' );" ), 2 );
|
330 |
+
add_action( 'admin_menu', create_function( '$a', "remove_action( 'load-plugins.php', 'wp_update_plugins' );" ) );
|
331 |
+
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', 'wp_update_plugins' );" ), 2 );
|
332 |
+
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_update_plugins' );" ), 2 );
|
333 |
+
add_filter( 'pre_option_update_plugins', create_function( '$a', "return null;" ) );
|
334 |
+
remove_action( 'load-plugins.php', 'wp_update_plugins' );
|
335 |
+
remove_action( 'load-update.php', 'wp_update_plugins' );
|
336 |
+
remove_action( 'admin_init', '_maybe_update_plugins' );
|
337 |
+
remove_action( 'wp_update_plugins', 'wp_update_plugins' );
|
338 |
+
remove_action( 'load-update-core.php', 'wp_update_plugins' );
|
339 |
+
add_filter( 'pre_transient_update_plugins', create_function( '$a', "return null;" ) );
|
340 |
+
}
|
341 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
342 |
+
__('Plugins update notifications are only displayed to administrator users'),
|
343 |
+
__('<p>Currently, these notifications are only displayed to administrator users.</p>')
|
344 |
+
);
|
345 |
+
}
|
346 |
+
|
347 |
+
/** Remove themes update notifications from back-end */
|
348 |
+
public static function fix_removeThemeUpdateNotifications()
|
349 |
+
{
|
350 |
+
global $wsdPluginAlertsArray;
|
351 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_themes_update_notif']['name'];
|
352 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_themes_update_notif']['type'];
|
353 |
+
|
354 |
+
/* This check is important so this function will run only if the user enables it. */
|
355 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
356 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
357 |
+
__('Themes update notifications are displayed to all users.'),
|
358 |
+
__('<p>These notifications are displayed at the top of the screen by the WordPress platform whenever the blog administrator
|
359 |
+
needs to be informed about an available update for a theme.</p>
|
360 |
+
<p>These notifications should only be viewed by the website\'s administrators and not visible to any other users registered with that website.</p>'),
|
361 |
+
sprintf(__('<p>This plugin can automatically hide these notifications if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Remove themes update notifications from back-end')
|
362 |
+
);
|
363 |
+
return;
|
364 |
+
}
|
365 |
+
|
366 |
+
if (!SwpaUtil::isAdministrator())
|
367 |
+
{
|
368 |
+
remove_action( 'load-themes.php', 'wp_update_themes' );
|
369 |
+
remove_action( 'load-update.php', 'wp_update_themes' );
|
370 |
+
remove_action( 'admin_init', '_maybe_update_themes' );
|
371 |
+
remove_action( 'wp_update_themes', 'wp_update_themes' );
|
372 |
+
remove_action( 'load-update-core.php', 'wp_update_themes' );
|
373 |
+
add_filter( 'pre_transient_update_themes', create_function( '$a', "return null;" ) );
|
374 |
+
}
|
375 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
376 |
+
__('Themes update notifications are only displayed to administrator users'),
|
377 |
+
__('<p>Currently, these notifications are only displayed to administrator users.</p>')
|
378 |
+
);
|
379 |
+
}
|
380 |
+
|
381 |
+
/** Remove login error notifications from front-end */
|
382 |
+
public static function fix_removeLoginErrorNotificationsFrontEnd()
|
383 |
+
{
|
384 |
+
global $wsdPluginAlertsArray;
|
385 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_login_errors']['name'];
|
386 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_login_errors']['type'];
|
387 |
+
|
388 |
+
/* This check is important so this function will run only if the user enables it. */
|
389 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
390 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
391 |
+
__('WordPress login errors are displayed.'),
|
392 |
+
__('<p>Every time a failed login is encountered, the WordPress platform generates an error message that is displayed to the user.
|
393 |
+
This is a potential security risk because it let\'s the user know of his mistake (be it a wrong user name or password) thus making your
|
394 |
+
WordPress website more vulnerable to attacks.</p>
|
395 |
+
<p>We strongly recommend you to hide these login error messages from all users to ensure a better security of your blog.</p>'),
|
396 |
+
sprintf(__('<p>This plugin can automatically hide these notifications if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Remove login error notifications from front-end')
|
397 |
+
);
|
398 |
+
return;
|
399 |
+
}
|
400 |
+
$str = '<link rel="stylesheet" type="text/css" href="'.SwpaUtil::cssUrl('acx-styles-extra.css').'"/>';
|
401 |
+
add_action('login_head', create_function('$a', "echo '{$str}';"));
|
402 |
+
add_filter('login_errors', create_function('$a', "return null;"));
|
403 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
404 |
+
__('WordPress login errors are not displayed.'),
|
405 |
+
__('<p>Currently, these errors are hidden to all users.</p>')
|
406 |
+
);
|
407 |
+
}
|
408 |
+
|
409 |
+
/** Hide admin notifications for non admins. */
|
410 |
+
public static function fix_hideAdminNotifications()
|
411 |
+
{
|
412 |
+
global $wsdPluginAlertsArray;
|
413 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_admin_notices']['name'];
|
414 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_admin_notices']['type'];
|
415 |
+
|
416 |
+
/* This check is important so this function will run only if the user enables it. */
|
417 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
418 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
419 |
+
__('WordPress admin notifications are displayed to all users.'),
|
420 |
+
__('<p>These notifications are displayed at the top of the screen by the WordPress platform whenever the blog administrator
|
421 |
+
needs to be informed about an event that has occurred inside WordPress, it could be about an available update for the
|
422 |
+
WordPress platform, a plugin or a theme that was updated or needs an update or to be configured, etc.</p>
|
423 |
+
<p>These notifications should only be viewed by the website\'s administrators and not visible to any other users registered with that website.</p>'),
|
424 |
+
sprintf(__('<p>This plugin can automatically hide these notifications if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Hide admin notifications for non admins')
|
425 |
+
);
|
426 |
+
return;
|
427 |
+
}
|
428 |
+
|
429 |
+
if (!SwpaUtil::isAdministrator())
|
430 |
+
{
|
431 |
+
add_action('init', create_function('$a', "remove_action('init', 'wp_version_check');"), 2);
|
432 |
+
add_filter('pre_option_update_core', create_function('$a', "return null;"));
|
433 |
+
}
|
434 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
435 |
+
__('WordPress admin notifications are only displayed to administrator users.'),
|
436 |
+
__('<p>These notifications are displayed at the top of the screen by the WordPress platform whenever the blog administrator
|
437 |
+
needs to be informed about an event that has occurred inside WordPress, it could be about an available update for the
|
438 |
+
WordPress platform, a plugin or a theme that was updated or needs an update or to be configured, etc.</p>
|
439 |
+
<p>Currently, these notifications are displayed only to administrator users.</p>'));
|
440 |
+
}
|
441 |
+
|
442 |
+
/** Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing */
|
443 |
+
public static function fix_preventDirectoryListing()
|
444 |
+
{
|
445 |
+
global $wsdPluginAlertsArray;
|
446 |
+
|
447 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_dir_listing']['name'];
|
448 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_dir_listing']['type'];
|
449 |
+
/* This check is important so this function will run only if the user enables it. */
|
450 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
451 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
452 |
+
__('Directory listing check is disabled. This option should be enabled.'),
|
453 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
454 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
455 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
456 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>index.php</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if
|
457 |
+
the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
458 |
+
'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
459 |
+
);
|
460 |
+
return;
|
461 |
+
}
|
462 |
+
else {
|
463 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
464 |
+
__('Directory listing check is enabled.'),
|
465 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
466 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
467 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
468 |
+
);
|
469 |
+
}
|
470 |
+
|
471 |
+
$data = '<?php exit;?>';
|
472 |
+
$contentDir = trailingslashit(WP_CONTENT_DIR);
|
473 |
+
$pluginsDir = $contentDir.'plugins';
|
474 |
+
$themesDir = $contentDir.'themes';
|
475 |
+
$uploadsDir = $contentDir.'uploads';
|
476 |
+
|
477 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_index_content']['name'];
|
478 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_index_content']['type'];
|
479 |
+
$file = $contentDir.'/index.php';
|
480 |
+
if(is_dir($contentDir)){
|
481 |
+
if(is_file($file)){
|
482 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
483 |
+
sprintf(__('<strong>"%s"</strong> directory is secure from directory listing.'),'/wp-content'),
|
484 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
485 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
486 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
487 |
+
);
|
488 |
+
}
|
489 |
+
else {
|
490 |
+
if (is_writable($contentDir))
|
491 |
+
{
|
492 |
+
SwpaUtil::writeFile($file,$data);
|
493 |
+
@chmod($file,'0644');
|
494 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
495 |
+
sprintf(__('<strong>"%s"</strong> directory is secure from directory listing.'),'/wp-content'),
|
496 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
497 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
498 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
499 |
+
);
|
500 |
+
}
|
501 |
+
else {
|
502 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
503 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content'),
|
504 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
505 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
506 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
507 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>index.php</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if
|
508 |
+
the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
509 |
+
'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
510 |
+
);
|
511 |
+
}
|
512 |
+
}
|
513 |
+
}
|
514 |
+
|
515 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_index_plugins']['name'];
|
516 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_index_plugins']['type'];
|
517 |
+
$file = $pluginsDir.'/index.php';
|
518 |
+
if(is_dir($pluginsDir)){
|
519 |
+
if(is_file($file)){
|
520 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
521 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/plugins'),
|
522 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
523 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
524 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
525 |
+
);
|
526 |
+
}
|
527 |
+
else {
|
528 |
+
if (is_writable($pluginsDir))
|
529 |
+
{
|
530 |
+
SwpaUtil::writeFile($file,$data);
|
531 |
+
@chmod($file,'0644');
|
532 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
533 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/plugins'),
|
534 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
535 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
536 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
537 |
+
);
|
538 |
+
}
|
539 |
+
else {
|
540 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
541 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/plugins'),
|
542 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
543 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
544 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
545 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>index.php</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if
|
546 |
+
the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
547 |
+
'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
548 |
+
);
|
549 |
+
}
|
550 |
+
}
|
551 |
+
}
|
552 |
+
|
553 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_index_themes']['name'];
|
554 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_index_themes']['type'];
|
555 |
+
$file = $themesDir.'/index.php';
|
556 |
+
if(is_dir($themesDir)){
|
557 |
+
if(is_file($file)){
|
558 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
559 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/themes'),
|
560 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
561 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
562 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
563 |
+
);
|
564 |
+
}
|
565 |
+
else {
|
566 |
+
if (is_writable($themesDir))
|
567 |
+
{
|
568 |
+
SwpaUtil::writeFile($file,$data);
|
569 |
+
@chmod($file,'0644');
|
570 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
571 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/themes'),
|
572 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
573 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
574 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
575 |
+
);
|
576 |
+
}
|
577 |
+
else {
|
578 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
579 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/themes'),
|
580 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
581 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
582 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
583 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>index.php</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if
|
584 |
+
the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
585 |
+
'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
586 |
+
);
|
587 |
+
}
|
588 |
+
}
|
589 |
+
}
|
590 |
+
|
591 |
+
$actionName = $wsdPluginAlertsArray['fix_wp_index_uploads']['name'];
|
592 |
+
$alertType = $wsdPluginAlertsArray['fix_wp_index_uploads']['type'];
|
593 |
+
$file = $uploadsDir.'/index.php';
|
594 |
+
if(is_dir($uploadsDir)){
|
595 |
+
if(is_file($file)){
|
596 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
597 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/uploads'),
|
598 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
599 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
600 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
601 |
+
);
|
602 |
+
}
|
603 |
+
else {
|
604 |
+
if (is_writable($uploadsDir))
|
605 |
+
{
|
606 |
+
SwpaUtil::writeFile($file,$data);
|
607 |
+
@chmod($file,'0644');
|
608 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
609 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/uploads'),
|
610 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
611 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
612 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>')
|
613 |
+
);
|
614 |
+
}
|
615 |
+
else {
|
616 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
617 |
+
sprintf(__('<strong>"%s"</strong> directory is not secure from directory listing.'),'/wp-content/uploads'),
|
618 |
+
__('<p>A directory listing provides an attacker with the complete index of all the resources located inside of the directory.
|
619 |
+
The specific risks and consequences vary depending on which files are listed and accessible.
|
620 |
+
Therefore, it is important to protect your directories by having an empty index.php or index.htm file inside them.</p>'),
|
621 |
+
sprintf(__('<p>This plugin can automatically create an empty <strong>index.php</strong> file in the following directories: wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads if
|
622 |
+
the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'),
|
623 |
+
'Try to create the index.php file in the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listing')
|
624 |
+
);
|
625 |
+
}
|
626 |
+
}
|
627 |
+
}
|
628 |
+
}
|
629 |
+
|
630 |
+
/** Remove the version parameter from urls */
|
631 |
+
public static function fix_removeWpVersionFromLinks($src = '')
|
632 |
+
{
|
633 |
+
global $wsdPluginAlertsArray;
|
634 |
+
$actionName = $wsdPluginAlertsArray['fix_remove_wp_version_links']['name'];
|
635 |
+
$alertType = $wsdPluginAlertsArray['fix_remove_wp_version_links']['type'];
|
636 |
+
|
637 |
+
/* This check is important so this function will run only if the user enables it. */
|
638 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
639 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_CRITICAL,
|
640 |
+
__('WordPress version is displayed in links for all users'),
|
641 |
+
__('<p>By default, WordPress will display the current version in links to javascript scripts or stylesheets.
|
642 |
+
Therefore, if anyone has access to this information it might be a security risk because if a hacker knows which version of WordPress a website is running,
|
643 |
+
it can make it easier for him to target a known WordPress security issue.</p>'),
|
644 |
+
sprintf(__('<p>This plugin can automatically hide the WordPress version from links if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.</p>'), 'Remove the version parameter from urls')
|
645 |
+
);
|
646 |
+
return;
|
647 |
+
}
|
648 |
+
|
649 |
+
if (!SwpaUtil::isAdministrator())
|
650 |
+
{
|
651 |
+
add_filter('script_loader_src', array('SwpaSecurityHelper', '__removeWpVersionFromLinks'));
|
652 |
+
add_filter('style_loader_src', array('SwpaSecurityHelper', '__removeWpVersionFromLinks'));
|
653 |
+
}
|
654 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
655 |
+
__('WordPress version displayed in links only for administrator users.'),
|
656 |
+
__('<p>By default, WordPress will display the current version in links to javascript scripts or stylesheets.
|
657 |
+
Therefore, if anyone has access to this information it might be a security risk because if a hacker knows which version of WordPress a website is running,
|
658 |
+
it can make it easier for him to target a known WordPress security issue.</p>')
|
659 |
+
);
|
660 |
+
}
|
661 |
+
|
662 |
+
/** Empty the content of the readme.html file from the root directory. */
|
663 |
+
public static function fix_emptyReadmeFileFromRoot()
|
664 |
+
{
|
665 |
+
global $wsdPluginAlertsArray;
|
666 |
+
|
667 |
+
// if the file is 404 or not readable or empty, there is no need to display the alert
|
668 |
+
$filePath = trailingslashit(ABSPATH).'readme.html';
|
669 |
+
if(! is_file($filePath)){ return; }
|
670 |
+
if(! is_readable($filePath)) { return; }
|
671 |
+
$fsize = @filesize($filePath);
|
672 |
+
if(false !== $fsize && $fsize == 0) { return; }
|
673 |
+
|
674 |
+
$actionName = $wsdPluginAlertsArray['fix_empty_root_readme_file']['name'];
|
675 |
+
$alertType = $wsdPluginAlertsArray['fix_empty_root_readme_file']['type'];
|
676 |
+
/* This check is important so this function will run only if the user enables it. */
|
677 |
+
if(! self::isSettingEnabled(__FUNCTION__)){
|
678 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
679 |
+
sprintf(__('Clearing the content of the <strong>"%s"</strong> file from the <strong>"%s"</strong> directory is disabled.'), 'readme.html', 'root'),
|
680 |
+
__('<p>A default WordPress installation contains a readme.html file. This file is a simple html file that does not contain executable content that can be exploited by hackers or malicious users.
|
681 |
+
Still, this file can provide hackers the version of your WordPress installation, therefore it is important to either delete this file or make it inaccessible for your visitors.</p>'),
|
682 |
+
sprintf(__('<p>This plugin can automatically delete its content (assuming the file exists) if the option <strong>"%s"</strong> is checked on the plugin\'s settings page.
|
683 |
+
You can also delete this file manually by connecting to your website through an FTP connection.</p>'), 'Empty the content of the readme.html file from the root directory')
|
684 |
+
);
|
685 |
+
return;
|
686 |
+
}
|
687 |
+
else {
|
688 |
+
// clear the content of the file
|
689 |
+
$result = file_put_contents($filePath,'');
|
690 |
+
// failure
|
691 |
+
if(false === $result){
|
692 |
+
// todo
|
693 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
694 |
+
sprintf(__('The content of the <strong>"%s"</strong> file from the <strong>"%s"</strong> directory could not be deleted.'), 'readme.html', 'root'),
|
695 |
+
__('<p>A default WordPress installation contains a readme.html file. This file is a simple html file that does not contain executable content that can be exploited by hackers or malicious users.
|
696 |
+
Still, this file can provide hackers the version of your WordPress installation, therefore it is important to either delete this file or make it inaccessible for your visitors.</p>'),
|
697 |
+
__('<p>We have encountered an error while trying to delete the content of this file, thus you will have to manually delete it or make it inaccessible from your visitors by setting the file permissions to <strong>0440</strong> or lower.</p>')
|
698 |
+
);
|
699 |
+
return;
|
700 |
+
}
|
701 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_INFO,
|
702 |
+
__('The content of the readme.html file from the root directory has been deleted.'),
|
703 |
+
__('<p>A default WordPress installation contains a readme.html file. This file is a simple html file that does not contain executable content that can be exploited by hackers or malicious users.
|
704 |
+
Still, this file can provide hackers the version of your WordPress installation, therefore it is important to either delete this file or make it inaccessible for your visitors.</p>')
|
705 |
+
);
|
706 |
+
}
|
707 |
+
|
708 |
+
}
|
709 |
+
|
710 |
+
}
|
711 |
+
|
712 |
+
class SwpaSecurityHelper
|
713 |
+
{
|
714 |
+
/**
|
715 |
+
* @private
|
716 |
+
* @param $src
|
717 |
+
* @return mixed
|
718 |
+
*/
|
719 |
+
public static function __removeWpVersionFromLinks($src)
|
720 |
+
{
|
721 |
+
// Just the URI without the query string.
|
722 |
+
$src = preg_replace("/\?ver=(.*)/mi", '', $src);
|
723 |
+
return $src;
|
724 |
+
}
|
725 |
+
|
726 |
+
}
|
res/inc/SwpaUtil.php
ADDED
@@ -0,0 +1,577 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class SwpaUtil
|
5 |
+
* Static class. Provides utility methods for various tasks
|
6 |
+
*/
|
7 |
+
class SwpaUtil
|
8 |
+
{
|
9 |
+
/**
|
10 |
+
* @return bool
|
11 |
+
* Convenient method to check whether or not the plugin's resources can be loaded
|
12 |
+
*/
|
13 |
+
public static function canLoad() { return ((false === ($pos = stripos($_SERVER['REQUEST_URI'], SWPA_PLUGIN_PREFIX))) ? false : true); }
|
14 |
+
public static function cssUrl($fileName){ return SWPA_PLUGIN_URL.'res/css/'.$fileName; }
|
15 |
+
public static function imageUrl($fileName){ return SWPA_PLUGIN_URL.'res/images/'.$fileName; }
|
16 |
+
public static function jsUrl($fileName) { return SWPA_PLUGIN_URL.'res/js/'.$fileName; }
|
17 |
+
public static function resUrl() { return SWPA_PLUGIN_URL.'res/'; }
|
18 |
+
public static function includePage($fileName)
|
19 |
+
{
|
20 |
+
if(! self::canLoad()) { return; }
|
21 |
+
$dirPath = SWPA_PLUGIN_DIR.'res/pages/';
|
22 |
+
if(! is_dir($dirPath)) { return; }
|
23 |
+
if(! is_readable($dirPath)) { return; }
|
24 |
+
$fname = $dirPath.$fileName;
|
25 |
+
if(false !== ($pos = strpos($fname, '../')) || false !== ($pos = strpos($fname, './'))){ return; }
|
26 |
+
if(! is_file($fname) || ! is_readable($fname)) { return; }
|
27 |
+
include($fname);
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @public
|
32 |
+
* @static
|
33 |
+
* Load the text domain
|
34 |
+
* @return void
|
35 |
+
*/
|
36 |
+
public static function loadTextDomain(){ if ( function_exists('load_plugin_textdomain') ) { load_plugin_textdomain(SWPA_PLUGIN_TEXT_DOMAIN, false, SWPA_PLUGIN_DIR.'res/languages/'); } }
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @public
|
40 |
+
* @static
|
41 |
+
* @uses self::checkFileName()
|
42 |
+
*
|
43 |
+
* Retrieve the content of the specified template file.
|
44 |
+
*
|
45 |
+
* @param type $fileName the name of the template file to load.
|
46 |
+
* Without the ".php" file extension.
|
47 |
+
* @param array $data The data to send to the template file
|
48 |
+
* @return string The parsed content of the template file
|
49 |
+
*/
|
50 |
+
public static function loadTemplate($fileName, array $data = array())
|
51 |
+
{
|
52 |
+
self::checkFileName($fileName);
|
53 |
+
$str = '';
|
54 |
+
$file = SWPA_PLUGIN_DIR.'res/pages/tpl/'.$fileName.'.php';
|
55 |
+
if (is_file($file))
|
56 |
+
{
|
57 |
+
ob_start();
|
58 |
+
if (!empty($data)) {
|
59 |
+
extract($data);
|
60 |
+
}
|
61 |
+
include($file);
|
62 |
+
$str = ob_get_contents();
|
63 |
+
ob_end_clean();
|
64 |
+
}
|
65 |
+
return $str;
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* @public
|
70 |
+
* @static
|
71 |
+
* @uses wp_die()
|
72 |
+
*
|
73 |
+
* Check the specified file name for directory traversal attacks.
|
74 |
+
* Exits the script if the "..[/]" is found in the $fileName.
|
75 |
+
*
|
76 |
+
* @param string $fileName The name of the file to check
|
77 |
+
* @return void
|
78 |
+
*/
|
79 |
+
public static function checkFileName($fileName)
|
80 |
+
{
|
81 |
+
$fileName = trim($fileName);
|
82 |
+
//@@ Check for directory traversal attacks
|
83 |
+
if (preg_match("/\.\.\//",$fileName)) {
|
84 |
+
wp_die('Invalid Request!');
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @public
|
90 |
+
* @static
|
91 |
+
*
|
92 |
+
* Attempts to write the provided $data into the specified $file
|
93 |
+
* using either file_put_contents or fopen/fwrite functions (whichever is available).
|
94 |
+
*
|
95 |
+
* @param string $file The path to the file
|
96 |
+
* @param string $data The content to write into the file
|
97 |
+
* @param resource $fh The file handle to use if fopen function is available. Optional, defaults to null
|
98 |
+
*
|
99 |
+
* @return int The number of bytes written to the file, otherwise -1.
|
100 |
+
*/
|
101 |
+
public static function writeFile($file, $data, $fh = null)
|
102 |
+
{
|
103 |
+
if(! is_null($fh) && is_resource($fh)){
|
104 |
+
fwrite($fh,$data);
|
105 |
+
return strlen($data);
|
106 |
+
}
|
107 |
+
else {
|
108 |
+
if (function_exists('file_put_contents')) {
|
109 |
+
return file_put_contents($file,$data);
|
110 |
+
}
|
111 |
+
}
|
112 |
+
return -1;
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* @public
|
117 |
+
* @param array $acxFileList
|
118 |
+
* Apply the suggested permissions for the list of files
|
119 |
+
* provided in the global $acxFileList array.
|
120 |
+
* @return array array('success' => integer, 'failed' => integer)
|
121 |
+
*/
|
122 |
+
public static function changeFilePermissions($acxFileList)
|
123 |
+
{
|
124 |
+
if (empty($acxFileList)) {
|
125 |
+
return array();
|
126 |
+
}
|
127 |
+
// chmod doesn't work on windows... :/
|
128 |
+
if (self::isWinOs()) {
|
129 |
+
return array();
|
130 |
+
}
|
131 |
+
|
132 |
+
$s = $f = 0;
|
133 |
+
foreach($acxFileList as $k => $v)
|
134 |
+
{
|
135 |
+
$filePath = $v['filePath'];
|
136 |
+
$sp = $v['suggestedPermissions'];
|
137 |
+
$sp = (is_string($sp) ? octdec($sp) : $sp);
|
138 |
+
|
139 |
+
//@ include directories too
|
140 |
+
if (file_exists($filePath))
|
141 |
+
{
|
142 |
+
if (false !== @chmod($filePath, $sp)) {
|
143 |
+
$s++;
|
144 |
+
}
|
145 |
+
else { $f++; }
|
146 |
+
}
|
147 |
+
else {
|
148 |
+
// if no path provided
|
149 |
+
if(empty($filePath)){
|
150 |
+
$f++;
|
151 |
+
continue;
|
152 |
+
}
|
153 |
+
// try to create the missing files
|
154 |
+
if(false !== file_put_contents($filePath, '')){
|
155 |
+
if (false !== @chmod($filePath, $sp)) {
|
156 |
+
$s++;
|
157 |
+
}
|
158 |
+
else { $f++; }
|
159 |
+
}
|
160 |
+
else { $f++; }
|
161 |
+
}
|
162 |
+
}
|
163 |
+
return array('success' => $s, 'failed' => $f);
|
164 |
+
}
|
165 |
+
|
166 |
+
public static function getFilePermissions($filePath)
|
167 |
+
{
|
168 |
+
if (!function_exists('fileperms')) {
|
169 |
+
return '-1';
|
170 |
+
}
|
171 |
+
if (!file_exists($filePath)) {
|
172 |
+
return '-1';
|
173 |
+
}
|
174 |
+
clearstatcache();
|
175 |
+
return substr(sprintf("%o", fileperms($filePath)), -4);
|
176 |
+
}
|
177 |
+
|
178 |
+
public static function normalizePath($path) {
|
179 |
+
return str_replace('\\', '/', $path);
|
180 |
+
}
|
181 |
+
|
182 |
+
public static function isWinOs(){
|
183 |
+
return ((strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? true : false);
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Check to see whether or not the current user is an administrator
|
188 |
+
* @return bool
|
189 |
+
*/
|
190 |
+
public static function isAdministrator(){
|
191 |
+
self::loadPluggable();
|
192 |
+
return user_can(wp_get_current_user(),'update_core');
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Check to see whether or not the specified table exists in the database
|
197 |
+
* @param $tableName The table to check for existence. It requires the full qualified name of the table
|
198 |
+
* - which means the prefix must be there as well.
|
199 |
+
* @return bool
|
200 |
+
*/
|
201 |
+
public static function tableExists($tableName)
|
202 |
+
{
|
203 |
+
global $wpdb;
|
204 |
+
$result = $wpdb->get_var("SHOW TABLES LIKE '$tableName'");
|
205 |
+
return (is_null($result) ? false : true);
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* @public
|
210 |
+
* @uses wp_die()
|
211 |
+
*
|
212 |
+
* Backup the database and save the script to the plug-in's backups directory.
|
213 |
+
* This directory must be writable!
|
214 |
+
*
|
215 |
+
* @return string The name of the generated backup file or empty string on failure.
|
216 |
+
*/
|
217 |
+
public static function backupDatabase()
|
218 |
+
{
|
219 |
+
if (!is_writable(SWPA_PLUGIN_BACKUPS_DIR))
|
220 |
+
{
|
221 |
+
$s = sprintf(__('The %s directory <strong>MUST</strong> be writable for this feature to work!'), SWPA_PLUGIN_BACKUPS_DIR);
|
222 |
+
wp_die($s);
|
223 |
+
}
|
224 |
+
|
225 |
+
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
|
226 |
+
if (!$link) {
|
227 |
+
wp_die(__('Error: Cannot connect to database!'));
|
228 |
+
}
|
229 |
+
if (!mysql_select_db(DB_NAME,$link)) {
|
230 |
+
wp_die(__('Error: Could not select the database!'));
|
231 |
+
}
|
232 |
+
|
233 |
+
//get all of the tables
|
234 |
+
$tables = array();
|
235 |
+
$result = mysql_query('SHOW TABLES');
|
236 |
+
while($row = mysql_fetch_row($result))
|
237 |
+
{
|
238 |
+
if(! empty($row[0])){
|
239 |
+
$tables[] = $row[0];
|
240 |
+
}
|
241 |
+
}
|
242 |
+
|
243 |
+
if (empty($tables))
|
244 |
+
{
|
245 |
+
wp_die(__('Could not retrieve the list of tables from the database!'));
|
246 |
+
}
|
247 |
+
|
248 |
+
$h = null;
|
249 |
+
$time = gmdate("m-j-Y-h-i-s", time());
|
250 |
+
$rand = self::makeSeed()+rand(12131, 9999999);
|
251 |
+
$fname = 'bck_'.$time.'_'.$rand.'.sql';
|
252 |
+
$filePath = SWPA_PLUGIN_BACKUPS_DIR.$fname;
|
253 |
+
|
254 |
+
if(function_exists('fopen') && function_exists('fwrite') && function_exists('fclose'))
|
255 |
+
{
|
256 |
+
$h = fopen($filePath,'a+');
|
257 |
+
self::__doBackup($filePath, $tables, $h);
|
258 |
+
fclose($h);
|
259 |
+
}
|
260 |
+
else {
|
261 |
+
if(function_exists('file_put_contents')){
|
262 |
+
self::__doBackup($filePath, $tables, $h);
|
263 |
+
}
|
264 |
+
}
|
265 |
+
if(! is_file($filePath)){
|
266 |
+
return '';
|
267 |
+
}
|
268 |
+
$fs = @filesize($filePath);
|
269 |
+
return (($fs > 0) ? $fname : '');
|
270 |
+
}
|
271 |
+
|
272 |
+
/**
|
273 |
+
* @private
|
274 |
+
*/
|
275 |
+
private static function __doBackup($filePath, array $tables = array(), $h = null)
|
276 |
+
{
|
277 |
+
$data = 'CREATE DATABASE IF NOT EXISTS '.DB_NAME.';'.PHP_EOL;
|
278 |
+
$data .= 'USE '.DB_NAME.';'.PHP_EOL;
|
279 |
+
self::writeFile($filePath, $data, $h);
|
280 |
+
|
281 |
+
//cycle through
|
282 |
+
foreach($tables as $table)
|
283 |
+
{
|
284 |
+
$result = mysql_query('SELECT * FROM '.$table);
|
285 |
+
$num_fields = mysql_num_fields($result);
|
286 |
+
|
287 |
+
$data = 'DROP TABLE IF EXISTS '.$table.';';
|
288 |
+
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
|
289 |
+
$data .= $row2[1].';'.PHP_EOL;
|
290 |
+
self::writeFile($filePath, $data, $h);
|
291 |
+
|
292 |
+
for ($i = 0; $i < $num_fields; $i++)
|
293 |
+
{
|
294 |
+
while($row = mysql_fetch_row($result))
|
295 |
+
{
|
296 |
+
$data = 'INSERT INTO '.$table.' VALUES(';
|
297 |
+
for($j=0; $j<$num_fields; $j++)
|
298 |
+
{
|
299 |
+
$row[$j] = addslashes($row[$j]);
|
300 |
+
$row[$j] = @preg_replace("/\n(\s*\n)+/",PHP_EOL,$row[$j]);
|
301 |
+
if (isset($row[$j])) { $data .= '"'.$row[$j].'"' ; } else { $data .= '""'; }
|
302 |
+
if ($j<($num_fields-1)) { $data .= ','; }
|
303 |
+
}
|
304 |
+
$data .= ");".PHP_EOL;
|
305 |
+
self::writeFile($filePath, $data, $h);
|
306 |
+
}
|
307 |
+
} //#! end for
|
308 |
+
} //#! end foreach
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* @public
|
313 |
+
* Retrieve the list of all available backup files from the backups directory
|
314 |
+
* @return array
|
315 |
+
*/
|
316 |
+
public static function getAvailableBackupFiles()
|
317 |
+
{
|
318 |
+
$files = glob(SWPA_PLUGIN_BACKUPS_DIR.'*.sql');
|
319 |
+
if (empty($files)) { return array();}
|
320 |
+
return array_map('basename', $files/*, array('.sql')*/);
|
321 |
+
}
|
322 |
+
|
323 |
+
/**
|
324 |
+
* @public
|
325 |
+
* Create a number
|
326 |
+
* @return double
|
327 |
+
*/
|
328 |
+
public static function makeSeed()
|
329 |
+
{
|
330 |
+
list($usec, $sec) = explode(' ', microtime());
|
331 |
+
return (float)$sec + ((float)$usec * 100000);
|
332 |
+
}
|
333 |
+
|
334 |
+
/**
|
335 |
+
* @public
|
336 |
+
* @global object $wpdb
|
337 |
+
* Get the list of tables to modify
|
338 |
+
* @return array
|
339 |
+
*/
|
340 |
+
public static function getTablesToAlter()
|
341 |
+
{
|
342 |
+
global $wpdb;
|
343 |
+
return $wpdb->get_results("SHOW TABLES LIKE '".$GLOBALS['table_prefix']."%'", ARRAY_N);
|
344 |
+
}
|
345 |
+
|
346 |
+
/**
|
347 |
+
* @public
|
348 |
+
* @global object $wpdb
|
349 |
+
* Rename tables from database
|
350 |
+
* @param array the list of tables to rename
|
351 |
+
* @param string $currentPrefix the current prefix in use
|
352 |
+
* @param string $newPrefix the new prefix to use
|
353 |
+
* @return array
|
354 |
+
*/
|
355 |
+
public static function renameTables($tables, $currentPrefix, $newPrefix)
|
356 |
+
{
|
357 |
+
global $wpdb;
|
358 |
+
$changedTables = array();
|
359 |
+
foreach ($tables as $k=>$table){
|
360 |
+
$tableOldName = $table[0];
|
361 |
+
// Try to rename the table
|
362 |
+
$tableNewName = substr_replace($tableOldName, $newPrefix, 0, strlen($currentPrefix));
|
363 |
+
// Try to rename the table
|
364 |
+
$wpdb->query("RENAME TABLE `{$tableOldName}` TO `{$tableNewName}`");
|
365 |
+
array_push($changedTables, $tableNewName);
|
366 |
+
}
|
367 |
+
return $changedTables;
|
368 |
+
}
|
369 |
+
|
370 |
+
/**
|
371 |
+
* @public
|
372 |
+
* @global object $wpdb
|
373 |
+
* Rename some fields from options & usermeta tables in order to reflect the prefix change
|
374 |
+
* @param string $oldPrefix the existent db prefix
|
375 |
+
* @param string $newPrefix the new prefix to use
|
376 |
+
* @return string
|
377 |
+
*/
|
378 |
+
public static function renameDbFields($oldPrefix,$newPrefix)
|
379 |
+
{
|
380 |
+
global $wpdb;
|
381 |
+
$str = '';
|
382 |
+
if (false === $wpdb->query("UPDATE {$newPrefix}options SET option_name='{$newPrefix}user_roles' WHERE option_name='{$oldPrefix}user_roles';")) {
|
383 |
+
$str .= '<br/>'.sprintf(__('Changing value: %suser_roles in table <strong>%soptions</strong>: <span style="color:#ff0000;">Failed</span>'),$newPrefix, $newPrefix);
|
384 |
+
}
|
385 |
+
$query = 'UPDATE '.$newPrefix.'usermeta
|
386 |
+
SET meta_key = CONCAT(replace(left(meta_key, ' . strlen($oldPrefix) . "), '{$oldPrefix}', '{$newPrefix}'), SUBSTR(meta_key, " . (strlen($oldPrefix) + 1) . "))
|
387 |
+
WHERE
|
388 |
+
meta_key IN ('{$oldPrefix}autosave_draft_ids', '{$oldPrefix}capabilities', '{$oldPrefix}metaboxorder_post', '{$oldPrefix}user_level', '{$oldPrefix}usersettings',
|
389 |
+
'{$oldPrefix}usersettingstime', '{$oldPrefix}user-settings', '{$oldPrefix}user-settings-time', '{$oldPrefix}dashboard_quick_press_last_post_id')";
|
390 |
+
|
391 |
+
if (false === $wpdb->query($query)) {
|
392 |
+
$str .= '<br/>'.sprintf(__('Changing values in table <strong>%susermeta</strong>: <span style="color:#ff0000;">Failed</span>'), $newPrefix);
|
393 |
+
}
|
394 |
+
if (!empty($str)) {
|
395 |
+
$str = __('Changing database prefix').': '.$str;
|
396 |
+
}
|
397 |
+
return $str;
|
398 |
+
}
|
399 |
+
|
400 |
+
/**
|
401 |
+
* @public
|
402 |
+
* Update the wp-config file to reflect the table prefix change.
|
403 |
+
* The wp file must be writable for this operation to work!
|
404 |
+
*
|
405 |
+
* @param string $wsd_wpConfigFile The path to the wp-config file
|
406 |
+
* @param string $newPrefix The new prefix to use instead of the old one
|
407 |
+
* @return int the number of bytes written to te file or -1 on error
|
408 |
+
*/
|
409 |
+
public static function updateWpConfigTablePrefix($wsd_wpConfigFile, $newPrefix)
|
410 |
+
{
|
411 |
+
// If file is not writable...
|
412 |
+
if (!is_writable($wsd_wpConfigFile)){
|
413 |
+
return -1;
|
414 |
+
}
|
415 |
+
|
416 |
+
// We need the 'file' function...
|
417 |
+
if (!function_exists('file')) {
|
418 |
+
return -1;
|
419 |
+
}
|
420 |
+
|
421 |
+
// Try to update the wp-config file
|
422 |
+
$lines = file($wsd_wpConfigFile);
|
423 |
+
$fcontent = '';
|
424 |
+
$result = -1;
|
425 |
+
foreach($lines as $line)
|
426 |
+
{
|
427 |
+
$line = ltrim($line);
|
428 |
+
if (!empty($line)){
|
429 |
+
if (strpos($line, '$table_prefix') !== false){
|
430 |
+
$line = preg_replace("/=(.*)\;/", "= '".$newPrefix."';", $line);
|
431 |
+
}
|
432 |
+
}
|
433 |
+
$fcontent .= $line;
|
434 |
+
}
|
435 |
+
if (!empty($fcontent))
|
436 |
+
{
|
437 |
+
// Save wp-config file
|
438 |
+
$result = self::writeFile($wsd_wpConfigFile, $fcontent);
|
439 |
+
}
|
440 |
+
return $result;
|
441 |
+
}
|
442 |
+
|
443 |
+
private static $_pluginID = 'acx_plugin_dashboard_widget';
|
444 |
+
|
445 |
+
/**
|
446 |
+
* @public
|
447 |
+
* @static
|
448 |
+
* @const SWPA_PLUGIN_BLOG_FEED
|
449 |
+
* Retrieve and display a list of links for an existing RSS feed, limiting the selection to the 5 most recent items.
|
450 |
+
* @return void
|
451 |
+
*/
|
452 |
+
public static function displayDashboardWidget()
|
453 |
+
{
|
454 |
+
if ($_SERVER['REQUEST_METHOD'] == 'POST')
|
455 |
+
{
|
456 |
+
$opt = get_option('WSD-RSS-WGT-DISPLAY');
|
457 |
+
if (empty($opt) || ($opt == 'no')) {
|
458 |
+
update_option('WSD-RSS-WGT-DISPLAY', 'no');
|
459 |
+
self::_hideDashboardWidget();
|
460 |
+
return;
|
461 |
+
}
|
462 |
+
}
|
463 |
+
|
464 |
+
//@ flag
|
465 |
+
$run = false;
|
466 |
+
|
467 |
+
//@ check cache
|
468 |
+
$optData = get_option('wsd_feed_data');
|
469 |
+
if (! empty($optData))
|
470 |
+
{
|
471 |
+
if (is_object($optData))
|
472 |
+
{
|
473 |
+
$lastUpdateTime = @$optData->expires;
|
474 |
+
// invalid cache
|
475 |
+
if (empty($lastUpdateTime)) { $run = true; }
|
476 |
+
else
|
477 |
+
{
|
478 |
+
$nextUpdateTime = $lastUpdateTime+(24*60*60);
|
479 |
+
if ($nextUpdateTime >= $lastUpdateTime)
|
480 |
+
{
|
481 |
+
$data = @$optData->data;
|
482 |
+
if (empty($data)) { $run = true; }
|
483 |
+
else {
|
484 |
+
// still a valid cache
|
485 |
+
echo $data;
|
486 |
+
return;
|
487 |
+
}
|
488 |
+
}
|
489 |
+
else { $run = true; }
|
490 |
+
}
|
491 |
+
}
|
492 |
+
else { $run = true; }
|
493 |
+
}
|
494 |
+
else { $run = true; }
|
495 |
+
|
496 |
+
if (!$run) { return; }
|
497 |
+
|
498 |
+
$rss = fetch_feed(SWPA_PLUGIN_BLOG_FEED);
|
499 |
+
|
500 |
+
$out = '';
|
501 |
+
if (is_wp_error( $rss ) )
|
502 |
+
{
|
503 |
+
$out = '<li>'.__('An error has occurred while trying to load the rss feed!').'</li>';
|
504 |
+
echo $out;
|
505 |
+
return;
|
506 |
+
}
|
507 |
+
else
|
508 |
+
{
|
509 |
+
// Limit to 5 entries.
|
510 |
+
$maxitems = $rss->get_item_quantity(5);
|
511 |
+
|
512 |
+
// Build an array of all the items,
|
513 |
+
$rss_items = $rss->get_items(0, $maxitems);
|
514 |
+
|
515 |
+
$out .= '<ul>';
|
516 |
+
if ($maxitems == 0)
|
517 |
+
{
|
518 |
+
$out.= '<li>'.__('There are no entries for this rss feed!').'</li>';
|
519 |
+
}
|
520 |
+
else
|
521 |
+
{
|
522 |
+
foreach ( $rss_items as $item ) :
|
523 |
+
$url = esc_url($item->get_permalink());
|
524 |
+
$out.= '<li>';
|
525 |
+
$out.= '<h4><a href="'.$url.'" target="_blank" title="Posted on '.$item->get_date('F j, Y | g:i a').'">';
|
526 |
+
$out.= esc_html( $item->get_title() );
|
527 |
+
$out.= '</a></h4>';
|
528 |
+
$out.= '<p>';
|
529 |
+
$d = utf8_decode( $item->get_description());
|
530 |
+
$p = substr($d, 0, 120).' <a href="'.$url.'" target="_blank" title="Read all article">[...]</a>';
|
531 |
+
$out.= $p;
|
532 |
+
$out.= '</p>';
|
533 |
+
$out.= '</li>';
|
534 |
+
endforeach;
|
535 |
+
}
|
536 |
+
$out.= '</ul>';
|
537 |
+
$out .= '<div style="border-top: solid 1px #ccc; margin-top: 4px; padding: 2px 0;">';
|
538 |
+
$out .= '<p style="margin: 5px 0 0 0; padding: 0 0; line-height: normal; overflow: hidden;">';
|
539 |
+
$out .= '<a href="http://feeds.acunetix.com/acunetixwebapplicationsecurityblog"
|
540 |
+
style="float: left; display: block; width: 50%; text-align: right; margin-left: 30px;
|
541 |
+
padding-right: 22px; background: url('.self::imageUrl('rss.png').') no-repeat right center;"
|
542 |
+
target="_blank">'.__('Follow us on RSS').'</a>';
|
543 |
+
$out .= '</p>';
|
544 |
+
$out .= '</div>';
|
545 |
+
}
|
546 |
+
|
547 |
+
// Update cache
|
548 |
+
$obj = new stdClass();
|
549 |
+
$obj->expires = time();
|
550 |
+
$obj->data = $out;
|
551 |
+
update_option('wsd_feed_data', $obj);
|
552 |
+
|
553 |
+
echo $out;
|
554 |
+
}
|
555 |
+
|
556 |
+
/**
|
557 |
+
* @public
|
558 |
+
* @static
|
559 |
+
* Add the rss widget to dashboard
|
560 |
+
* @return void
|
561 |
+
*/
|
562 |
+
public static function addDashboardWidget()
|
563 |
+
{
|
564 |
+
$rssWidgetData = get_option('WSD-RSS-WGT-DISPLAY');
|
565 |
+
if(($rssWidgetData == 'yes')){
|
566 |
+
wp_add_dashboard_widget('acx_plugin_dashboard_widget', SWPA_PLUGIN_NAME.' news and updates', array(get_class(),'displayDashboardWidget'));
|
567 |
+
}
|
568 |
+
}
|
569 |
+
/**
|
570 |
+
* Hide the dashboard rss widget
|
571 |
+
* @static
|
572 |
+
* @public
|
573 |
+
*/
|
574 |
+
public static function _hideDashboardWidget() { echo '<script>document.getElementById("'.self::$_pluginID.'").style.display = "none";</script>'; }
|
575 |
+
|
576 |
+
public static function loadPluggable(){ @include_once(ABSPATH.'wp-includes/pluggable.php'); }
|
577 |
+
}
|
res/inc/SwpaWatch.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
/**
|
3 |
+
* Class SwpaWatch
|
4 |
+
* Static class. Provides common methods to be used to monitor website activity.
|
5 |
+
*/
|
6 |
+
class SwpaWatch extends SwpaPlugin
|
7 |
+
{
|
8 |
+
/*
|
9 |
+
* PUBLIC METHODS
|
10 |
+
* ==============================================
|
11 |
+
*/
|
12 |
+
|
13 |
+
public static function userPasswordUpdate(){
|
14 |
+
add_action('edit_user_profile_update', array(get_class(), '_watchUserInfoUpdated'));
|
15 |
+
add_action('personal_options_update', array(get_class(), '_watchUserInfoUpdated'));
|
16 |
+
}
|
17 |
+
|
18 |
+
|
19 |
+
|
20 |
+
|
21 |
+
|
22 |
+
|
23 |
+
|
24 |
+
/*
|
25 |
+
* PRIVATE METHODS
|
26 |
+
* ==============================================
|
27 |
+
*/
|
28 |
+
|
29 |
+
// returns array(userName, userRole)
|
30 |
+
public static function _getUserInfo($userID)
|
31 |
+
{
|
32 |
+
global $wpdb;
|
33 |
+
|
34 |
+
$t = $wpdb->prefix.'users';
|
35 |
+
$username = $wpdb->get_var("SELECT user_login FROM $t WHERE ID=$userID");
|
36 |
+
$user = new WP_User( $userID );
|
37 |
+
$userRole = (empty($user->roles[0]) ? '' : $user->roles[0]);
|
38 |
+
return array(
|
39 |
+
'userName' => $username,
|
40 |
+
'userRole' => $userRole
|
41 |
+
);
|
42 |
+
}
|
43 |
+
/**
|
44 |
+
* @internal
|
45 |
+
* @param $userID
|
46 |
+
*/
|
47 |
+
public static function _watchUserInfoUpdated($userID)
|
48 |
+
{
|
49 |
+
// If an admin user's password has been updated
|
50 |
+
if(! empty($_POST['pass1'])){
|
51 |
+
$userInfo = self::_getUserInfo($userID);
|
52 |
+
$userName = $userInfo['userName'];
|
53 |
+
$userRole = $userInfo['userRole'];
|
54 |
+
if($userRole == 'administrator')
|
55 |
+
{
|
56 |
+
global $wsdPluginAlertsArray;
|
57 |
+
$actionName = $wsdPluginAlertsArray['watch_admin_password_update']['name'];
|
58 |
+
$alertType = $wsdPluginAlertsArray['watch_admin_password_update']['type'];
|
59 |
+
|
60 |
+
self::alert($actionName, $alertType, SWPA_PLUGIN_ALERT_MEDIUM,
|
61 |
+
sprintf(__('Administrator (%s) password updated'), $userName),
|
62 |
+
__('<p>This alert is generated every time an administrator\'s password is updated.</p>'));
|
63 |
+
}
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
}
|
res/inc/alerts.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php /** Alerts & descriptions */
|
2 |
+
$wsdPluginAlertsArray = array
|
3 |
+
(
|
4 |
+
// SwpaCheck::adminUsername
|
5 |
+
'check_username_admin' => array('name' => 'check_username_admin ', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
6 |
+
// SwpaCheck::tablePrefix
|
7 |
+
'check_table_prefix' => array('name' => 'check_table_prefix', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
8 |
+
// SwpaCheck::currentVersion
|
9 |
+
'check_wp_current_version' => array('name' => 'check_wp_current_version', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
10 |
+
// SwpaCheck::files
|
11 |
+
'check_index_wp_content' => array('name' => 'check_index_wp_content', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
12 |
+
// SwpaCheck::files
|
13 |
+
'check_index_wp_content' => array('name' => 'check_index_wp_content', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
14 |
+
// SwpaCheck::files
|
15 |
+
'check_index_wp_plugins' => array('name' => 'check_index_wp_plugins', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
16 |
+
// SwpaCheck::files
|
17 |
+
'check_index_wp_themes' => array('name' => 'check_index_wp_themes', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
18 |
+
// SwpaCheck::files - alert issued only if the wp-content/uploads directory exists
|
19 |
+
'check_index_wp_uploads' => array('name' => 'check_index_wp_uploads', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
20 |
+
// SwpaCheck::files
|
21 |
+
'check_htaccess_wp_admin' => array('name' => 'check_htaccess_wp_admin', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
22 |
+
// SwpaCheck::files
|
23 |
+
'check_readme_wp_root' => array('name' => 'check_readme_wp_root', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
24 |
+
|
25 |
+
|
26 |
+
// SwpaSecurity::fix_hideWpVersion
|
27 |
+
'fix_wp_version_hidden' => array('name' => 'fix_wp_version_hidden', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
28 |
+
// SwpaSecurity::fix_removeWpMetaGeneratorsFrontend
|
29 |
+
'fix_wp_generators_frontend' => array('name' => 'fix_wp_generators_frontend', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
30 |
+
// SwpaSecurity::fix_removeReallySimpleDiscovery
|
31 |
+
'fix_wp_rsd_frontend' => array('name' => 'fix_wp_rsd_frontend', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
32 |
+
// SwpaSecurity::fix_removeWindowsLiveWriter
|
33 |
+
'fix_wp_wlw_frontend' => array('name' => 'fix_wp_wlw_frontend', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
34 |
+
// SwpaSecurity::fix_disableErrorReporting
|
35 |
+
'fix_wp_error_reporting' => array('name' => 'fix_wp_error_reporting', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
36 |
+
// SwpaSecurity::fix_removeCoreUpdateNotification
|
37 |
+
'fix_wp_core_update_notif' => array('name' => 'fix_wp_core_update_notif', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
38 |
+
// SwpaSecurity::fix_removePluginUpdateNotifications
|
39 |
+
'fix_wp_plugins_update_notif' => array('name' => 'fix_wp_plugins_update_notif', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
40 |
+
// SwpaSecurity::fix_removeThemeUpdateNotifications
|
41 |
+
'fix_wp_themes_update_notif' => array('name' => 'fix_wp_themes_update_notif', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
42 |
+
// SwpaSecurity::fix_removeLoginErrorNotificationsFrontEnd
|
43 |
+
'fix_wp_login_errors' => array('name' => 'fix_wp_login_errors', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
44 |
+
// SwpaSecurity::fix_hideAdminNotifications
|
45 |
+
'fix_wp_admin_notices' => array('name' => 'fix_wp_admin_notices', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
46 |
+
// SwpaSecurity::fix_preventDirectoryListing
|
47 |
+
'fix_wp_dir_listing' => array('name' => 'fix_wp_dir_listing', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
48 |
+
// SwpaSecurity::fix_preventDirectoryListing
|
49 |
+
'fix_wp_index_content' => array('name' => 'fix_wp_index_content', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
50 |
+
// SwpaSecurity::fix_preventDirectoryListing
|
51 |
+
'fix_wp_index_plugins' => array('name' => 'fix_wp_index_plugins', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
52 |
+
// SwpaSecurity::fix_preventDirectoryListing
|
53 |
+
'fix_wp_index_themes' => array('name' => 'fix_wp_index_themes', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
54 |
+
// SwpaSecurity::fix_preventDirectoryListing - alert issued only if the wp-content/uploads directory exists
|
55 |
+
'fix_wp_index_uploads' => array('name' => 'fix_wp_index_uploads', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
56 |
+
// SwpaSecurity::fix_removeWpVersionFromLinks
|
57 |
+
'fix_remove_wp_version_links' => array('name' => 'fix_remove_wp_version_links', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
58 |
+
// SwpaSecurity::fix_emptyReadmeFileFromRoot
|
59 |
+
'fix_empty_root_readme_file' => array('name' => 'fix_empty_root_readme_file', 'type' => SWPA_PLUGIN_ALERT_TYPE_OVERWRITE ),
|
60 |
+
|
61 |
+
|
62 |
+
// SwpaWatch::userPasswordUpdate
|
63 |
+
'watch_admin_password_update' => array('name' => 'watch_admin_password_update', 'type' => SWPA_PLUGIN_ALERT_TYPE_STACK ),
|
64 |
+
);
|
res/inc/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/inc/swpa-functions.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Common function to add custom time intervals to wp cron.
|
5 |
+
* This function should not be called directly.
|
6 |
+
*
|
7 |
+
* Usage: add_filter( 'cron_schedules', 'wsdplugin_addCronIntervals' );
|
8 |
+
*
|
9 |
+
* @param $schedules
|
10 |
+
* @return mixed
|
11 |
+
*/
|
12 |
+
function swpaplugin_addCronIntervals( $schedules )
|
13 |
+
{
|
14 |
+
$schedules['8h'] = array( // The name to be used in code
|
15 |
+
'interval' => 28800, // Intervals: in seconds
|
16 |
+
'display' => __('Every 8 hours') // display name
|
17 |
+
);
|
18 |
+
return $schedules;
|
19 |
+
}
|
20 |
+
add_filter( 'cron_schedules', 'swpaplugin_addCronIntervals' );
|
21 |
+
|
22 |
+
if(SwpaUtil::canLoad() && SwpaUtil::isAdministrator())
|
23 |
+
{
|
24 |
+
//#!++
|
25 |
+
add_action('admin_notices','swpaPlugin_AdminNotice');
|
26 |
+
function swpaPlugin_AdminNotice()
|
27 |
+
{
|
28 |
+
$m = sprintf(
|
29 |
+
'We strongly recommend you to use our other plugin <a href="%s" title="%s" target="%s">%s</a> instead, as it will be constantly maintained and updated with new features.',
|
30 |
+
'http://wordpress.org/plugins/wp-security-scan/', 'Acunetix WP Security', '_blank', 'Acunetix WP Security'
|
31 |
+
);
|
32 |
+
echo '<div class="updated"><p><strong>'.SWPA_PLUGIN_NAME.':</strong> '.$m.'</p></div>';
|
33 |
+
}
|
34 |
+
//#--
|
35 |
+
|
36 |
+
//#!++
|
37 |
+
add_action('admin_notices', 'swpaPluginInstallErrorNotice');
|
38 |
+
function swpaPluginInstallErrorNotice() {
|
39 |
+
if ($notices = get_option('wsd_plugin_install_error')) {
|
40 |
+
if(! empty($notices)){
|
41 |
+
foreach ($notices as $notice) {
|
42 |
+
echo "<div class='updated'><p>$notice</p></div>";
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
47 |
+
//#--
|
48 |
+
}
|
res/js/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/js/wsd-util.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* This function will bind the click event for entry items in the dashboard
|
3 |
+
* that will toggle the entry description row
|
4 |
+
*/
|
5 |
+
function wsdplugin_bindEntryClick($)
|
6 |
+
{
|
7 |
+
$('.entry-event').each(function(){
|
8 |
+
var self = $(this);
|
9 |
+
self.click(function(){
|
10 |
+
var e = self.next('tr.entry-description');
|
11 |
+
e.fadeToggle('fast','linear');
|
12 |
+
});
|
13 |
+
});
|
14 |
+
}
|
15 |
+
/**
|
16 |
+
* Update the querystring param if found otherwise add it
|
17 |
+
* @param uri
|
18 |
+
* @param key
|
19 |
+
* @param value
|
20 |
+
* @returns string The updated uri
|
21 |
+
*/
|
22 |
+
function updateQueryStringParam(uri, key, value) {
|
23 |
+
var re = new RegExp("([?|&])" + key + "=.*?(&|$)", "i"),separator = uri.indexOf('?') !== -1 ? "&" : "?";
|
24 |
+
if (uri.match(re)) { return uri.replace(re, '$1' + key + "=" + value + '$2'); }else { return uri + separator + key + "=" + value; }
|
25 |
+
}
|
res/js/wsdplugin_glossary_tooltip.js
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* @ glossary tooltips
|
3 |
+
*/
|
4 |
+
|
5 |
+
var wsdplugin_glossary_tooltip=function(){
|
6 |
+
var id = 'tt';
|
7 |
+
var top = 3;
|
8 |
+
var left = 3;
|
9 |
+
var maxw = 400;
|
10 |
+
var speed = 10;
|
11 |
+
var timer = 20;
|
12 |
+
var endalpha = 95;
|
13 |
+
var alpha = 0;
|
14 |
+
var tt,t,c,b,h;
|
15 |
+
var ie = document.all ? true : false;
|
16 |
+
return{
|
17 |
+
show:function(self,w){
|
18 |
+
if(tt == null){
|
19 |
+
tt = document.createElement('div');
|
20 |
+
tt.setAttribute('id',id);
|
21 |
+
t = document.createElement('div');
|
22 |
+
t.setAttribute('id',id + 'top');
|
23 |
+
c = document.createElement('div');
|
24 |
+
c.setAttribute('id',id + 'cont');
|
25 |
+
b = document.createElement('div');
|
26 |
+
b.setAttribute('id',id + 'bot');
|
27 |
+
tt.appendChild(t);
|
28 |
+
tt.appendChild(c);
|
29 |
+
tt.appendChild(b);
|
30 |
+
document.body.appendChild(tt);
|
31 |
+
tt.style.opacity = 0;
|
32 |
+
tt.style.filter = 'alpha(opacity=0)';
|
33 |
+
document.onmousemove = this.pos;
|
34 |
+
}
|
35 |
+
tt.style.display = 'block';
|
36 |
+
c.innerHTML = self.getAttribute('data-bind-title');
|
37 |
+
tt.style.width = w ? w + 'px' : 'auto';
|
38 |
+
if(!w && ie){
|
39 |
+
t.style.display = 'none';
|
40 |
+
b.style.display = 'none';
|
41 |
+
tt.style.width = tt.offsetWidth;
|
42 |
+
t.style.display = 'block';
|
43 |
+
b.style.display = 'block';
|
44 |
+
}
|
45 |
+
if(tt.offsetWidth > maxw){tt.style.width = maxw + 'px'}
|
46 |
+
h = parseInt(tt.offsetHeight) + top;
|
47 |
+
clearInterval(tt.timer);
|
48 |
+
tt.timer = setInterval(function(){wsdplugin_glossary_tooltip.fade(1)},timer);
|
49 |
+
},
|
50 |
+
pos:function(e){
|
51 |
+
var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
|
52 |
+
var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
|
53 |
+
tt.style.top = (u - h) + 'px';
|
54 |
+
tt.style.left = (l + left) + 'px';
|
55 |
+
},
|
56 |
+
fade:function(d){
|
57 |
+
var a = alpha;
|
58 |
+
if((a != endalpha && d == 1) || (a != 0 && d == -1)){
|
59 |
+
var i = speed;
|
60 |
+
if(endalpha - a < speed && d == 1){
|
61 |
+
i = endalpha - a;
|
62 |
+
}else if(alpha < speed && d == -1){
|
63 |
+
i = a;
|
64 |
+
}
|
65 |
+
alpha = a + (i * d);
|
66 |
+
tt.style.opacity = alpha * .01;
|
67 |
+
tt.style.filter = 'alpha(opacity=' + alpha + ')';
|
68 |
+
}else{
|
69 |
+
clearInterval(tt.timer);
|
70 |
+
if(d == -1){tt.style.display = 'none'}
|
71 |
+
}
|
72 |
+
},
|
73 |
+
hide:function(){
|
74 |
+
clearInterval(tt.timer);
|
75 |
+
tt.timer = setInterval(function(){wsdplugin_glossary_tooltip.fade(-1)},timer);
|
76 |
+
}
|
77 |
+
};
|
78 |
+
}();
|
res/languages/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/pages/about.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<div class="wrap wsdplugin_content">
|
3 |
+
<h2><?php echo SWPA_PLUGIN_NAME.' - '.__('About');?></h2>
|
4 |
+
|
5 |
+
<div class="metabox-holder">
|
6 |
+
|
7 |
+
<div style="width:60%; float: left;" class="postbox">
|
8 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('About'). ' '.SWPA_PLUGIN_NAME .' plugin';?></span></h3>
|
9 |
+
<div class="inside acx-section-box">
|
10 |
+
<p>
|
11 |
+
<?php echo SWPA_PLUGIN_NAME.' plug-in beefs up the security of your WordPress installation by removing error information on login pages, adds index.php to plugin directories, hides the WordPress version and much more.'; ?>
|
12 |
+
</p>
|
13 |
+
<div class="acx-section-box">
|
14 |
+
<ul class="acx-common-list">
|
15 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Removes error-information on login-page.');?></span></li>
|
16 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Adds index.php to the wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads directories to prevent directory listings.');?></span></li>
|
17 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Removes the wp-version from everyone but administrators.');?></span></li>
|
18 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Removes Really Simple Discovery meta tag.');?></span></li>
|
19 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Removes Windows Live Writer meta tag.');?></span></li>
|
20 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Removes core update information for non-admins.');?></span></li>
|
21 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Removes plugin-update information for non-admins.');?></span></li>
|
22 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Removes theme-update information for non-admins (only WP 2.8 and higher).');?></span></li>
|
23 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Removes version on URLs from scripts and stylesheets.');?></span></li>
|
24 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Provides various information after scanning your WordPress blog.');?></span></li>
|
25 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Provides file permissions security checks.');?></span></li>
|
26 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Provides a Live Traffic tool to monitor your website activity in real time.');?></span></li>
|
27 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Provides a tool for changing the database prefix.');?></span></li>
|
28 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Provides a tool to easily backup your WordPress database.');?></span></li>
|
29 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Turns off database error reporting (if enabled).');?></span></li>
|
30 |
+
<li><span class="acx-icon-alert-success"><?php echo __('Turns off PHP error reporting.');?></span></li>
|
31 |
+
</ul>
|
32 |
+
</div>
|
33 |
+
</div>
|
34 |
+
</div>
|
35 |
+
|
36 |
+
<div style="width:38%; float: right;" class="postbox">
|
37 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('Get involved');?></span></h3>
|
38 |
+
<div class="inside acx-section-box">
|
39 |
+
<ul class="acx-common-list">
|
40 |
+
<li>
|
41 |
+
<span><a href="//www.acunetix.com/blog/" target="_blank"><?php echo __('Acunetix blog');?></a></span>
|
42 |
+
</li>
|
43 |
+
<li>
|
44 |
+
<span><a href="//twitter.com/acunetix" target="_blank"><?php echo __('Acunetix on Twitter');?></a></span>
|
45 |
+
</li>
|
46 |
+
<li>
|
47 |
+
<span><a href="//www.facebook.com/Acunetix" target="_blank"><?php echo __('Acunetix on Facebook');?></a></span>
|
48 |
+
</li>
|
49 |
+
<li>
|
50 |
+
<span><a href="//wordpress.org/support/plugin/secure-wordpress" target="_blank"><?php echo __('Support');?></a></span>
|
51 |
+
</li>
|
52 |
+
</ul>
|
53 |
+
</div>
|
54 |
+
</div>
|
55 |
+
</div>
|
56 |
+
|
57 |
+
</div>
|
res/pages/blog.php
ADDED
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php wp_enqueue_style('wsdplugin_css_blog', SwpaUtil::cssUrl('blog.css'), array(), '1.0'); ?>
|
3 |
+
|
4 |
+
<div class="wrap wsdplugin_content">
|
5 |
+
<div id="pageblog" class="wrap wsdplugin_content">
|
6 |
+
|
7 |
+
<div id="header">
|
8 |
+
<div class="wrapper">
|
9 |
+
<div id="logo"><a href="http://www.acunetix.com" target="_blank">Acunetix</a></div>
|
10 |
+
<div id="main-nav">
|
11 |
+
<a class="twitter" target="_blank" href="http://twitter.com/acunetix" title="<?php echo __('Follow us on Twitter');?>">Twitter</a>
|
12 |
+
<a class="facebook" target="_blank" href="http://www.facebook.com/Acunetix" title="<?php echo __('Follow us on Facebook');?>">Facebook</a>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
<div id="content">
|
17 |
+
<ul id="feed-list">
|
18 |
+
<?php
|
19 |
+
/**
|
20 |
+
* @internal
|
21 |
+
* @param int $maxItems
|
22 |
+
* @return string
|
23 |
+
*/
|
24 |
+
function swpaplugin_GetFeedData($maxItems = 10)
|
25 |
+
{
|
26 |
+
$rss = fetch_feed(SWPA_PLUGIN_BLOG_FEED);
|
27 |
+
$out = '';
|
28 |
+
if (is_wp_error( $rss ) ) { return '<li>'.__('An error has occurred while trying to load the rss feed!').'</li>'; }
|
29 |
+
else{
|
30 |
+
// Limit to $maxItems entries.
|
31 |
+
$maxitems = $rss->get_item_quantity($maxItems);
|
32 |
+
|
33 |
+
// Build an array of all the items,
|
34 |
+
$rss_items = $rss->get_items(0, $maxitems);
|
35 |
+
|
36 |
+
if ($maxitems == 0){ $out.= '<li>'.__('There are no entries for this feed!').'</li>'; }
|
37 |
+
else {
|
38 |
+
foreach ( $rss_items as $item ) :
|
39 |
+
$url = esc_url($item->get_permalink());
|
40 |
+
$out.= '<li>';
|
41 |
+
$out.= '<h4><a href="'.$url.'" target="_blank" title="'.__('Posted on ').$item->get_date('F j, Y | g:i a').'">';
|
42 |
+
$out.= esc_html( $item->get_title() );
|
43 |
+
$out.= '</a></h4>';
|
44 |
+
$out.= '<div>' . $item->get_description() . '</div>';
|
45 |
+
$out.= '</li>';
|
46 |
+
endforeach;
|
47 |
+
}
|
48 |
+
$out .= '<div style="border-top: solid 1px #ccc; margin-top: 4px; padding: 2px 0;">';
|
49 |
+
$out .= '<p style="margin: 5px 0 0 0; padding: 0 0; line-height: normal; overflow: hidden;">';
|
50 |
+
$out .= '<a href="http://feeds.acunetix.com/acunetixwebapplicationsecurityblog"
|
51 |
+
style="float: left; display: block; width: 50%; text-align: right; margin-left: 30px;
|
52 |
+
padding-right: 22px; background: url(\'rss.png\') no-repeat right center;"
|
53 |
+
target="_blank">'.__('Follow us on RSS').'</a>';
|
54 |
+
$out .= '</p>';
|
55 |
+
$out .= '</div>';
|
56 |
+
}
|
57 |
+
return $out;
|
58 |
+
}
|
59 |
+
/**
|
60 |
+
* @internal
|
61 |
+
* @param $optName
|
62 |
+
* @param $optData
|
63 |
+
*/
|
64 |
+
function swpaplugin_updateRssFeedOption($optName, $optData)
|
65 |
+
{
|
66 |
+
$obj = new stdClass();
|
67 |
+
$obj->expires = time() + (24*60*60);
|
68 |
+
$obj->data = $optData;
|
69 |
+
update_option($optName, $obj);
|
70 |
+
}
|
71 |
+
/**
|
72 |
+
* @public
|
73 |
+
* @param $optName
|
74 |
+
* @param $getMaxRssEntries
|
75 |
+
*/
|
76 |
+
function swpaplugin_handleDisplayRssData($optName, $getMaxRssEntries)
|
77 |
+
{
|
78 |
+
$data = swpaplugin_GetFeedData($getMaxRssEntries);
|
79 |
+
swpaplugin_updateRssFeedOption($optName, $data);
|
80 |
+
echo str_ireplace("url('rss.png')", "url('".SwpaUtil::imageUrl('rss.png')."')", $data);
|
81 |
+
}
|
82 |
+
|
83 |
+
$optName = 'WSD-FEED-DATA';
|
84 |
+
$getMaxRssEntries = 10;
|
85 |
+
|
86 |
+
//@ check cache
|
87 |
+
$optData = get_option($optName);
|
88 |
+
|
89 |
+
if(empty($optData)) { swpaplugin_handleDisplayRssData($optName, $getMaxRssEntries); }
|
90 |
+
else{
|
91 |
+
// check cache expiry date
|
92 |
+
if (is_object($optData)) {
|
93 |
+
$lastUpdateTime = @$optData->expires;
|
94 |
+
// invalid cache: UPDATE
|
95 |
+
if (empty($lastUpdateTime)) { swpaplugin_handleDisplayRssData($optName, $getMaxRssEntries); }
|
96 |
+
else {
|
97 |
+
$nextUpdateTime = $lastUpdateTime+(24*60*60);
|
98 |
+
if ($nextUpdateTime >= $lastUpdateTime){
|
99 |
+
$data = @$optData->data;
|
100 |
+
if (empty($data)) { swpaplugin_handleDisplayRssData($optName, $getMaxRssEntries); }
|
101 |
+
// still a valid cache: DISPLAY
|
102 |
+
else { echo str_ireplace("url('rss.png')", "url('".SwpaUtil::imageUrl('rss.png')."')", $data); }
|
103 |
+
}
|
104 |
+
else { swpaplugin_handleDisplayRssData($optName, $getMaxRssEntries); }
|
105 |
+
}
|
106 |
+
}
|
107 |
+
else { swpaplugin_handleDisplayRssData($optName, $getMaxRssEntries); }
|
108 |
+
}
|
109 |
+
?>
|
110 |
+
</ul>
|
111 |
+
</div>
|
112 |
+
</div>
|
113 |
+
</div>
|
res/pages/dashboard.php
ADDED
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php if(! SwpaUtil::isAdministrator()) { return; } ?>
|
3 |
+
<?php
|
4 |
+
if(!isset($_GET['filter']))
|
5 |
+
{
|
6 |
+
$alertsFilterBy = 'all';
|
7 |
+
$alertsSortBy = 's';
|
8 |
+
$alerts = SwpaPlugin::getAlerts();
|
9 |
+
}
|
10 |
+
else {
|
11 |
+
$alertsFilterBy = trim($_GET['filter']);
|
12 |
+
if($alertsFilterBy == 'all'){ $alerts = SwpaPlugin::getAlerts(); }
|
13 |
+
else {
|
14 |
+
$alertsFilterBy = intval($alertsFilterBy);
|
15 |
+
if(! in_array($alertsFilterBy, array(0,1,2,3))){
|
16 |
+
$alertsFilterBy = 'all';
|
17 |
+
$alerts = SwpaPlugin::getAlerts();
|
18 |
+
}
|
19 |
+
else { $alerts = SwpaPlugin::getAlertsBy($alertsFilterBy); }
|
20 |
+
}
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<div class="wrap wsdplugin_content">
|
24 |
+
<h2><?php echo SWPA_PLUGIN_NAME.' - '. __('Dashboard');?></h2>
|
25 |
+
|
26 |
+
<p class="clear"></p>
|
27 |
+
<div style="clear: both; display: block;">
|
28 |
+
<!-- Current Alerts -->
|
29 |
+
<div class="wsdplugin_page_alert_types_current">
|
30 |
+
|
31 |
+
<!-- Action Bar -->
|
32 |
+
<div class="wsdplugin_page_alerts_action_bar" style="float: left;">
|
33 |
+
<div class="tablenav">
|
34 |
+
<div class="alignleft actions wsdplugin_alerts_filter_severity">
|
35 |
+
<select id="FilterAlertTypeSelect">
|
36 |
+
<option value="all"><?php echo __('All Severity Levels');?></option>
|
37 |
+
<option value="3"><?php echo __('Critical');?></option>
|
38 |
+
<option value="2"><?php echo __('Medium');?></option>
|
39 |
+
<option value="1"><?php echo __('Low');?></option>
|
40 |
+
<option value="0"><?php echo __('Informational');?></option>
|
41 |
+
</select>
|
42 |
+
<input type="button" value="Filter" class="button-secondary action" id="FilterAlertTypeButton">
|
43 |
+
</div>
|
44 |
+
</div>
|
45 |
+
</div>
|
46 |
+
|
47 |
+
<!-- Title -->
|
48 |
+
<div class="wsdplugin_alert_section_title wsdplugin_alert_section_title_category"><?php echo __('Current Alerts');?></div>
|
49 |
+
|
50 |
+
<!-- Body -->
|
51 |
+
<div class="wsdplugin_alert_section_body">
|
52 |
+
<table class="widefat" cellspacing="0" cellpadding="0">
|
53 |
+
<thead>
|
54 |
+
<th style="width:60px"><?php echo __('Severity');?></th>
|
55 |
+
<th style="width: 150px;"><?php echo __('Date');?></th>
|
56 |
+
<th><?php echo __('Title');?></th>
|
57 |
+
</thead>
|
58 |
+
<tbody>
|
59 |
+
<?php
|
60 |
+
if(! empty($alerts)){
|
61 |
+
foreach($alerts as $entry){
|
62 |
+
$alertId = $entry->alertId;
|
63 |
+
$alertType = $entry->alertType;
|
64 |
+
$severity = $entry->alertSeverity;
|
65 |
+
$afsDate = $entry->alertFirstSeen;
|
66 |
+
if($severity == SWPA_PLUGIN_ALERT_INFO){ $severity = 'info'; }
|
67 |
+
elseif($severity == SWPA_PLUGIN_ALERT_LOW){ $severity = 'low'; }
|
68 |
+
elseif($severity == SWPA_PLUGIN_ALERT_MEDIUM){ $severity = 'medium'; }
|
69 |
+
elseif($severity == SWPA_PLUGIN_ALERT_CRITICAL){ $severity = 'critical'; }
|
70 |
+
else { $severity = 'info'; }
|
71 |
+
echo '<tr class="entry-event alt" title="'.__('Click to expand/collapse').'">';
|
72 |
+
echo '<td class="wsdplugin_alert_indicator wsdplugin_alert_indicator_'.$severity.'" title="'.ucfirst($severity).'"></td>';
|
73 |
+
echo '<td>'.$entry->alertDate.'</td>';
|
74 |
+
echo '<td>'.$entry->alertTitle.'</td>';
|
75 |
+
echo '</tr>';
|
76 |
+
echo '<tr class="entry-description">';
|
77 |
+
echo '<td colspan="3">';
|
78 |
+
if($alertType == SWPA_PLUGIN_ALERT_TYPE_STACK)
|
79 |
+
{
|
80 |
+
// get child alerts
|
81 |
+
$childAlerts = SwpaPlugin::getChildAlerts($alertId, $alertType);
|
82 |
+
if(! empty($childAlerts)){
|
83 |
+
echo '<h3>'.__('Previous alerts').'</h3>';
|
84 |
+
echo '<table cellspacing="0" cellpadding="0" style="margin: 7px 11px;"><tbody>';
|
85 |
+
foreach($childAlerts as $childAlert){
|
86 |
+
$afsDate = $childAlert->alertFirstSeen;
|
87 |
+
echo '<tr class="alt">';
|
88 |
+
echo '<td class="wsdplugin_alert_indicator wsdplugin_alert_indicator_'.$severity.'" title="'.ucfirst($severity).'"></td>';
|
89 |
+
echo '<td>'.$childAlert->alertDate.'</td>';
|
90 |
+
echo '<td>'.$childAlert->alertTitle.'</td>';
|
91 |
+
echo '</tr>';
|
92 |
+
}
|
93 |
+
echo '</tbody></table>';
|
94 |
+
}
|
95 |
+
echo '<p>Alert first seen on: <strong>'.$afsDate.'</strong></p>';
|
96 |
+
echo '<h3>'.__('Description').'</h3>';
|
97 |
+
echo '<div><p>'.$entry->alertDescription.'</p></div>';
|
98 |
+
if(! empty($entry->alertSolution)){
|
99 |
+
echo '<h3>'.__('Solution').'</h3>';
|
100 |
+
echo '<div><p>'.$entry->alertSolution.'</p></div>';
|
101 |
+
}
|
102 |
+
|
103 |
+
}
|
104 |
+
else {
|
105 |
+
echo '<p>Alert first seen on: <strong>'.$afsDate.'</strong></p>';
|
106 |
+
echo '<h3>'.__('Description').'</h3>';
|
107 |
+
echo '<div><p>'.$entry->alertDescription.'</p></div>';
|
108 |
+
if(! empty($entry->alertSolution)){
|
109 |
+
echo '<h3>'.__('Solution').'</h3>';
|
110 |
+
echo '<div><p>'.$entry->alertSolution.'</p></div>';
|
111 |
+
}
|
112 |
+
}
|
113 |
+
echo '</td>';
|
114 |
+
echo '</tr>';
|
115 |
+
}
|
116 |
+
}
|
117 |
+
else { echo '<tr class="entry-event alt"><td colspan="3"><p style="font-weight:800;padding-top:6px;">'.__('No alerts found.').'</p></td></tr>'; }
|
118 |
+
?>
|
119 |
+
</tbody>
|
120 |
+
</table>
|
121 |
+
</div>
|
122 |
+
</div>
|
123 |
+
<!-- Current Alerts -->
|
124 |
+
</div>
|
125 |
+
<script type="text/javascript">
|
126 |
+
jQuery(document).ready(function($){
|
127 |
+
wsdplugin_bindEntryClick($);
|
128 |
+
$("#FilterAlertTypeSelect").val("<?php echo $alertsFilterBy;?>").attr("selected", "selected");
|
129 |
+
$('#FilterAlertTypeButton').click(function(){window.location = updateQueryStringParam(document.URL,'filter',$('#FilterAlertTypeSelect').val());});
|
130 |
+
});
|
131 |
+
</script>
|
132 |
+
|
133 |
+
<?php echo SwpaUtil::loadTemplate('box-banners');?>
|
134 |
+
</div>
|
res/pages/database.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php if(! SwpaUtil::isAdministrator()) { return; } ?>
|
3 |
+
<div class="wrap wsdplugin_content">
|
4 |
+
<h2><?php echo SWPA_PLUGIN_NAME.' - '. __('Database Tools');?></h2>
|
5 |
+
|
6 |
+
<p class="clear"></p>
|
7 |
+
<div style="clear: both; display: block;">
|
8 |
+
<?php /*[ DATABASE BACKUP ]*/ ?>
|
9 |
+
<div class="metabox-holder" style="overflow: hidden;">
|
10 |
+
|
11 |
+
<?php
|
12 |
+
/*
|
13 |
+
* DATABASE BACKUP TOOL
|
14 |
+
* ================================================================
|
15 |
+
*/
|
16 |
+
?>
|
17 |
+
<div id="bckdb" style="float:left; width:49%;" class="inner-sidebar1 postbox">
|
18 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('Backup Database');?></span></h3>
|
19 |
+
<div class="inside">
|
20 |
+
<?php
|
21 |
+
echo SwpaUtil::loadTemplate('box-database-backup');
|
22 |
+
?>
|
23 |
+
</div>
|
24 |
+
</div>
|
25 |
+
|
26 |
+
<?php
|
27 |
+
/*
|
28 |
+
* DATABASE BACKUPS
|
29 |
+
* ================================================================
|
30 |
+
*/
|
31 |
+
?>
|
32 |
+
<div style="float:right;width:49%;" class="inner-sidebar1 postbox">
|
33 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('Database Backup Files');?></span></h3>
|
34 |
+
<div class="inside">
|
35 |
+
<?php
|
36 |
+
echo SwpaUtil::loadTemplate('box-available-backups');
|
37 |
+
?>
|
38 |
+
</div>
|
39 |
+
</div>
|
40 |
+
</div>
|
41 |
+
|
42 |
+
<p class="clear"></p>
|
43 |
+
<div class="metabox-holder" style="width:99.8%; padding-top: 0;">
|
44 |
+
<?php
|
45 |
+
/*
|
46 |
+
* CHANGE DATABASE PREFIX TOOL
|
47 |
+
* ================================================================
|
48 |
+
*/
|
49 |
+
?>
|
50 |
+
<div id="cdtp" class="postbox">
|
51 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('Change Database Prefix');?></span></h3>
|
52 |
+
<div class="inside">
|
53 |
+
<?php
|
54 |
+
echo SwpaUtil::loadTemplate('box-database-change-prefix');
|
55 |
+
?>
|
56 |
+
</div>
|
57 |
+
</div>
|
58 |
+
</div>
|
59 |
+
|
60 |
+
</div>
|
61 |
+
</div>
|
res/pages/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
res/pages/live_traffic.php
ADDED
@@ -0,0 +1,271 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php if(! SwpaUtil::isAdministrator()) { return; } ?>
|
3 |
+
<?php
|
4 |
+
// flag for getting data
|
5 |
+
$forceLoad = 1;
|
6 |
+
$refreshRates = array(0, 5, 10, 15, 20, 25, 30);
|
7 |
+
$settings = SwpaPlugin::getSettings();
|
8 |
+
?>
|
9 |
+
<?php
|
10 |
+
$rm = strtoupper($_SERVER['REQUEST_METHOD']);
|
11 |
+
if('POST' == $rm)
|
12 |
+
{
|
13 |
+
// check nonce
|
14 |
+
if(isset($_POST['wsdplugin_update_settings_field'])){
|
15 |
+
if(!wp_verify_nonce($_POST['wsdplugin_update_settings_field'],'wsdplugin_update_settings')){
|
16 |
+
exit('Invalid request.');
|
17 |
+
}
|
18 |
+
}
|
19 |
+
else {exit('Invalid request.');}
|
20 |
+
|
21 |
+
function wsdPluginValidateSettingsForm($settings, $refreshRates)
|
22 |
+
{
|
23 |
+
if(isset($_POST['max_number_live_traffic']) && isset($_POST['refreshRateOption']))
|
24 |
+
{
|
25 |
+
// validate input $_POST['max_number_live_traffic']
|
26 |
+
$keepNumEntriesLiveTraffic = intval($_POST['max_number_live_traffic']);
|
27 |
+
if($keepNumEntriesLiveTraffic == 0){
|
28 |
+
$keepNumEntriesLiveTraffic = 0;
|
29 |
+
}
|
30 |
+
elseif(! preg_match("/[0-9]{1,5}/", $keepNumEntriesLiveTraffic)){
|
31 |
+
$keepNumEntriesLiveTraffic = 500;
|
32 |
+
}
|
33 |
+
|
34 |
+
// validate input $_POST['refreshRateOption']
|
35 |
+
$liveTrafficRefreshRateAjax = intval($_POST['refreshRateOption']);
|
36 |
+
if(! in_array($liveTrafficRefreshRateAjax, $refreshRates)){
|
37 |
+
$liveTrafficRefreshRateAjax = 10;
|
38 |
+
}
|
39 |
+
elseif($_POST['refreshRateOption'] == 0){
|
40 |
+
$liveTrafficRefreshRateAjax = 0;
|
41 |
+
}
|
42 |
+
elseif(! preg_match("/[0-9]{1,2}/", $liveTrafficRefreshRateAjax)){
|
43 |
+
$liveTrafficRefreshRateAjax = 10;
|
44 |
+
}
|
45 |
+
|
46 |
+
$settings['keepNumEntriesLiveTraffic'] = $keepNumEntriesLiveTraffic;
|
47 |
+
$settings['liveTrafficRefreshRateAjax'] = $liveTrafficRefreshRateAjax;
|
48 |
+
|
49 |
+
// update settings
|
50 |
+
update_option(SWPA_PLUGIN_SETTINGS_OPTION_NAME, $settings);
|
51 |
+
|
52 |
+
return $settings;
|
53 |
+
}
|
54 |
+
else { exit('Invalid request.'); }
|
55 |
+
}
|
56 |
+
|
57 |
+
|
58 |
+
// check form
|
59 |
+
if(isset($_POST['updateSettingsButton']))
|
60 |
+
{
|
61 |
+
if(isset($_POST['max_number_live_traffic']) && isset($_POST['refreshRateOption']))
|
62 |
+
{
|
63 |
+
$settings = wsdPluginValidateSettingsForm($settings, $refreshRates);
|
64 |
+
}
|
65 |
+
else { exit('Invalid request.'); }
|
66 |
+
}
|
67 |
+
elseif(isset($_POST['deleteEntriesButton'])){
|
68 |
+
global $wpdb;
|
69 |
+
$query = "TRUNCATE ".SwpaPlugin::getTableName(SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME);
|
70 |
+
$wpdb->query($query);
|
71 |
+
$settings = wsdPluginValidateSettingsForm($settings, $refreshRates);
|
72 |
+
}
|
73 |
+
else { exit('Invalid request.'); }
|
74 |
+
}
|
75 |
+
|
76 |
+
$keepNumEntriesLiveTraffic = (isset($settings['keepNumEntriesLiveTraffic']) ? $settings['keepNumEntriesLiveTraffic'] : 500);
|
77 |
+
$liveTrafficRefreshRateAjax = (isset($settings['liveTrafficRefreshRateAjax']) ? $settings['liveTrafficRefreshRateAjax'] : 10);
|
78 |
+
?>
|
79 |
+
<style type="text/css">
|
80 |
+
.wsd-clear { float: none; clear: both; height: 0; width: 100%; margin: 0 0; padding: 0 0;}
|
81 |
+
.wsdTrafficScan { }
|
82 |
+
.wsd-scan-entry { border-bottom: solid 1px #000; }
|
83 |
+
.wsd-scan-entry p { margin: 0 0; padding: 0 0; font-size: 100%; }
|
84 |
+
.wsd-scan-entry p .w-entry { color: #21759B; }
|
85 |
+
.wsd-scan-entry p .w-ip { color: #d00000; }
|
86 |
+
.wsd-scan-entry p .w-ua { color: #808080; }
|
87 |
+
.wsd-scan-entry p .w-date { color: #006600; }
|
88 |
+
#loaderWrapper {
|
89 |
+
float: right;
|
90 |
+
margin: 0 5px 0 0;
|
91 |
+
padding: 0 0;
|
92 |
+
overflow: hidden; min-height: 1px;
|
93 |
+
height: 20px;
|
94 |
+
}
|
95 |
+
#loaderWrapper span img { float: left;display:block; margin-top:4px; }
|
96 |
+
#loaderWrapper span span { float: left;display:block;padding-top: 0;margin-left:10px;color:#000000; }
|
97 |
+
.wsdPluginFieldsetSettingsExpanded { background: #F9F9F9; border: solid 1px #DFDFDF; padding: 0 0; }
|
98 |
+
.wsdPluginFieldsetSettingsCollapsed { background: transparent; border: none; border-top: solid 1px #DFDFDF; padding: 0 0; }
|
99 |
+
#settingsLegend {
|
100 |
+
background: linear-gradient(to top, #ECECEC, #F9F9F9) repeat scroll 0 0 #F1F1F1;
|
101 |
+
border: solid 1px #DFDFDF; padding: 2px 5px; margin-left: 5px; cursor: pointer;
|
102 |
+
}
|
103 |
+
#settingsContent { padding: 0 0; margin: 2px 0 5px 10px; line-height: normal; }
|
104 |
+
#max_number_live_traffic { margin-top: -5px; padding-top: 0; padding-bottom: 0; width: 50px; }
|
105 |
+
.btn {
|
106 |
+
-moz-box-sizing: border-box;
|
107 |
+
border-radius: 3px 3px 3px 3px;
|
108 |
+
border-style: solid;
|
109 |
+
border-width: 1px;
|
110 |
+
cursor: pointer;
|
111 |
+
display: inline-block;
|
112 |
+
font-size: 12px;
|
113 |
+
height: 24px;
|
114 |
+
line-height: 23px;
|
115 |
+
margin: 0;
|
116 |
+
padding: 0 10px 1px;
|
117 |
+
text-decoration: none;
|
118 |
+
white-space: nowrap;
|
119 |
+
}
|
120 |
+
.btn-danger {
|
121 |
+
color: #ffffff;
|
122 |
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
123 |
+
background-color: #da4f49;
|
124 |
+
background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
|
125 |
+
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
|
126 |
+
background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
|
127 |
+
background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
|
128 |
+
background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
|
129 |
+
background-repeat: repeat-x;
|
130 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
|
131 |
+
border-color: #bd362f #bd362f #802420;
|
132 |
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
133 |
+
*background-color: #bd362f;
|
134 |
+
/* Darken IE7 buttons by default so they stand out more given they won't have borders */
|
135 |
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
136 |
+
}
|
137 |
+
.btn-inverse {
|
138 |
+
color: #ffffff;
|
139 |
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
140 |
+
background-color: #363636;
|
141 |
+
background-image: -moz-linear-gradient(top, #444444, #222222);
|
142 |
+
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
|
143 |
+
background-image: -webkit-linear-gradient(top, #444444, #222222);
|
144 |
+
background-image: -o-linear-gradient(top, #444444, #222222);
|
145 |
+
background-image: linear-gradient(to bottom, #444444, #222222);
|
146 |
+
background-repeat: repeat-x;
|
147 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
|
148 |
+
border-color: #222222 #222222 #000000;
|
149 |
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
150 |
+
*background-color: #222222;
|
151 |
+
/* Darken IE7 buttons by default so they stand out more given they won't have borders */
|
152 |
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
153 |
+
}
|
154 |
+
</style>
|
155 |
+
<div class="wrap wsdplugin_content">
|
156 |
+
<h2><?php echo SWPA_PLUGIN_NAME.' - '. __('Live Traffic');?></h2>
|
157 |
+
|
158 |
+
<p class="clear"></p>
|
159 |
+
|
160 |
+
<div style="padding: 0 0;">
|
161 |
+
<form method="post">
|
162 |
+
<?php wp_nonce_field('wsdplugin_update_settings','wsdplugin_update_settings_field'); ?>
|
163 |
+
<fieldset class="wsdPluginFieldsetSettingsExpanded">
|
164 |
+
<legend id="settingsLegend">Settings</legend>
|
165 |
+
<p id="settingsContent">
|
166 |
+
<label for="max_number_live_traffic">Maximum number of entries to store for Live Traffic:</label>
|
167 |
+
<input type="text" name="max_number_live_traffic" id="max_number_live_traffic" value="<?php echo $keepNumEntriesLiveTraffic;?>" maxlength="5"/>
|
168 |
+
|
169 |
+
<label for="refreshRateOption" style="margin-left: 20px;">Refresh rate</label>
|
170 |
+
<select name="refreshRateOption" id="refreshRateOption">
|
171 |
+
<?php
|
172 |
+
foreach($refreshRates as $rate){
|
173 |
+
$selected = ($rate == $liveTrafficRefreshRateAjax ? 'selected="selected"' : '');
|
174 |
+
if($rate == 0){
|
175 |
+
echo '<option value="'.$rate.'" '.$selected.'>Never</option>';
|
176 |
+
}
|
177 |
+
else { echo '<option value="'.$rate.'" '.$selected.'>'.$rate.' seconds</option>'; }
|
178 |
+
}
|
179 |
+
?>
|
180 |
+
</select>
|
181 |
+
<input type="submit" value="Update settings" class="btn button-primary" name="updateSettingsButton" style="margin-left: 20px;"/>
|
182 |
+
<?php if($liveTrafficRefreshRateAjax == 0) :?>
|
183 |
+
<input type="button" value="Refresh" class="btn btn-inverse" style="margin-left: 20px;" onclick="javascript: window.location.href=document.URL;"/>
|
184 |
+
<?php endif;?>
|
185 |
+
<input type="submit" value="Delete all" class="btn btn-danger" name="deleteEntriesButton" style="margin-left: 20px;"/>
|
186 |
+
</p>
|
187 |
+
</fieldset>
|
188 |
+
</form>
|
189 |
+
</div>
|
190 |
+
|
191 |
+
|
192 |
+
<p class="clear"></p>
|
193 |
+
<table id="wsdTrafficScanTable" cellspacing="0"
|
194 |
+
class="wp-list-table widefat wsdTrafficScan"
|
195 |
+
data-nonce="<?php echo wp_create_nonce("wsdTrafficScan_nonce");?>"
|
196 |
+
data-lastid="<?php echo SwpaLiveTraffic::getLastID();?>">
|
197 |
+
<thead style="height: 20px;">
|
198 |
+
<tr>
|
199 |
+
<th class="manage-column column-cb" scope="col">
|
200 |
+
<span style="display: block; float: left; font-weight: 800;">Live activity</span>
|
201 |
+
<p id="loaderWrapper"></p>
|
202 |
+
</th>
|
203 |
+
</tr>
|
204 |
+
</thead>
|
205 |
+
<tbody id="the-list"></tbody>
|
206 |
+
</table>
|
207 |
+
</div>
|
208 |
+
<script type="text/javascript">
|
209 |
+
<?php if($forceLoad) echo 'var wsdAjaxForceLoad = 1;'; else echo 'var wsdAjaxForceLoad = 0;'?>
|
210 |
+
(function($){
|
211 |
+
$(document).ready( function()
|
212 |
+
{
|
213 |
+
function _createLoader($){
|
214 |
+
var imgPath = "<?php echo SwpaUtil::imageUrl('ajax-loader.gif') ?>";
|
215 |
+
var text = "<?php echo __('Loading data...');?>";
|
216 |
+
return $('<span id="ajaxLoaderRemove"><img src="'+imgPath+'" title="'+text+'" alt="'+text+'"/><span>'+text+'</span></span>');
|
217 |
+
}
|
218 |
+
function _showLoader($parentElement, $loader){ $parentElement.append($loader); }
|
219 |
+
function _hideLoader(stringId) { $('#'+stringId).remove(); }
|
220 |
+
|
221 |
+
var loader = _createLoader($);
|
222 |
+
|
223 |
+
var $table = $("#wsdTrafficScanTable"),
|
224 |
+
nonce = $table.attr("data-nonce"),
|
225 |
+
$tbody = $('#the-list', $table)
|
226 |
+
,lastID = $table.attr("data-lastid")
|
227 |
+
,loaderWrapper = $('#loaderWrapper');
|
228 |
+
|
229 |
+
function wsdpluginLoadData()
|
230 |
+
{
|
231 |
+
_showLoader(loaderWrapper, loader);
|
232 |
+
$.ajax({
|
233 |
+
type : "post",
|
234 |
+
dataType : "json",
|
235 |
+
cache: false,
|
236 |
+
url : "<?php echo admin_url( 'admin-ajax.php' );?>",
|
237 |
+
data : {'action': "ajaxGetTrafficData", 'nonce': nonce, 'lastID' : lastID, 'forceLoad': wsdAjaxForceLoad, 'maxEntries' : <?php echo $keepNumEntriesLiveTraffic;?>},
|
238 |
+
success: function(response) {
|
239 |
+
_hideLoader('ajaxLoaderRemove');
|
240 |
+
if(response.type == "success") {
|
241 |
+
if(response.data.length > 20){ $tbody.html(response.data); }
|
242 |
+
}
|
243 |
+
else { alert("An error occurred while trying to load data. Please try again in a few seconds."); }
|
244 |
+
}
|
245 |
+
});
|
246 |
+
wsdAjaxForceLoad = 0;
|
247 |
+
}
|
248 |
+
|
249 |
+
wsdpluginLoadData();
|
250 |
+
<?php //if refresh rate is == 0 -> disable
|
251 |
+
if($liveTrafficRefreshRateAjax > 0) :
|
252 |
+
?>
|
253 |
+
window.setInterval(function(){wsdpluginLoadData(); }, <?php echo $liveTrafficRefreshRateAjax * 1000 ?>);
|
254 |
+
<?php endif; ?>
|
255 |
+
|
256 |
+
// settings
|
257 |
+
var settingsLegend = $('#settingsLegend');
|
258 |
+
var settingsContent = $('#settingsContent');
|
259 |
+
settingsLegend.toggle(
|
260 |
+
function(){
|
261 |
+
settingsContent.hide();
|
262 |
+
settingsLegend.parent().removeClass('wsdPluginFieldsetSettingsExpanded').addClass('wsdPluginFieldsetSettingsCollapsed');
|
263 |
+
},
|
264 |
+
function(){
|
265 |
+
settingsLegend.parent().removeClass('wsdPluginFieldsetSettingsCollapsed').addClass('wsdPluginFieldsetSettingsExpanded');
|
266 |
+
settingsContent.show();
|
267 |
+
}
|
268 |
+
);
|
269 |
+
});
|
270 |
+
})(jQuery);
|
271 |
+
</script>
|
res/pages/scanner.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php if(! SwpaUtil::isAdministrator()) { return; } ?>
|
3 |
+
<div class="wrap wsdplugin_content">
|
4 |
+
<h2><?php echo SWPA_PLUGIN_NAME.' - '. __('WordPress Scanner');?></h2>
|
5 |
+
|
6 |
+
<p class="clear"></p>
|
7 |
+
<p style="margin-left: 15px;">
|
8 |
+
<?php echo __("This page displays various information after scanning your WordPress website"); ?>:
|
9 |
+
</p>
|
10 |
+
|
11 |
+
<div class="metabox-holder">
|
12 |
+
|
13 |
+
<div style="width:49.8%; float: left;" class="postbox">
|
14 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('Server Report');?></span></h3>
|
15 |
+
<div class="inside acx-section-box">
|
16 |
+
<?php
|
17 |
+
echo SwpaUtil::loadTemplate('box-server-results');
|
18 |
+
?>
|
19 |
+
</div>
|
20 |
+
</div>
|
21 |
+
<div style="width:49.8%; float: right;" class="postbox">
|
22 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('WordPress Scan Report');?></span></h3>
|
23 |
+
<div class="inside acx-section-box">
|
24 |
+
<?php
|
25 |
+
echo SwpaUtil::loadTemplate('box-scan-results-wp');
|
26 |
+
?>
|
27 |
+
</div>
|
28 |
+
</div>
|
29 |
+
|
30 |
+
<div style="width:99.8%; clear: both;" class="inner-sidebar1 postbox">
|
31 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('File Scan Report');?></span></h3>
|
32 |
+
<div class="inside">
|
33 |
+
<?php
|
34 |
+
echo SwpaUtil::loadTemplate('box-scan-results-file');
|
35 |
+
?>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
</div>
|
res/pages/settings.php
ADDED
@@ -0,0 +1,168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php if(! SwpaUtil::isAdministrator()) { return; } ?>
|
3 |
+
<?php
|
4 |
+
$rm = strtoupper($_SERVER['REQUEST_METHOD']);
|
5 |
+
//#! get settings
|
6 |
+
$settings = SwpaPlugin::getSettings();
|
7 |
+
|
8 |
+
$rssWidgetData = get_option('WSD-RSS-WGT-DISPLAY');
|
9 |
+
$rssWidgetChecked = false;
|
10 |
+
if(!empty($rssWidgetData) && ($rssWidgetData == 'yes')){
|
11 |
+
$rssWidgetChecked = true;
|
12 |
+
}
|
13 |
+
|
14 |
+
if('POST' == $rm)
|
15 |
+
{
|
16 |
+
// check nonce
|
17 |
+
if(isset($_POST['wsdplugin_update_settings_field'])){
|
18 |
+
if(!wp_verify_nonce($_POST['wsdplugin_update_settings_field'],'wsdplugin_update_settings')){
|
19 |
+
wp_die(__('Invalid request.'));
|
20 |
+
}
|
21 |
+
}
|
22 |
+
else {wp_die(__('Invalid request.'));}
|
23 |
+
|
24 |
+
//#! UPDATE SETTINGS
|
25 |
+
if(isset($_POST['updateSettingsButton']))
|
26 |
+
{
|
27 |
+
// validate and save settings
|
28 |
+
$postData = $_POST['chk_options'];
|
29 |
+
parse_str($postData, $checkboxes);
|
30 |
+
|
31 |
+
if(empty($checkboxes)){
|
32 |
+
foreach($settings as &$entry){
|
33 |
+
$entry['value'] = 0;
|
34 |
+
}
|
35 |
+
}
|
36 |
+
else {
|
37 |
+
foreach($checkboxes as $method => $value){
|
38 |
+
$settings[$method]['value'] = $value;
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
// rss widget
|
43 |
+
if(empty($_POST['chk_rss_wgt_display'])){
|
44 |
+
// hide
|
45 |
+
$rssWidgetChecked = false;
|
46 |
+
update_option('WSD-RSS-WGT-DISPLAY', 'no');
|
47 |
+
}
|
48 |
+
else {
|
49 |
+
// show
|
50 |
+
$rssWidgetChecked = true;
|
51 |
+
update_option('WSD-RSS-WGT-DISPLAY', 'yes');
|
52 |
+
}
|
53 |
+
|
54 |
+
update_option(SWPA_PLUGIN_SETTINGS_OPTION_NAME, $settings);
|
55 |
+
$settings = get_option(SWPA_PLUGIN_SETTINGS_OPTION_NAME);
|
56 |
+
}
|
57 |
+
//#! DELETE OPTIONS
|
58 |
+
elseif(isset($_POST['deleteRssDataButton']))
|
59 |
+
{
|
60 |
+
delete_option('wsd_feed_data');
|
61 |
+
}
|
62 |
+
}
|
63 |
+
?>
|
64 |
+
<div class="wrap wsdplugin_content">
|
65 |
+
<h2><?php echo SWPA_PLUGIN_NAME.' - '. __('Settings');?></h2>
|
66 |
+
|
67 |
+
<p class="clear"></p>
|
68 |
+
<div style="clear: both; display: block;">
|
69 |
+
<div class="metabox-holder">
|
70 |
+
<div class="inner-sidebar1 postbox">
|
71 |
+
<h3 class="hndle" style="cursor: default;"><span><?php echo __('Settings');?></span></h3>
|
72 |
+
<div class="inside acx-section-box" style="padding-left:0;">
|
73 |
+
<form method="post">
|
74 |
+
<?php wp_nonce_field('wsdplugin_update_settings','wsdplugin_update_settings_field'); ?>
|
75 |
+
<?php
|
76 |
+
$i = 0;
|
77 |
+
foreach($settings as $k => $entry){
|
78 |
+
if(is_array($entry))
|
79 |
+
{
|
80 |
+
$chkID = "chk-$i";
|
81 |
+
echo '<div class="acx-section-box wsdplugin-overflow">';
|
82 |
+
echo '<label for="'.$chkID.'" class="wsdplugin-overflow">';
|
83 |
+
echo '<span class="chk-settings wsdplugin_checkbox'.($entry['value'] ? ' wsdplugin_checkbox-active' : '').'" id="'.$chkID.'" data-bind="'.$entry['name'].'"><a> </a></span>';
|
84 |
+
echo '<span>'.$entry['desc'].'</span>';
|
85 |
+
echo '</label>';
|
86 |
+
echo '</div>';
|
87 |
+
$i++;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
?>
|
91 |
+
<?php
|
92 |
+
// the rss dashboard widget
|
93 |
+
// all the below settings must have present the chk-extra class
|
94 |
+
echo '<div class="acx-section-box wsdplugin-overflow">';
|
95 |
+
echo '<label for="wsd_feed_data" class="wsdplugin-overflow">';
|
96 |
+
echo '<span class="chk-extra wsdplugin_checkbox'.($rssWidgetChecked ? ' wsdplugin_checkbox-active' : '').'" id="wsd_feed_data"><a> </a></span>';
|
97 |
+
echo '<span>'.__('Show the RSS widget in the dashboard').'</span>';
|
98 |
+
echo '</label>';
|
99 |
+
echo '</div>';
|
100 |
+
?>
|
101 |
+
|
102 |
+
<input type="hidden" name="chk_options" id="chk_options" />
|
103 |
+
<input type="hidden" name="chk_rss_wgt_display" id="chk_rss_wgt_display" />
|
104 |
+
<div class="acx-section-box wsdplugin-overflow">
|
105 |
+
<input type="button" id="_resetButton" class="button button-secondary" style="width: 70px;"/>
|
106 |
+
<input type="submit" value="Update settings" class="button button-primary" name="updateSettingsButton"/>
|
107 |
+
<input type="submit" value="Delete rss data" class="button button-primary" name="deleteRssDataButton"/>
|
108 |
+
</div>
|
109 |
+
</form>
|
110 |
+
</div>
|
111 |
+
</div>
|
112 |
+
</div>
|
113 |
+
|
114 |
+
</div>
|
115 |
+
</div>
|
116 |
+
<script type="text/javascript">
|
117 |
+
jQuery(document).ready(function($){
|
118 |
+
var resetButton = $('#_resetButton');
|
119 |
+
var oneChecked = false;
|
120 |
+
var checkboxes = $('.wsdplugin_checkbox');
|
121 |
+
var entriesLiveTrafficInput = $('#max_number_live_traffic');
|
122 |
+
|
123 |
+
// update state + bind click listeners
|
124 |
+
$.each(checkboxes, function(i,v){
|
125 |
+
var self = $(v);
|
126 |
+
if(self.hasClass('wsdplugin_checkbox-active')){
|
127 |
+
oneChecked = true;
|
128 |
+
}
|
129 |
+
self.parent('label').on('click', function(){
|
130 |
+
if(self.hasClass('wsdplugin_checkbox-active')){
|
131 |
+
self.removeClass('wsdplugin_checkbox-active');
|
132 |
+
}
|
133 |
+
else { self.addClass('wsdplugin_checkbox-active'); }
|
134 |
+
});
|
135 |
+
});
|
136 |
+
|
137 |
+
// update reset button
|
138 |
+
if(oneChecked){ resetButton.val('Clear all'); }
|
139 |
+
else { resetButton.val('Select all'); }
|
140 |
+
|
141 |
+
resetButton.click(function(){
|
142 |
+
$(this).text(function(i, text){
|
143 |
+
if($(this).val() == 'Clear all'){
|
144 |
+
$.each(checkboxes,function(i,v){
|
145 |
+
$(v).removeClass('wsdplugin_checkbox-active');
|
146 |
+
});
|
147 |
+
$(this).val('Select all');
|
148 |
+
}
|
149 |
+
else {
|
150 |
+
$.each(checkboxes,function(i,v){
|
151 |
+
$(v).addClass('wsdplugin_checkbox-active',true);
|
152 |
+
});
|
153 |
+
$(this).val('Clear all');
|
154 |
+
}
|
155 |
+
});
|
156 |
+
});
|
157 |
+
|
158 |
+
$('form').submit(function(){
|
159 |
+
$('#chk_options').val('');
|
160 |
+
var data = $('.chk-settings').map(function(){
|
161 |
+
var self = $(this);
|
162 |
+
return {name: self.attr('data-bind'), value: self.hasClass('wsdplugin_checkbox-active')?1:0};
|
163 |
+
}).get();
|
164 |
+
$('#chk_options').val($.param(data));
|
165 |
+
$('#chk_rss_wgt_display').val($('.chk-extra').hasClass('wsdplugin_checkbox-active')?1:0);
|
166 |
+
});
|
167 |
+
});
|
168 |
+
</script>
|
res/pages/tpl/box-available-backups.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php
|
3 |
+
/*
|
4 |
+
* DISPLAY AVAILABLE DOWNLOADS
|
5 |
+
*======================================================
|
6 |
+
*/
|
7 |
+
?>
|
8 |
+
<?php
|
9 |
+
$files = SwpaUtil::getAvailableBackupFiles();
|
10 |
+
|
11 |
+
if (empty($files))
|
12 |
+
{
|
13 |
+
echo '<p>',__("You don't have any backup files yet!"),'</p>';
|
14 |
+
}
|
15 |
+
else {
|
16 |
+
echo '<div class="acx-section-box">';
|
17 |
+
echo '<ul id="bck-list" class="acx-common-list">';
|
18 |
+
foreach($files as $fileName) {
|
19 |
+
echo '<li>';
|
20 |
+
echo '<a href="',SWPA_PLUGIN_URL.'res/backups/',$fileName,'" title="',__('Click to download'),'">',$fileName,'</a>';
|
21 |
+
echo '</li>';
|
22 |
+
}
|
23 |
+
echo '</ul>';
|
24 |
+
echo '</div>';
|
25 |
+
}
|
26 |
+
?>
|
res/pages/tpl/box-banners.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php if(! SwpaUtil::isAdministrator()) { return; } ?>
|
3 |
+
<div id="wsd-banner-rotator" class="wsdplugin-overflow">
|
4 |
+
<div style="width:800px; margin: 0 auto;">
|
5 |
+
<a href="//www.acunetix.com/" style="border:none;text-decoration: none;" target="_blank" title="Visit www.acunetix.com (opens in a new window/tab)">
|
6 |
+
<img src="//www.acunetix.com/assets/banner.jpg" alt="" title=""/>
|
7 |
+
</a> </div>
|
8 |
+
</div>
|
res/pages/tpl/box-database-backup.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
|
3 |
+
|
4 |
+
<div class="">
|
5 |
+
<blockquote>
|
6 |
+
<p><?php echo __('Your WordPress database contains every post, every comment and every link you have on your blog. If your database gets erased or corrupted, you stand to lose everything you have written. There are many reasons why this could happen and not all are things you can control. But what you can do is <strong>back up your data</strong>.'); ?></p>
|
7 |
+
<p style="text-align: center;"><?php echo __('<strong>Please backup your database before using this tool!</strong>');?></p>
|
8 |
+
<p style="text-align: right;"><cite><a href="http://codex.wordpress.org/WordPress_Backups" target="_blank">Wordpress</a></cite></p>
|
9 |
+
</blockquote>
|
10 |
+
</div>
|
11 |
+
|
12 |
+
<?php
|
13 |
+
/*
|
14 |
+
* Check if the backups directory is writable
|
15 |
+
*======================================================
|
16 |
+
*/
|
17 |
+
$wsd_bckDirPath = SWPA_PLUGIN_DIR.'res/backups/';
|
18 |
+
if (is_dir($wsd_bckDirPath) && is_writable($wsd_bckDirPath)) :
|
19 |
+
?>
|
20 |
+
|
21 |
+
|
22 |
+
<?php
|
23 |
+
if ($_SERVER['REQUEST_METHOD'] == 'POST')
|
24 |
+
{
|
25 |
+
if (isset($_POST['wsd_db_backup']))
|
26 |
+
{
|
27 |
+
|
28 |
+
if ('' <> ($fname = SwpaUtil::backupDatabase())) {
|
29 |
+
echo '<p class="acx-info-box">';
|
30 |
+
echo '<span>',__('Database successfully backed up!'),'</span>';
|
31 |
+
echo '<br/><span>',__('Download backup file'),': </span>';
|
32 |
+
echo '<a href="',SWPA_PLUGIN_URL.'res/backups/',$fname,'" style="color:#000">',$fname,'</a>';
|
33 |
+
echo '</p>';
|
34 |
+
}
|
35 |
+
else {
|
36 |
+
echo '<p class="acx-info-box">';
|
37 |
+
echo __('The database could not be backed up!');
|
38 |
+
echo '<br/>',__("A possible error might be that you didn't set up writing permissions for the backups directory!");
|
39 |
+
echo '</p>';
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
?>
|
44 |
+
<div class="acx-section-box">
|
45 |
+
<form action="#bckdb" method="post">
|
46 |
+
<input type="hidden" name="wsd_db_backup"/>
|
47 |
+
<input type="submit" class="button-primary" name="backupDatabaseButton" value="<?php echo __('Backup now!');?>"/>
|
48 |
+
</form>
|
49 |
+
</div>
|
50 |
+
|
51 |
+
<?php else : //!! The directory is not writable. Display the info message
|
52 |
+
|
53 |
+
echo '<p class="acx-info-box">';
|
54 |
+
printf(__('<strong>Important</strong>: The <code title="%s">backups</code> directory <strong>MUST</strong> be writable in order to use this feature!')
|
55 |
+
,SWPA_PLUGIN_DIR.'res/backups');
|
56 |
+
echo '</p>';
|
57 |
+
endif; ?>
|
res/pages/tpl/box-database-change-prefix.php
ADDED
@@ -0,0 +1,244 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
/*
|
5 |
+
* =====================================================================================
|
6 |
+
* Because this feature is error prone and the blog can go "bye-bye" in a second,
|
7 |
+
* ensure we've checked EVERYTHING before displaying the form
|
8 |
+
* =====================================================================================
|
9 |
+
*/
|
10 |
+
global $table_prefix;
|
11 |
+
|
12 |
+
//## Assume FALSE
|
13 |
+
$showPage = false; // whether or not to display this page
|
14 |
+
$isWPConfigWritable = false; // whether or not the wp-config file is writable
|
15 |
+
$cdtpIsPostBack = false; // whether or not the form was posted back.
|
16 |
+
$acxInfoMessage = $wsd_Message = ''; // Hold the error/info messages generated on form postback
|
17 |
+
$old_prefix = $table_prefix;
|
18 |
+
$new_prefix = ''; // leave empty. it will be populated at runtime
|
19 |
+
$canAlter = false; // Assume the user doesn't have ALTER rights
|
20 |
+
|
21 |
+
$wpConfigFile = trailingslashit(ABSPATH).'wp-config.php';
|
22 |
+
$acx_dbRights = SwpaInfoServer::getDatabaseUserAccessRights();
|
23 |
+
|
24 |
+
if (is_writable($wpConfigFile)){
|
25 |
+
$isWPConfigWritable = true;
|
26 |
+
}
|
27 |
+
|
28 |
+
if ($acx_dbRights['rightsEnough']) {
|
29 |
+
$canAlter = true;
|
30 |
+
}
|
31 |
+
|
32 |
+
//!! Check wp-config.php file and rights first
|
33 |
+
if ($isWPConfigWritable && $canAlter){
|
34 |
+
$showPage = true;
|
35 |
+
}
|
36 |
+
|
37 |
+
// Check if user has enough rights to alter the Table structure
|
38 |
+
if ($acx_dbRights['rightsEnough'])
|
39 |
+
{
|
40 |
+
$_canAlter = '<span style="color: #060; font-weight: 900;">('.__('Yes').')</span>';
|
41 |
+
}
|
42 |
+
else { $_canAlter = '<span style="color: #f00; font-weight: 900;">('.__('No').')</span>'; }
|
43 |
+
|
44 |
+
if ($isWPConfigWritable)
|
45 |
+
{
|
46 |
+
$wpConfigFileinfo = '<span style="color: #060; font-weight: 900;">('.__('Yes').')</span>';
|
47 |
+
}
|
48 |
+
else { $wpConfigFileinfo = '<span style="color: #f00; font-weight: 900;">('.__('No').')</span>'; }
|
49 |
+
?>
|
50 |
+
|
51 |
+
<div class="acx-section-box">
|
52 |
+
<p><?php echo __('Change your database table prefix to avoid zero-day SQL Injection attacks.');?></p>
|
53 |
+
<h4 style="margin-top: 15px;"><?php echo __('Before running this script');?>:</h4>
|
54 |
+
<ul class="acx-common-list" style="margin-top: 20px;">
|
55 |
+
<li><?php echo __('The <code>wp-config.php</code> file must be <strong>writable</strong>.').' '.$wpConfigFileinfo;?></li>
|
56 |
+
<li><?php echo __("The database user you're using to connect to database must have <strong>ALTER</strong> rights.").' '.$_canAlter;?></li>
|
57 |
+
</ul>
|
58 |
+
</div>
|
59 |
+
|
60 |
+
<?php
|
61 |
+
/*
|
62 |
+
* If the user doesn't have ALTER rights or the wp-config file is not writable
|
63 |
+
*============================================================================
|
64 |
+
*/
|
65 |
+
//@ if all good but we cannot use the "file' function, stop here
|
66 |
+
if ($showPage && !function_exists('file'))
|
67 |
+
{
|
68 |
+
echo '<p class="acx-info-box">';
|
69 |
+
echo '<span class="acx-icon-alert-info">';
|
70 |
+
echo __('In order to alter the <code>wp-config.php</code> file we need the <strong>file</strong> function which seems to be blacklisted by your server administrator!');
|
71 |
+
echo '</span>';
|
72 |
+
echo '</p>';
|
73 |
+
|
74 |
+
return;
|
75 |
+
}
|
76 |
+
|
77 |
+
//@ If we cannot load the page
|
78 |
+
if ( ! $showPage )
|
79 |
+
{
|
80 |
+
echo '<p class="acx-info-box">';
|
81 |
+
if (!$canAlter) {
|
82 |
+
echo '<span class="acx-icon-alert-critical">';
|
83 |
+
echo __('The User used to access the database must have <strong>ALTER</strong> rights in order to perform this action!');
|
84 |
+
echo '</span><br/>';
|
85 |
+
}
|
86 |
+
if (!$isWPConfigWritable) {
|
87 |
+
echo '<span>';
|
88 |
+
echo __('The <strong>wp-config</strong> file <strong>MUST</strong> be writable!');
|
89 |
+
echo '</span>';
|
90 |
+
}
|
91 |
+
echo '</p>';
|
92 |
+
|
93 |
+
//!! Stop here, no need to load the rest of the page
|
94 |
+
return;
|
95 |
+
}
|
96 |
+
?>
|
97 |
+
|
98 |
+
<?php
|
99 |
+
/*
|
100 |
+
* Issue the file permissions warning ONLY IF wp-config IS WRITABLE,
|
101 |
+
* otherwise the form gets confusing displaying so many info messages...
|
102 |
+
*======================================================================
|
103 |
+
*/
|
104 |
+
if ($isWPConfigWritable)
|
105 |
+
{
|
106 |
+
echo '<p class="acx-info-box">';
|
107 |
+
echo '<span class="acx-icon-alert-info">';
|
108 |
+
echo __('It is a security risk to have your files <strong>writable</strong>!
|
109 |
+
Please make sure that <strong>after</strong> running this script, the <code>wp-config.php</code> file\'s permissions are set to 0644 or to a more restrictive one. See: <a href="http://codex.wordpress.org/Changing_File_Permissions" target="_blank">http://codex.wordpress.org/Changing_File_Permissions</a> for more information.');
|
110 |
+
echo '</span>';
|
111 |
+
echo '</p>';
|
112 |
+
}
|
113 |
+
//@ If the user has too many rights
|
114 |
+
if (!empty($acx_dbRights['rightsTooMuch'])) {
|
115 |
+
echo '<p class="acx-info-box">';
|
116 |
+
echo '<span class="acx-icon-alert-info">'. __("Your currently used User to access the Wordpress Database <code>holds too many rights</code>. We suggest that you limit his rights or to use another User with more limited rights instead, to increase your website's Security.").'</span>';
|
117 |
+
echo '</p>';
|
118 |
+
}
|
119 |
+
?>
|
120 |
+
|
121 |
+
<?php
|
122 |
+
/*
|
123 |
+
* VALIDATE FORM
|
124 |
+
*======================================================
|
125 |
+
*/
|
126 |
+
if ($_SERVER['REQUEST_METHOD'] == 'POST')
|
127 |
+
{
|
128 |
+
if (!empty($_POST['newPrefixInput']) && isset($_POST['changePrefixButton']))
|
129 |
+
{
|
130 |
+
$cdtpIsPostBack = true;
|
131 |
+
|
132 |
+
if (function_exists('wp_nonce_field')) {
|
133 |
+
check_admin_referer('prefix-changer-change_prefix');
|
134 |
+
}
|
135 |
+
|
136 |
+
//@@ Double check the request
|
137 |
+
if (!$isWPConfigWritable || !$canAlter)
|
138 |
+
{
|
139 |
+
|
140 |
+
$e = __('Please correct the following errors').':<br/>';
|
141 |
+
$e .= '<br/>'.__('The User used to access the database must have <strong>ALTER</strong> rights in order to perform this action!');
|
142 |
+
$e .= '<br/>'.__('The <strong>wp-config</strong> file <strong>MUST</strong> be writable!');
|
143 |
+
|
144 |
+
wp_die($e);
|
145 |
+
}
|
146 |
+
|
147 |
+
$wpdb = $GLOBALS['wpdb'];
|
148 |
+
if (empty($wpdb))
|
149 |
+
{
|
150 |
+
wp_die(__('An internal error has occurred (empty $wpdb). Please inform the plug-in author about this error. Thank you!'));
|
151 |
+
}
|
152 |
+
|
153 |
+
$new_prefix = $_POST['newPrefixInput'];
|
154 |
+
|
155 |
+
// validate prefix
|
156 |
+
if(! preg_match('/^[a-zA-Z_][a-zA-Z0-9_]+$/', $new_prefix)){
|
157 |
+
$acxInfoMessage .= sprintf('Invalid table name prefix: %s', htmlentities($new_prefix));
|
158 |
+
$new_prefix = $old_prefix;
|
159 |
+
}
|
160 |
+
else
|
161 |
+
{
|
162 |
+
if (empty($acx_dbRights['rightsEnough']))
|
163 |
+
{
|
164 |
+
$wsd_Message .= '<span class="acx-icon-alert-critical">'. __('The User which is used to access your Wordpress Database, hasn\'t enough rights (is missing the <code>ALTER</code> right) to alter the Table structure.
|
165 |
+
Please visit the <a href="http://www.websitedefender.com/category/faq/" target=_blank">WebsiteDefender WP Security Scan WordPress plugin documentation</a> website for more information.
|
166 |
+
If the user <code>has ALTER</code> rights and the tool is still not working, please <a href="http://www.websitedefender.com/support/" target="_blank">contact us</a> for assistance!').'</span>';
|
167 |
+
}
|
168 |
+
|
169 |
+
if (strlen($new_prefix) < strlen($_POST['newPrefixInput'])){
|
170 |
+
$acxInfoMessage .= __('You used some characters disallowed in Table names. The sanitized prefix will be used instead').': '.$new_prefix;
|
171 |
+
}
|
172 |
+
if ($new_prefix == $old_prefix) {
|
173 |
+
if (!empty($acxInfoMessage)) { $acxInfoMessage .= '<br/>'; }
|
174 |
+
$acxInfoMessage .= __('No change! Please select a different table prefix value.');
|
175 |
+
}
|
176 |
+
else
|
177 |
+
{
|
178 |
+
// Get the list of tables to modify
|
179 |
+
$tables = SwpaUtil::getTablesToAlter();
|
180 |
+
if (empty($tables))
|
181 |
+
{
|
182 |
+
if (!empty($acxInfoMessage)) { $acxInfoMessage .= '<br/>'; }
|
183 |
+
$acxInfoMessage .= __("Internal Error: We couldn't retrieve the list of tables from the database! Please inform the plug-in author about this error! Thank you!");
|
184 |
+
}
|
185 |
+
else
|
186 |
+
{
|
187 |
+
$result = SwpaUtil::renameTables($tables, $old_prefix, $new_prefix);
|
188 |
+
|
189 |
+
// check for errors
|
190 |
+
if (!empty($result))
|
191 |
+
{
|
192 |
+
if (!empty($acxInfoMessage)) { $acxInfoMessage .= '<br/>'; }
|
193 |
+
$acxInfoMessage .= '<span class="acx-notice-success acx-icon-alert-success">'.__('All tables have been successfully updated!').'</span>';
|
194 |
+
|
195 |
+
// try to rename the fields
|
196 |
+
$acxInfoMessage .= SwpaUtil::renameDbFields($old_prefix, $new_prefix);
|
197 |
+
|
198 |
+
if (0 < SwpaUtil::updateWpConfigTablePrefix($wpConfigFile, $new_prefix))
|
199 |
+
{
|
200 |
+
$acxInfoMessage .= '<br/><span class="acx-notice-success acx-icon-alert-success">'.__('The <strong>wp-config</strong> file has been successfully updated!').'</span>';
|
201 |
+
}
|
202 |
+
else {
|
203 |
+
$acxInfoMessage .= '<br/>'.__('The <strong>wp-config</strong> file could not be updated! You have to manually update the <strong>$table_prefix</strong> variable to the one you have specified').': '.$new_prefix;
|
204 |
+
}
|
205 |
+
}// End if tables successfully renamed
|
206 |
+
else { $acxInfoMessage .= '<br/><strong>'.__('An error has occurred and the tables could not be updated!').'</strong>'; }
|
207 |
+
}// End if there are tables to rename
|
208 |
+
}// End checks
|
209 |
+
}
|
210 |
+
}// End if (!empty($_POST['newPrefixInput']))
|
211 |
+
}// End if postback
|
212 |
+
else { $new_prefix = $old_prefix; }
|
213 |
+
|
214 |
+
if(empty($new_prefix)){
|
215 |
+
$new_prefix = $old_prefix;
|
216 |
+
}
|
217 |
+
?>
|
218 |
+
|
219 |
+
<?php
|
220 |
+
/*
|
221 |
+
* Dsplay the form
|
222 |
+
*=======================================================
|
223 |
+
*/
|
224 |
+
?>
|
225 |
+
<div class="acx-section-box">
|
226 |
+
<form action="#cdtp" method="post" name="prefixchanging">
|
227 |
+
<?php if (function_exists('wp_nonce_field')) { wp_nonce_field('prefix-changer-change_prefix'); } ?>
|
228 |
+
<p><?php echo sprintf(__('Change the current: <input type="text" name="newPrefixInput" value="%s" size="20" maxlength="15"/> table prefix to something different.'), $new_prefix); ?></p>
|
229 |
+
<p><?php echo __('Allowed characters: all latin alphanumeric as well as the <strong>_</strong> (underscore).');?></p>
|
230 |
+
<input type="submit" class="button-primary" name="changePrefixButton" value="<?php echo __('Start Renaming');?>" />
|
231 |
+
</form>
|
232 |
+
</div>
|
233 |
+
<div id="cdtp">
|
234 |
+
<?php
|
235 |
+
// Display status information
|
236 |
+
if ($cdtpIsPostBack){
|
237 |
+
if (!empty($acxInfoMessage)){ echo '<p class="acx-info-box">',$acxInfoMessage,'</p>'; }
|
238 |
+
if (!empty($wsd_Message)) { echo '<p class="acx-info-box">',$wsd_Message,'</p>'; }
|
239 |
+
}
|
240 |
+
else {
|
241 |
+
if (!empty($wsd_Message)) { echo '<p class="acx-info-box">',$wsd_Message,'</p>'; }
|
242 |
+
}
|
243 |
+
?>
|
244 |
+
</div>
|
res/pages/tpl/box-scan-results-file.php
ADDED
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; }
|
2 |
+
/*
|
3 |
+
* Displays the File scan results info
|
4 |
+
*/
|
5 |
+
global $acxFileList;
|
6 |
+
?>
|
7 |
+
<?php
|
8 |
+
$acx_isPostBack = false;
|
9 |
+
$acx_message = '';
|
10 |
+
|
11 |
+
//@ IF POSTBACK
|
12 |
+
if(! SwpaUtil::isWinOs()){
|
13 |
+
if ($_SERVER['REQUEST_METHOD'] == 'POST')
|
14 |
+
{
|
15 |
+
// check nonce
|
16 |
+
if(isset($_POST['wsdplugin_update_paths_field'])){
|
17 |
+
if(!wp_verify_nonce($_POST['wsdplugin_update_paths_field'],'wsdplugin_update_paths')){
|
18 |
+
wp_die(__('Invalid request.'));
|
19 |
+
}
|
20 |
+
}
|
21 |
+
else {wp_die(__('Invalid request.'));}
|
22 |
+
|
23 |
+
$acx_isPostBack = true;
|
24 |
+
|
25 |
+
$result = SwpaUtil::changeFilePermissions($acxFileList);
|
26 |
+
|
27 |
+
if (empty($result)) {
|
28 |
+
$acx_message = __('No changes applied. You are running PHP on a Windows server thus chmod cannot be used');
|
29 |
+
}
|
30 |
+
else { $acx_message = __('Successful changes').': '.$result['success'].', '.__('Failed').': '.$result['failed']; }
|
31 |
+
}
|
32 |
+
}
|
33 |
+
?>
|
34 |
+
<?php
|
35 |
+
//@ Check the files
|
36 |
+
if (empty($acxFileList)) {
|
37 |
+
echo __('There are currently no files set for scanning!');
|
38 |
+
}
|
39 |
+
else
|
40 |
+
{
|
41 |
+
echo '<form method="post">';
|
42 |
+
wp_nonce_field('wsdplugin_update_paths','wsdplugin_update_paths_field');
|
43 |
+
echo '<table class="widefat acx-table" cellpadding="0" cellspacing="0">';
|
44 |
+
echo '<thead class="widget-top">';
|
45 |
+
echo '<tr>';
|
46 |
+
echo '<td></td>';
|
47 |
+
echo '<td><strong>',__('Name'),'</strong></td>';
|
48 |
+
echo '<td><strong>',__('Path'),'</strong></td>';
|
49 |
+
echo '<td><strong>',__('Current permissions'),'</strong></td>';
|
50 |
+
echo '<td><strong>',__('Suggested permissions'),'</strong></td>';
|
51 |
+
echo '</tr>';
|
52 |
+
echo '</thead>';
|
53 |
+
echo '<tbody>';
|
54 |
+
foreach($acxFileList as $fileName => $v)
|
55 |
+
{
|
56 |
+
$filePath = $v['filePath'];
|
57 |
+
$p = SwpaUtil::getFilePermissions($filePath);
|
58 |
+
$sp = $v['suggestedPermissions'];
|
59 |
+
|
60 |
+
$cssClass = ((octdec($p) == octdec($sp)) ? 'success' : 'error');
|
61 |
+
|
62 |
+
echo '<tr>';
|
63 |
+
echo '<td class="td_'.$cssClass.'"></td>';
|
64 |
+
echo '<td>',$fileName,'</td>';
|
65 |
+
echo '<td>',(empty($filePath) ? 'Not Found' : SwpaUtil::normalizePath($filePath)),'</td>';
|
66 |
+
//@ Current
|
67 |
+
if ($p > octdec('0')) {
|
68 |
+
echo '<td>',$p,'</td>';
|
69 |
+
}
|
70 |
+
else { echo '<td>',__('Not Found'),'</td>'; }
|
71 |
+
|
72 |
+
//@ Suggested
|
73 |
+
if (file_exists($filePath))
|
74 |
+
{
|
75 |
+
echo '<td>',$sp,'</td>';
|
76 |
+
}
|
77 |
+
else
|
78 |
+
{
|
79 |
+
if (is_file($filePath)) {
|
80 |
+
echo '<td>0644</td>';
|
81 |
+
}
|
82 |
+
elseif (is_dir($filePath)) { echo '<td class="center">0755</td>'; }
|
83 |
+
else {
|
84 |
+
echo '<td>',$sp,'</td>';
|
85 |
+
}
|
86 |
+
}
|
87 |
+
echo '</tr>';
|
88 |
+
}
|
89 |
+
echo '</tbody>';
|
90 |
+
echo '</table>';
|
91 |
+
|
92 |
+
if(! SwpaUtil::isWinOs()){
|
93 |
+
echo '<div class="wsdplugin-overflow"><p style="text-align: right; clear: both; margin: 7px 0 0 0;" class="wsdplugin-overflow">';
|
94 |
+
//@@ Display action result
|
95 |
+
if ($acx_isPostBack && !empty($acx_message)){
|
96 |
+
echo '<p class="acx-info-box" style="float: left; width: 70%; margin: 0 0; padding-top: 3px; padding-bottom: 3px;">'.$acx_message.'</p>';
|
97 |
+
}
|
98 |
+
echo '<input type="submit" value="Apply suggested permissions" class="button-primary" style="float: right;" /></div>';
|
99 |
+
}
|
100 |
+
echo '</form>';
|
101 |
+
|
102 |
+
echo '<p class="acx-info-box" style="margin: 7px 0 7px 0;">';
|
103 |
+
echo __('Our suggested permissions are still secure but more permissive in order not to break some servers\' setups.
|
104 |
+
If your existent file permissions are more restrictive, ex: 0750 instead of the suggested 0755 then you have no reason to
|
105 |
+
change it to the suggested 0755 permissions.');
|
106 |
+
echo '</p>';
|
107 |
+
}
|
108 |
+
?>
|
res/pages/tpl/box-scan-results-wp.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<ul class="acx-common-list">
|
3 |
+
<?php
|
4 |
+
// display wp info
|
5 |
+
$class = new ReflectionClass('SwpaInfo');
|
6 |
+
$methods = $class->getMethods();
|
7 |
+
if(! empty($methods)){
|
8 |
+
foreach($methods as $method){
|
9 |
+
echo '<li><p>'.call_user_func(array($method->class, $method->name)).'</p></li>';
|
10 |
+
}
|
11 |
+
}
|
12 |
+
?>
|
13 |
+
</ul>
|
res/pages/tpl/box-server-results.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php if(! SwpaUtil::canLoad()) { return; } ?>
|
2 |
+
<?php echo SwpaInfoServer::getServerInfo();?>
|
3 |
+
|
res/pages/tpl/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php /* here, only to prevent directory listing */
|
screenshot-1.jpg
ADDED
Binary file
|
screenshot-1.png
DELETED
Binary file
|
screenshot-2.jpg
ADDED
Binary file
|
screenshot-3.jpg
ADDED
Binary file
|
screenshot-4.jpg
ADDED
Binary file
|
secure-wordpress.php
DELETED
@@ -1,1101 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Plugin Name: Secure WordPress
|
4 |
-
* Plugin URI: http://www.websitedefender.com/secure-wordpress-plugin/
|
5 |
-
* Text Domain: secure_wp
|
6 |
-
* Domain Path: /languages
|
7 |
-
* Description: Basic security checks for securing your WordPress installation
|
8 |
-
* Author: WebsiteDefender
|
9 |
-
* Version: 2.0.6
|
10 |
-
* Author URI: http://www.websitedefender.com/
|
11 |
-
* License: GPL
|
12 |
-
*/
|
13 |
-
/*
|
14 |
-
* rev #1: 07/16/2011 {c}
|
15 |
-
* rev #2: 07/26/2011 {c}
|
16 |
-
* rev #3: 08/26/2011 {c}
|
17 |
-
* rev #4: 09/12/2011 {c}
|
18 |
-
* rev #5: 09/20/2011 {c}
|
19 |
-
* rev #6: 09/30/2011 {c}
|
20 |
-
*/
|
21 |
-
|
22 |
-
global $wp_version;
|
23 |
-
if ( !function_exists ('add_action') || version_compare($wp_version, "2.6alpha", "<") ) {
|
24 |
-
if (function_exists ('add_action')) {
|
25 |
-
$exit_msg = 'The plugin <em><a href="http://wordpress.org/extend/plugins/secure-wordpress/" target="_blank">Secure WordPress</a></em> requires WordPress 2.6 or newer. <a href="http://codex.wordpress.org/Upgrading_WordPress" target="_blank">Please update WordPress</a> or delete the plugin.';
|
26 |
-
}
|
27 |
-
else {$exit_msg = '';}
|
28 |
-
if (!headers_sent()) {
|
29 |
-
header('Status: 403 Forbidden');
|
30 |
-
header('HTTP/1.1 403 Forbidden');
|
31 |
-
}
|
32 |
-
exit($exit_msg);
|
33 |
-
}
|
34 |
-
/**
|
35 |
-
* Displayed for the menu item in te admin menu
|
36 |
-
* Images/ Icons in base64-encoding
|
37 |
-
* @uses function wpag_get_resource_url() for display
|
38 |
-
*/
|
39 |
-
if ( isset($_GET['resource']) && !empty($_GET['resource']) ) {
|
40 |
-
# base64 encoding performed by base64img.php from http://php.holtsmark.no
|
41 |
-
$resources = array(
|
42 |
-
'secure_wp.gif' =>
|
43 |
-
'R0lGODlhCwALAKIHALOzs8PDw9fX16GhoZSUlPz8/Orq6v///yH5BAEAAAcALAAAAAALAAsAAAMveLrMFtCwEoi1oZwCrgeFcA3BcAkdAQgBagEmIZiDSAzxfNtDajy/10PQYEkajQQAOw==',
|
44 |
-
'wp.png' =>
|
45 |
-
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAFfKj/FAAAAB3RJTUUH1wYQEiwG0'.
|
46 |
-
'0adjQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAABOUExURZ'.
|
47 |
-
'wMDN7n93ut1kKExjFjnHul1tbn75S93jFrnP///1qUxnOl1sbe71KMxjFrpWOUzjl'.
|
48 |
-
'7tYy13q3G5+fv95y93muczu/39zl7vff3//f//9Se9dEAAAABdFJOUwBA5thmAAAA'.
|
49 |
-
's0lEQVR42iWPUZLDIAxDRZFNTMCllJD0/hddktWPRp6x5QcQmyIA1qG1GuBUIArwj'.
|
50 |
-
'SRITkiylXNxHjtweqfRFHJ86MIBrBuW0nIIo96+H/SSAb5Zm14KnZTm7cQVc1XSMT'.
|
51 |
-
'jr7IdAVPm+G5GS6YZHaUv6M132RBF1PopTXiuPYplcmxzWk2C72CfZTNaU09GCM3T'.
|
52 |
-
'Ww9porieUwZt9yP6tHm5K5L2Uun6xsuf/WoTXwo7yQPwBXo8H/8TEoKYAAAAASUVO'.
|
53 |
-
'RK5CYII='.
|
54 |
-
'');
|
55 |
-
|
56 |
-
if (array_key_exists($_GET['resource'], $resources))
|
57 |
-
{
|
58 |
-
$content = base64_decode($resources[ $_GET['resource'] ]);
|
59 |
-
$lastMod = filemtime(__FILE__);
|
60 |
-
$client = ( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false );
|
61 |
-
// Checking if the client is validating his cache and if it is current.
|
62 |
-
if ( isset($client) && (strtotime($client) == $lastMod) ) {
|
63 |
-
if (!headers_sent()) {
|
64 |
-
// Client's cache IS current, so we just respond '304 Not Modified'.
|
65 |
-
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', true, 304);
|
66 |
-
}
|
67 |
-
exit;
|
68 |
-
}
|
69 |
-
else {
|
70 |
-
if (!headers_sent()) {
|
71 |
-
// Image not cached or cache outdated, we respond '200 OK' and output the image.
|
72 |
-
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', true, 200);
|
73 |
-
header('Content-Length: '.strlen($content));
|
74 |
-
header('Content-Type: image/' . substr(strrchr($_GET['resource'], '.'), 1) );
|
75 |
-
}
|
76 |
-
echo $content;
|
77 |
-
exit;
|
78 |
-
}
|
79 |
-
}
|
80 |
-
}
|
81 |
-
|
82 |
-
|
83 |
-
/* $rev #1, #2 {c} */
|
84 |
-
if (!function_exists('json_encode') || !class_exists('Services_JSON'))
|
85 |
-
{
|
86 |
-
@require_once('inc/json.php');
|
87 |
-
}
|
88 |
-
if (!defined('WSD_RECAPTCHA_API_SERVER'))
|
89 |
-
{
|
90 |
-
@require_once('inc/recaptchalib.php');
|
91 |
-
}
|
92 |
-
if ( !class_exists('WPlize') ) {
|
93 |
-
@require_once('inc/WPlize.php');
|
94 |
-
}
|
95 |
-
|
96 |
-
|
97 |
-
// Check to see whether or not we should display the dashboard widget
|
98 |
-
//@ $rev3
|
99 |
-
$plugin1 = 'websitedefender-wordpress-security';
|
100 |
-
$plugin2 = 'wp-security-scan';
|
101 |
-
if (! in_array($plugin1.'/'.$plugin1.'.php', apply_filters('active_plugins', get_option('active_plugins')))
|
102 |
-
|| ! in_array($plugin2.'/securityscan.php', apply_filters('active_plugins', get_option('active_plugins'))))
|
103 |
-
{
|
104 |
-
define('SWP_WSD_BLOG_FEED', 'http://www.websitedefender.com/feed/');
|
105 |
-
@require_once('inc/swUtil.php');
|
106 |
-
//@@ Hook into the 'wp_dashboard_setup' action to create the dashboard widget
|
107 |
-
add_action('wp_dashboard_setup', "swUtil::addDashboardWidget");
|
108 |
-
}
|
109 |
-
unset($plugin1,$plugin2);
|
110 |
-
//@===
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
/*
|
115 |
-
* Instantiate the swWSD class
|
116 |
-
*/
|
117 |
-
@require 'inc/swWSD.php';
|
118 |
-
$swwsd = new swWSD();
|
119 |
-
|
120 |
-
|
121 |
-
if ( !class_exists('SecureWP') ){
|
122 |
-
|
123 |
-
if (function_exists ('add_action'))
|
124 |
-
{
|
125 |
-
// Pre-2.6 compatibility
|
126 |
-
if ( !defined( 'WP_CONTENT_URL' ) ) {
|
127 |
-
define( 'WP_CONTENT_URL', get_option( 'siteurl' ) . '/wp-content' );
|
128 |
-
}
|
129 |
-
if ( !defined( 'WP_PLUGIN_URL' ) ) {
|
130 |
-
define( 'WP_PLUGIN_URL', WP_CONTENT_URL. '/plugins' );
|
131 |
-
}
|
132 |
-
if ( !defined( 'WP_PLUGIN_DIR' ) ) {
|
133 |
-
define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );
|
134 |
-
}
|
135 |
-
|
136 |
-
// plugin definitions
|
137 |
-
define( 'FB_SWP_BASENAME', plugin_basename(__FILE__) );
|
138 |
-
define( 'FB_SWP_BASEFOLDER', plugin_basename( dirname( __FILE__ ) ) );
|
139 |
-
define( 'FB_SWP_FILENAME', str_replace( FB_SWP_BASEFOLDER.'/', '', plugin_basename(__FILE__) ) );
|
140 |
-
define( 'FB_SWP_TEXTDOMAIN', 'secure_wp' );
|
141 |
-
}
|
142 |
-
|
143 |
-
|
144 |
-
/**
|
145 |
-
* @package Secure WordPress
|
146 |
-
* @author WebsiteDefender
|
147 |
-
* @desc Secure WordPress beefs up the security of your WordPress installation
|
148 |
-
* by removing error information on login pages, adds index.html to plugin directories,
|
149 |
-
* hides the WordPress version and much more.
|
150 |
-
*/
|
151 |
-
class SecureWP
|
152 |
-
{
|
153 |
-
var $wpversion;
|
154 |
-
|
155 |
-
/*
|
156 |
-
* constructor {php 4}
|
157 |
-
* calls $this->__construct()
|
158 |
-
*/
|
159 |
-
// public function SecureWP() { return $this->__construct(); }
|
160 |
-
|
161 |
-
// constructor {php5+}
|
162 |
-
public function __construct()
|
163 |
-
{
|
164 |
-
global $wp_version;
|
165 |
-
|
166 |
-
$this->wpversion = $wp_version;
|
167 |
-
|
168 |
-
$this->activate();
|
169 |
-
|
170 |
-
add_action( 'init', array(&$this, 'textdomain') );
|
171 |
-
/**
|
172 |
-
* remove WP version
|
173 |
-
*/
|
174 |
-
if ( $GLOBALS['WPlize']->get_option('secure_wp_version') == '1' ) {
|
175 |
-
add_action( 'init', array(&$this, 'replace_wp_version'), 1 );
|
176 |
-
}
|
177 |
-
|
178 |
-
/**
|
179 |
-
* remove core update for non admins
|
180 |
-
* @link: rights: http://codex.wordpress.org/Roles_and_Capabilities
|
181 |
-
*/
|
182 |
-
if ( is_admin() && ($GLOBALS['WPlize']->get_option('secure_wp_rcu') == '1') ) {
|
183 |
-
add_action( 'init', array(&$this, 'remove_core_update'), 1 );
|
184 |
-
}
|
185 |
-
|
186 |
-
/**
|
187 |
-
* remove plugin update for non admins
|
188 |
-
* @link: rights: http://codex.wordpress.org/Roles_and_Capabilities
|
189 |
-
*/
|
190 |
-
if ( is_admin() && ($GLOBALS['WPlize']->get_option('secure_wp_rpu') == '1') ) {
|
191 |
-
add_action( 'init', array(&$this, 'remove_plugin_update'), 1 );
|
192 |
-
}
|
193 |
-
|
194 |
-
/**
|
195 |
-
* remove theme update for non admins
|
196 |
-
* @link: rights: http://codex.wordpress.org/Roles_and_Capabilities
|
197 |
-
*/
|
198 |
-
if ( is_admin() && ($GLOBALS['WPlize']->get_option('secure_wp_rtu') == '1') && ( version_compare($wp_version, "2.8alpha", ">") ) ) {
|
199 |
-
add_action( 'init', array(&$this, 'remove_theme_update'), 1 );
|
200 |
-
}
|
201 |
-
|
202 |
-
/**
|
203 |
-
* remove WP version on backend
|
204 |
-
*/
|
205 |
-
if ( $GLOBALS['WPlize']->get_option('secure_wp_admin_version') == '1' ) {
|
206 |
-
add_action( 'init', array(&$this, 'remove_wp_version_on_admin'), 1 );
|
207 |
-
}
|
208 |
-
|
209 |
-
add_action( 'init', array(&$this, 'on_init'), 1 );
|
210 |
-
}
|
211 |
-
|
212 |
-
/**
|
213 |
-
* active for multilanguage
|
214 |
-
*
|
215 |
-
* @package Secure WordPress
|
216 |
-
*/
|
217 |
-
public function textdomain()
|
218 |
-
{
|
219 |
-
if ( function_exists('load_plugin_textdomain') ) {
|
220 |
-
if ( !defined('WP_PLUGIN_DIR') ) {
|
221 |
-
load_plugin_textdomain(FB_SWP_TEXTDOMAIN, str_replace( ABSPATH, '', dirname(__FILE__) ) . '/languages');
|
222 |
-
}
|
223 |
-
else { load_plugin_textdomain(FB_SWP_TEXTDOMAIN, false, dirname( plugin_basename(__FILE__) ) . '/languages'); }
|
224 |
-
}
|
225 |
-
}
|
226 |
-
|
227 |
-
// public function for WP < 2.8
|
228 |
-
public function get_plugins_url($path = '', $plugin = '')
|
229 |
-
{
|
230 |
-
if ( function_exists('plugin_url') ) {
|
231 |
-
return plugins_url($path, $plugin);
|
232 |
-
}
|
233 |
-
|
234 |
-
if ( function_exists('is_ssl') ) {
|
235 |
-
$scheme = ( is_ssl() ? 'https' : 'http' );
|
236 |
-
}
|
237 |
-
else {$scheme = 'http';}
|
238 |
-
|
239 |
-
if ( function_exists('plugins_url') )
|
240 |
-
$url = plugins_url();
|
241 |
-
else
|
242 |
-
$url = WP_PLUGIN_URL;
|
243 |
-
if ( 0 === strpos($url, 'http') ) {
|
244 |
-
if ( function_exists('is_ssl') && is_ssl() ) {
|
245 |
-
$url = str_replace( 'http://', "{$scheme}://", $url );
|
246 |
-
}
|
247 |
-
}
|
248 |
-
|
249 |
-
if ( !empty($plugin) && is_string($plugin) )
|
250 |
-
{
|
251 |
-
$folder = dirname(plugin_basename($plugin));
|
252 |
-
if ('.' != $folder) {
|
253 |
-
$url .= '/' . ltrim($folder, '/');
|
254 |
-
}
|
255 |
-
}
|
256 |
-
|
257 |
-
if ( !empty($path) && is_string($path) && strpos($path, '..') === false ) {
|
258 |
-
$url .= '/' . ltrim($path, '/');
|
259 |
-
}
|
260 |
-
|
261 |
-
return apply_filters('plugins_url', $url, $path, $plugin);
|
262 |
-
}
|
263 |
-
|
264 |
-
/**
|
265 |
-
* init functions; check rights and options; load external resources
|
266 |
-
*
|
267 |
-
* @package Secure WordPress
|
268 |
-
*/
|
269 |
-
public function on_init()
|
270 |
-
{
|
271 |
-
global $wp_version;
|
272 |
-
|
273 |
-
if ( is_admin() )
|
274 |
-
{
|
275 |
-
// update options
|
276 |
-
add_action('admin_post_swp_update', array(&$this, 'swp_update') );
|
277 |
-
// deinstall options
|
278 |
-
add_action('admin_post_swp_uninstall', array(&$this, 'swp_uninstall') );
|
279 |
-
|
280 |
-
// init default options when activate
|
281 |
-
if ( function_exists('register_activation_hook') ) {
|
282 |
-
register_activation_hook(__FILE__, array($this, 'activate') );
|
283 |
-
}
|
284 |
-
// uninstall options when deactivate
|
285 |
-
if ( function_exists('register_deactivation_hook') ) {
|
286 |
-
register_deactivation_hook(__FILE__, array($this, 'deactivate') );
|
287 |
-
}
|
288 |
-
|
289 |
-
// add options page
|
290 |
-
add_action( 'admin_menu', array(&$this, 'admin_menu') );
|
291 |
-
// hint in the footer of the options page
|
292 |
-
add_action( 'in_admin_footer', array(&$this, 'admin_footer') );
|
293 |
-
|
294 |
-
add_action( 'wp_ajax_set_toggle_status', array($this, 'set_toggle_status') );
|
295 |
-
|
296 |
-
// Only load in the plug-in page
|
297 |
-
/*$rev #2 07/27/2011 {c}$*/
|
298 |
-
$url = $_SERVER['REQUEST_URI'];
|
299 |
-
if (stristr($url, 'secure-wordpress'))
|
300 |
-
{
|
301 |
-
/* $rev #1 07/15/2011 {c}$ */
|
302 |
-
$h1 = 'wsd_sw-styles'; $h2 = 'acx-json'; $h3 = 'acx-md5'; $h4 = 'wsd_sw_wsd'; $h5 = 'wsd_sw_scripts';
|
303 |
-
wp_register_style($h1, $this->get_plugins_url('css/wsd_sw_styles.css', __FILE__));
|
304 |
-
wp_register_script($h2, $this->get_plugins_url('js/json.js', __FILE__));
|
305 |
-
wp_register_script($h3, $this->get_plugins_url('js/md5.js', __FILE__));
|
306 |
-
wp_register_script($h4, $this->get_plugins_url('js/sw_wsd.js', __FILE__),array('jquery'));
|
307 |
-
wp_register_script($h5, $this->get_plugins_url('js/sw_wsd_scripts.js', __FILE__),array('jquery'));
|
308 |
-
wp_enqueue_style($h1);
|
309 |
-
wp_enqueue_script($h2);
|
310 |
-
wp_enqueue_script($h3);
|
311 |
-
wp_enqueue_script($h4);
|
312 |
-
wp_enqueue_script($h5);
|
313 |
-
}
|
314 |
-
/* $rev #2 09/12/2011 {c}$ */
|
315 |
-
$h6 = 'swp-dashboard';
|
316 |
-
wp_register_style($h6, $this->get_plugins_url('css/acx-wp-dashboard.css', __FILE__));
|
317 |
-
wp_enqueue_style($h6);
|
318 |
-
|
319 |
-
}
|
320 |
-
/* End if admin*/
|
321 |
-
|
322 |
-
|
323 |
-
/**
|
324 |
-
* remove Error-information
|
325 |
-
*/
|
326 |
-
if ( !is_admin() && ($GLOBALS['WPlize']->get_option('secure_wp_error') == '1') ) {
|
327 |
-
add_action( 'login_head', array(&$this, 'remove_error_div') );
|
328 |
-
add_filter( 'login_errors', create_function( '$a', "return null;" ) );
|
329 |
-
}
|
330 |
-
|
331 |
-
|
332 |
-
/**
|
333 |
-
* add index.html in plugin-folder
|
334 |
-
*/
|
335 |
-
if ( $GLOBALS['WPlize']->get_option('secure_wp_index') == '1' ) {
|
336 |
-
$this->add_index( WP_PLUGIN_DIR, true );
|
337 |
-
$this->add_index( WP_CONTENT_URL . '/themes', true );
|
338 |
-
}
|
339 |
-
|
340 |
-
|
341 |
-
/**
|
342 |
-
* remove rdf
|
343 |
-
*/
|
344 |
-
if ( function_exists('rsd_link') && !is_admin() && ($GLOBALS['WPlize']->get_option('secure_wp_rsd') == '1') ) {
|
345 |
-
remove_action('wp_head', 'rsd_link');
|
346 |
-
}
|
347 |
-
|
348 |
-
|
349 |
-
/**
|
350 |
-
* remove wlf
|
351 |
-
*/
|
352 |
-
if ( function_exists('wlwmanifest_link') && !is_admin() && ($GLOBALS['WPlize']->get_option('secure_wp_wlw') == '1') ) {
|
353 |
-
remove_action('wp_head', 'wlwmanifest_link');
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* add wp-scanner
|
358 |
-
* @link http://blogsecurity.net/wordpress/tools/wp-scanner
|
359 |
-
*/
|
360 |
-
|
361 |
-
if ( !is_admin() && ($GLOBALS['WPlize']->get_option('secure_wp_wps') == '1') ) {
|
362 |
-
add_filter( 'script_loader_src', array(&$this, 'filter_script_loader') );
|
363 |
-
add_filter( 'style_loader_src', array(&$this, 'filter_script_loader') );
|
364 |
-
}
|
365 |
-
|
366 |
-
/**
|
367 |
-
* block bad queries
|
368 |
-
* @link http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/
|
369 |
-
*/
|
370 |
-
if ( !is_admin() && $GLOBALS['WPlize']->get_option('secure_wp_amurlr') == '1' ) {
|
371 |
-
add_action( 'init', array(&$this, 'wp_against_malicious_url_request') );
|
372 |
-
}
|
373 |
-
}
|
374 |
-
|
375 |
-
/**
|
376 |
-
* install options
|
377 |
-
*
|
378 |
-
* @package Secure WordPress
|
379 |
-
*/
|
380 |
-
public function activate()
|
381 |
-
{
|
382 |
-
// set default options
|
383 |
-
$this->options_array = array('secure_wp_error' => '',
|
384 |
-
'secure_wp_version' => '1',
|
385 |
-
'secure_wp_admin_version' => '1',
|
386 |
-
'secure_wp_index' => '1',
|
387 |
-
'secure_wp_rsd' => '1',
|
388 |
-
'secure_wp_wlw' => '',
|
389 |
-
'secure_wp_rcu' => '1',
|
390 |
-
'secure_wp_rpu' => '1',
|
391 |
-
'secure_wp_rtu' => '1',
|
392 |
-
'secure_wp_wps' => '',
|
393 |
-
'secure_wp_amurlr' => '1'
|
394 |
-
);
|
395 |
-
|
396 |
-
// add class WPlize for options in WP
|
397 |
-
$GLOBALS['WPlize'] = new WPlize('secure-wp',$this->options_array);
|
398 |
-
}
|
399 |
-
|
400 |
-
/**
|
401 |
-
* update options
|
402 |
-
*
|
403 |
-
* @package Secure WordPress
|
404 |
-
*/
|
405 |
-
public function update()
|
406 |
-
{
|
407 |
-
// init value
|
408 |
-
$update_options = array();
|
409 |
-
|
410 |
-
// set value
|
411 |
-
foreach ($this->options_array as $key => $value) {
|
412 |
-
$update_options[$key] = stripslashes_deep( trim($_POST[$key]) );
|
413 |
-
}
|
414 |
-
|
415 |
-
// save value
|
416 |
-
if ($update_options) {
|
417 |
-
$GLOBALS['WPlize']->update_option($update_options);
|
418 |
-
}
|
419 |
-
|
420 |
-
// update 10/04/2011
|
421 |
-
if($_POST['show_rss_widget'] == 'on'){
|
422 |
-
update_option('WSD-RSS-WGT-DISPLAY', 'yes');
|
423 |
-
}
|
424 |
-
else {
|
425 |
-
update_option('WSD-RSS-WGT-DISPLAY', 'no');
|
426 |
-
}
|
427 |
-
}
|
428 |
-
|
429 |
-
/**
|
430 |
-
* uninstall options
|
431 |
-
*
|
432 |
-
* @package Secure WordPress
|
433 |
-
*/
|
434 |
-
public function deactivate() { $GLOBALS['WPlize']->delete_option(); }
|
435 |
-
|
436 |
-
/**
|
437 |
-
* Add option for tabboxes via ajax
|
438 |
-
*
|
439 |
-
* @package Secure WordPress
|
440 |
-
*/
|
441 |
-
public function set_toggle_status()
|
442 |
-
{
|
443 |
-
if ( current_user_can('manage_options') && $_POST['set_toggle_id'] )
|
444 |
-
{
|
445 |
-
$id = $_POST['set_toggle_id'];
|
446 |
-
$status = $_POST['set_toggle_status'];
|
447 |
-
|
448 |
-
$GLOBALS['WPlize']->update_option($id, $status);
|
449 |
-
}
|
450 |
-
}
|
451 |
-
|
452 |
-
/**
|
453 |
-
* @version WP 2.8
|
454 |
-
* Add action link(s) to plugins page
|
455 |
-
*
|
456 |
-
* @package Secure WordPress
|
457 |
-
*
|
458 |
-
* @param $links, $file
|
459 |
-
* @return $links
|
460 |
-
*/
|
461 |
-
public function filter_plugin_meta($links, $file)
|
462 |
-
{
|
463 |
-
/* create link */
|
464 |
-
if ( $file == FB_SWP_BASENAME ) {
|
465 |
-
array_unshift(
|
466 |
-
$links,
|
467 |
-
sprintf( '<a href="options-general.php?page=%s">%s</a>', FB_SWP_FILENAME, __('Settings') )
|
468 |
-
);
|
469 |
-
}
|
470 |
-
|
471 |
-
return $links;
|
472 |
-
}
|
473 |
-
|
474 |
-
/**
|
475 |
-
* Display Images/ Icons in base64-encoding
|
476 |
-
*
|
477 |
-
* @package Secure WordPress
|
478 |
-
*
|
479 |
-
* @param $resourceID
|
480 |
-
* @return $resourceID
|
481 |
-
*/
|
482 |
-
public function get_resource_url($resourceID) { return trailingslashit( get_bloginfo('url') ) . '?resource=' . $resourceID; }
|
483 |
-
|
484 |
-
/**
|
485 |
-
* content of help
|
486 |
-
*
|
487 |
-
* @package Secure WordPress
|
488 |
-
*/
|
489 |
-
public function contextual_help()
|
490 |
-
{
|
491 |
-
$content = __('<a href="http://wordpress.org/extend/plugins/secure-wordpress/" target="_blank">Documentation</a>', FB_SWP_TEXTDOMAIN);
|
492 |
-
return $content;
|
493 |
-
}
|
494 |
-
|
495 |
-
/**
|
496 |
-
* settings in plugin-admin-page
|
497 |
-
*
|
498 |
-
* @package Secure WordPress
|
499 |
-
*/
|
500 |
-
public function admin_menu()
|
501 |
-
{
|
502 |
-
global $wp_version;
|
503 |
-
|
504 |
-
if ( function_exists('add_management_page') && current_user_can('manage_options') )
|
505 |
-
{
|
506 |
-
if ( !isset($_GET['update']) ) {
|
507 |
-
$_GET['update'] = 'false';
|
508 |
-
}
|
509 |
-
|
510 |
-
if ( !isset($_GET['uninstall']) ) {
|
511 |
-
$_GET['uninstall'] = 'false';
|
512 |
-
}
|
513 |
-
|
514 |
-
// update, uninstall message
|
515 |
-
if ( strpos($_SERVER['REQUEST_URI'], 'secure-wordpress.php') && $_GET['update'] == 'true' ) {
|
516 |
-
$return_message = __('Options updated.', FB_SWP_TEXTDOMAIN);
|
517 |
-
}
|
518 |
-
elseif ( $_GET['uninstall'] == 'true' ) {
|
519 |
-
$return_message = __('All entries from the database have been deleted. You can now deactivate this plugin.', FB_SWP_TEXTDOMAIN);
|
520 |
-
}
|
521 |
-
else { $return_message = ''; }
|
522 |
-
|
523 |
-
$message = '<div class="updated fade"><p>' . $return_message . '</p></div>';
|
524 |
-
|
525 |
-
$menutitle = '';
|
526 |
-
if ( version_compare( $wp_version, '2.7alpha', '>' ) )
|
527 |
-
{
|
528 |
-
if ( $return_message !== '' ) {
|
529 |
-
add_action('admin_notices', create_function( '', "echo '$message';" ) );
|
530 |
-
}
|
531 |
-
|
532 |
-
$menutitle = '<img src="' . $this->get_resource_url('secure_wp.gif') . '" alt="" />' . ' ';
|
533 |
-
}
|
534 |
-
$menutitle .= __('Secure WP', FB_SWP_TEXTDOMAIN);
|
535 |
-
|
536 |
-
// added check for SSL login and to adjust url for logo accordingly
|
537 |
-
if ( force_ssl_login() || force_ssl_admin() ) {
|
538 |
-
$menutitle = str_replace( 'http://', 'https://', $menutitle );
|
539 |
-
}
|
540 |
-
|
541 |
-
if ( version_compare( $wp_version, '2.7alpha', '>' ) && function_exists('add_contextual_help') ) {
|
542 |
-
$hook = add_submenu_page( 'options-general.php', __('Secure WordPress', FB_SWP_TEXTDOMAIN), $menutitle, 'manage_options', basename(__FILE__), array(&$this, 'display_page') );
|
543 |
-
add_contextual_help( $hook, __('<a href="http://wordpress.org/extend/plugins/secure-wordpress/" target="_blank">Documentation</a>', FB_SWP_TEXTDOMAIN) );
|
544 |
-
//add_filter( 'contextual_help', array(&$this, 'contextual_help') );
|
545 |
-
}
|
546 |
-
else { add_submenu_page( 'options-general.php', __('Secure WP', FB_SWP_TEXTDOMAIN), $menutitle, 9, basename(__FILE__), array(&$this, 'display_page') ); }
|
547 |
-
|
548 |
-
$plugin = plugin_basename(__FILE__);
|
549 |
-
add_filter( 'plugin_action_links_' . $plugin, array(&$this, 'filter_plugin_meta'), 10, 2 );
|
550 |
-
if ( version_compare( $wp_version, '2.8alpha', '>' ) ) {
|
551 |
-
add_filter( 'plugin_row_meta', array(&$this, 'filter_plugin_meta'), 10, 2 );
|
552 |
-
}
|
553 |
-
}
|
554 |
-
}
|
555 |
-
|
556 |
-
/**
|
557 |
-
* credit in wp-footer
|
558 |
-
*
|
559 |
-
* @package Secure WordPress
|
560 |
-
*/
|
561 |
-
public function admin_footer()
|
562 |
-
{
|
563 |
-
if( basename($_SERVER['QUERY_STRING']) == 'page=secure-wordpress.php') {
|
564 |
-
$plugin_data = get_plugin_data( __FILE__ );
|
565 |
-
printf('%1$s plugin | ' . __('Version', FB_SWP_TEXTDOMAIN) . ' <a href="http://wordpress.org/extend/plugins/secure-wordpress/changelog/" target="_blank" title="' . __('History', FB_SWP_TEXTDOMAIN) . '">%2$s</a> | ' . __('Author', FB_SWP_TEXTDOMAIN) . ' %3$s<br />', $plugin_data['Title'], $plugin_data['Version'], $plugin_data['Author']);
|
566 |
-
}
|
567 |
-
}
|
568 |
-
|
569 |
-
/**
|
570 |
-
* add index.php to plugin-derectory
|
571 |
-
*/
|
572 |
-
public function add_index($path, $enable)
|
573 |
-
{
|
574 |
-
$file = trailingslashit($path) . 'index.php';
|
575 |
-
if ($enable) {
|
576 |
-
if (!file_exists($file)) {
|
577 |
-
$fh = @fopen($file, 'w');
|
578 |
-
if ($fh) {fclose($fh);}
|
579 |
-
}
|
580 |
-
}
|
581 |
-
else {
|
582 |
-
if (file_exists($file) && filesize($file) === 0) {
|
583 |
-
@unlink($file);
|
584 |
-
}
|
585 |
-
}
|
586 |
-
}
|
587 |
-
|
588 |
-
/**
|
589 |
-
* Replace the WP-version with a random string < WP 2.4
|
590 |
-
* and eliminate WP-version > WP 2.4
|
591 |
-
* @link http://bueltge.de/wordpress-version-verschleiern-plugin/602/
|
592 |
-
*
|
593 |
-
* @package Secure WordPress
|
594 |
-
*/
|
595 |
-
public function replace_wp_version()
|
596 |
-
{
|
597 |
-
if ( !is_admin() )
|
598 |
-
{
|
599 |
-
global $wp_version;
|
600 |
-
|
601 |
-
// random values
|
602 |
-
$v = intval( rand(0, 9999) );
|
603 |
-
$d = intval( rand(9999, 99999) );
|
604 |
-
$m = intval( rand(99999, 999999) );
|
605 |
-
$t = intval( rand(999999, 9999999) );
|
606 |
-
|
607 |
-
if ( function_exists('the_generator') )
|
608 |
-
{
|
609 |
-
// eliminate version for wordpress >= 2.4
|
610 |
-
remove_filter( 'wp_head', 'wp_generator' );
|
611 |
-
$actions = array( 'rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head', 'app_head' );
|
612 |
-
foreach ( $actions as $action ) {
|
613 |
-
remove_action( $action, 'the_generator' );
|
614 |
-
}
|
615 |
-
|
616 |
-
// for vars
|
617 |
-
$wp_version = $v;
|
618 |
-
$wp_db_version = $d;
|
619 |
-
$manifest_version = $m;
|
620 |
-
$tinymce_version = $t;
|
621 |
-
}
|
622 |
-
else {
|
623 |
-
// for wordpress < 2.4
|
624 |
-
add_filter( "bloginfo_rss('version')", create_function('$a', "return $v;") );
|
625 |
-
|
626 |
-
// for rdf and rss v0.92
|
627 |
-
$wp_version = $v;
|
628 |
-
$wp_db_version = $d;
|
629 |
-
$manifest_version = $m;
|
630 |
-
$tinymce_version = $t;
|
631 |
-
}
|
632 |
-
}
|
633 |
-
}
|
634 |
-
|
635 |
-
/**
|
636 |
-
* remove WP Version-Information on Dashboard
|
637 |
-
*
|
638 |
-
* @package Secure WordPress
|
639 |
-
*/
|
640 |
-
public function remove_wp_version_on_admin()
|
641 |
-
{
|
642 |
-
if ( !current_user_can('update_plugins') && is_admin() ) {
|
643 |
-
wp_enqueue_script( 'remove-wp-version', $this->get_plugins_url( 'js/remove_wp_version.js', __FILE__ ), array('jquery') );
|
644 |
-
remove_action( 'update_footer', 'core_update_footer' );
|
645 |
-
}
|
646 |
-
}
|
647 |
-
|
648 |
-
/**
|
649 |
-
* remove core-Update-Information
|
650 |
-
*
|
651 |
-
* @package Secure WordPress
|
652 |
-
*/
|
653 |
-
public function remove_core_update()
|
654 |
-
{
|
655 |
-
if ( !current_user_can('update_plugins') )
|
656 |
-
{
|
657 |
-
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_notices', 'maintenance_nag' );" ) );
|
658 |
-
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_notices', 'update_nag', 3 );" ) );
|
659 |
-
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', '_maybe_update_core' );" ) );
|
660 |
-
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ) );
|
661 |
-
add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
|
662 |
-
remove_action( 'wp_version_check', 'wp_version_check' );
|
663 |
-
remove_action( 'admin_init', '_maybe_update_core' );
|
664 |
-
add_filter( 'pre_transient_update_core', create_function( '$a', "return null;" ) );
|
665 |
-
// 3.0
|
666 |
-
add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );
|
667 |
-
//wp_clear_scheduled_hook( 'wp_version_check' );
|
668 |
-
}
|
669 |
-
}
|
670 |
-
|
671 |
-
/**
|
672 |
-
* remove plugin-Update-Information
|
673 |
-
*
|
674 |
-
* @package Secure WordPress
|
675 |
-
*/
|
676 |
-
public function remove_plugin_update()
|
677 |
-
{
|
678 |
-
if ( !current_user_can('update_plugins') )
|
679 |
-
{
|
680 |
-
wp_enqueue_style( 'remove-update-plugins', $this->get_plugins_url( 'css/remove_update_plugins.css', __FILE__ ) );
|
681 |
-
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', 'wp_plugin_update_rows' );" ), 2 );
|
682 |
-
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', '_maybe_update_plugins' );" ), 2 );
|
683 |
-
add_action( 'admin_menu', create_function( '$a', "remove_action( 'load-plugins.php', 'wp_update_plugins' );" ) );
|
684 |
-
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', 'wp_update_plugins' );" ), 2 );
|
685 |
-
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_update_plugins' );" ), 2 );
|
686 |
-
add_filter( 'pre_option_update_plugins', create_function( '$a', "return null;" ) );
|
687 |
-
remove_action( 'load-plugins.php', 'wp_update_plugins' );
|
688 |
-
remove_action( 'load-update.php', 'wp_update_plugins' );
|
689 |
-
remove_action( 'admin_init', '_maybe_update_plugins' );
|
690 |
-
remove_action( 'wp_update_plugins', 'wp_update_plugins' );
|
691 |
-
// 3.0
|
692 |
-
remove_action( 'load-update-core.php', 'wp_update_plugins' );
|
693 |
-
add_filter( 'pre_transient_update_plugins', create_function( '$a', "return null;" ) );
|
694 |
-
//wp_clear_scheduled_hook( 'wp_update_plugins' );
|
695 |
-
}
|
696 |
-
}
|
697 |
-
|
698 |
-
/**
|
699 |
-
* remove theme-Update-Information
|
700 |
-
*
|
701 |
-
* @package Secure WordPress
|
702 |
-
*/
|
703 |
-
public function remove_theme_update()
|
704 |
-
{
|
705 |
-
if ( !current_user_can('edit_themes') )
|
706 |
-
{
|
707 |
-
remove_action( 'load-themes.php', 'wp_update_themes' );
|
708 |
-
remove_action( 'load-update.php', 'wp_update_themes' );
|
709 |
-
remove_action( 'admin_init', '_maybe_update_themes' );
|
710 |
-
remove_action( 'wp_update_themes', 'wp_update_themes' );
|
711 |
-
// 3.0
|
712 |
-
remove_action( 'load-update-core.php', 'wp_update_themes' );
|
713 |
-
//wp_clear_scheduled_hook( 'wp_update_themes' );
|
714 |
-
add_filter( 'pre_transient_update_themes', create_function( '$a', "return null;" ) );
|
715 |
-
}
|
716 |
-
}
|
717 |
-
|
718 |
-
/**
|
719 |
-
* remove error-div
|
720 |
-
*
|
721 |
-
* @package Secure WordPress
|
722 |
-
*/
|
723 |
-
public function remove_error_div()
|
724 |
-
{
|
725 |
-
global $wp_version;
|
726 |
-
|
727 |
-
echo "\n";
|
728 |
-
echo '<link rel="stylesheet" type="text/css" href="';
|
729 |
-
echo $this->get_plugins_url( 'css/remove_login.css', __FILE__ );
|
730 |
-
echo '" />';
|
731 |
-
echo "\n";
|
732 |
-
}
|
733 |
-
|
734 |
-
/**
|
735 |
-
* add string in blog for WP scanner
|
736 |
-
*
|
737 |
-
* @package Secure WordPress
|
738 |
-
*/
|
739 |
-
public function wp_scanner() { echo '<!-- wpscanner -->' . "\n"; }
|
740 |
-
|
741 |
-
/**
|
742 |
-
* Removes the version parameter from urls
|
743 |
-
*
|
744 |
-
* @param string $src Original script URI
|
745 |
-
* @return string
|
746 |
-
*/
|
747 |
-
public function filter_script_loader($src)
|
748 |
-
{
|
749 |
-
if ( is_admin() ) { return $src; }
|
750 |
-
|
751 |
-
// Separate the version parameter.
|
752 |
-
$src = explode('?ver=' . $this->wpversion, $src);
|
753 |
-
|
754 |
-
// Just the URI without the query string.
|
755 |
-
return $src[0];
|
756 |
-
}
|
757 |
-
|
758 |
-
/**
|
759 |
-
* block bad queries
|
760 |
-
*
|
761 |
-
* @package Secure WordPress
|
762 |
-
* @see http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/
|
763 |
-
* @author Jeff Starr
|
764 |
-
*/
|
765 |
-
public function wp_against_malicious_url_request()
|
766 |
-
{
|
767 |
-
global $user_ID;
|
768 |
-
|
769 |
-
if ($user_ID)
|
770 |
-
{
|
771 |
-
if ( !current_user_can('manage_options') ) {
|
772 |
-
if (strlen($_SERVER['REQUEST_URI']) > 255 ||
|
773 |
-
stripos($_SERVER['REQUEST_URI'], "eval(") ||
|
774 |
-
stripos($_SERVER['REQUEST_URI'], "CONCAT") ||
|
775 |
-
stripos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||
|
776 |
-
stripos($_SERVER['REQUEST_URI'], "base64"))
|
777 |
-
{
|
778 |
-
if (!headers_sent()) {
|
779 |
-
header("HTTP/1.1 414 Request-URI Too Long");
|
780 |
-
header("Status: 414 Request-URI Too Long");
|
781 |
-
header("Connection: Close");
|
782 |
-
}
|
783 |
-
exit;
|
784 |
-
}
|
785 |
-
}
|
786 |
-
}
|
787 |
-
}
|
788 |
-
|
789 |
-
/**
|
790 |
-
* update options
|
791 |
-
*
|
792 |
-
* @package Secure WordPress
|
793 |
-
*/
|
794 |
-
public function swp_update()
|
795 |
-
{
|
796 |
-
if ( !current_user_can('manage_options') ) {
|
797 |
-
wp_die( __('Options not updated - you don‘t have the privileges to do this!', FB_SWP_TEXTDOMAIN) );
|
798 |
-
}
|
799 |
-
|
800 |
-
//cross check the given referer
|
801 |
-
check_admin_referer('secure_wp_settings_form');
|
802 |
-
|
803 |
-
$this->update();
|
804 |
-
|
805 |
-
$referer = str_replace('&update=true&update=true', '', $_POST['_wp_http_referer'] );
|
806 |
-
wp_redirect($referer . '&update=true' );
|
807 |
-
}
|
808 |
-
|
809 |
-
/**
|
810 |
-
* uninstall options
|
811 |
-
*
|
812 |
-
* @package Secure WordPress
|
813 |
-
*/
|
814 |
-
public function swp_uninstall()
|
815 |
-
{
|
816 |
-
if ( !current_user_can('manage_options') ) {
|
817 |
-
wp_die( __('Entries were not deleted - you don‘t have the privileges to do this!', FB_SWP_TEXTDOMAIN) );
|
818 |
-
}
|
819 |
-
|
820 |
-
//cross check the given referer
|
821 |
-
check_admin_referer('secure_wp_uninstall_form');
|
822 |
-
|
823 |
-
if ( isset($_POST['deinstall_yes']) ) {
|
824 |
-
$this->deactivate();
|
825 |
-
}
|
826 |
-
else { wp_die( __('Entries were not deleted - check the checkbox!', FB_SWP_TEXTDOMAIN) ); }
|
827 |
-
|
828 |
-
wp_redirect( 'plugins.php' );
|
829 |
-
}
|
830 |
-
|
831 |
-
/**
|
832 |
-
* display options page in backende
|
833 |
-
*
|
834 |
-
* @package Secure WordPress
|
835 |
-
*/
|
836 |
-
public function display_page()
|
837 |
-
{
|
838 |
-
global $wp_version;
|
839 |
-
|
840 |
-
if ( isset($_POST['action']) && 'deinstall' == $_POST['action'] ) {
|
841 |
-
check_admin_referer('secure_wp_deinstall_form');
|
842 |
-
if ( current_user_can('manage_options') && isset($_POST['deinstall_yes']) )
|
843 |
-
{
|
844 |
-
$this->deactivate();
|
845 |
-
?>
|
846 |
-
<div id="message" class="updated fade"><p><?php _e('All entries in the database were cleared.', FB_SWP_TEXTDOMAIN); ?></p></div>
|
847 |
-
<?php
|
848 |
-
}
|
849 |
-
else {
|
850 |
-
?>
|
851 |
-
<div id="message" class="error"><p><?php _e('Entries were not deleted - check the checkbox or you don‘t have the privileges to do this!', FB_SWP_TEXTDOMAIN); ?></p></div>
|
852 |
-
<?php
|
853 |
-
}
|
854 |
-
}
|
855 |
-
|
856 |
-
$secure_wp_error = $GLOBALS['WPlize']->get_option('secure_wp_error');
|
857 |
-
$secure_wp_version = $GLOBALS['WPlize']->get_option('secure_wp_version');
|
858 |
-
$secure_wp_admin_version = $GLOBALS['WPlize']->get_option('secure_wp_admin_version');
|
859 |
-
$secure_wp_index = $GLOBALS['WPlize']->get_option('secure_wp_index');
|
860 |
-
$secure_wp_rsd = $GLOBALS['WPlize']->get_option('secure_wp_rsd');
|
861 |
-
$secure_wp_wlw = $GLOBALS['WPlize']->get_option('secure_wp_wlw');
|
862 |
-
$secure_wp_rcu = $GLOBALS['WPlize']->get_option('secure_wp_rcu');
|
863 |
-
$secure_wp_rpu = $GLOBALS['WPlize']->get_option('secure_wp_rpu');
|
864 |
-
$secure_wp_rtu = $GLOBALS['WPlize']->get_option('secure_wp_rtu');
|
865 |
-
$secure_wp_wps = $GLOBALS['WPlize']->get_option('secure_wp_wps');
|
866 |
-
$secure_wp_amurlr = $GLOBALS['WPlize']->get_option('secure_wp_amurlr');
|
867 |
-
|
868 |
-
$secure_wp_win_settings = $GLOBALS['WPlize']->get_option('secure_wp_win_settings');
|
869 |
-
$secure_wp_win_about = $GLOBALS['WPlize']->get_option('secure_wp_win_about');
|
870 |
-
$secure_wp_win_opt = $GLOBALS['WPlize']->get_option('secure_wp_win_opt');
|
871 |
-
?>
|
872 |
-
<div class="wrap">
|
873 |
-
<div id="icon-acunetix" class="icon32" style="background: url('<?php echo $this->get_plugins_url( 'img/acunetix.png', __FILE__ ); ?>') no-repeat;"><br /></div>
|
874 |
-
<h2><?php _e('Secure WordPress by WebsiteDefender', FB_SWP_TEXTDOMAIN); ?></h2>
|
875 |
-
<br class="clear" />
|
876 |
-
|
877 |
-
<div id="poststuff" class="ui-sortable meta-box-sortables poststuff poststuff_left">
|
878 |
-
<div id="secure_wp_win_settings" class="postbox <?php echo $secure_wp_win_settings ?>" >
|
879 |
-
<div class="handlediv" title="<?php _e('Click to toggle'); ?>"><br/></div>
|
880 |
-
<h3><?php _e('Configuration', FB_SWP_TEXTDOMAIN); ?></h3>
|
881 |
-
<div class="inside">
|
882 |
-
|
883 |
-
<form name="secure_wp_config-update" method="post" action="admin-post.php">
|
884 |
-
<?php if (function_exists('wp_nonce_field') === true) {wp_nonce_field('secure_wp_settings_form');} ?>
|
885 |
-
|
886 |
-
<table class="form-table">
|
887 |
-
|
888 |
-
<tr valign="top">
|
889 |
-
<th scope="row">
|
890 |
-
<label for="secure_wp_error"><?php _e('Error-Messages', FB_SWP_TEXTDOMAIN); ?></label>
|
891 |
-
</th>
|
892 |
-
<td>
|
893 |
-
<input type="checkbox" name="secure_wp_error" id="secure_wp_error" value="1" <?php if ( $secure_wp_error == '1') { echo "checked='checked'"; } ?> />
|
894 |
-
<?php _e('Deactivates tooltip and error message at login of WordPress', FB_SWP_TEXTDOMAIN); ?>
|
895 |
-
</td>
|
896 |
-
</tr>
|
897 |
-
|
898 |
-
<tr valign="top">
|
899 |
-
<th scope="row">
|
900 |
-
<label for="secure_wp_version"><?php _e('WordPress Version', FB_SWP_TEXTDOMAIN); ?></label>
|
901 |
-
</th>
|
902 |
-
<td>
|
903 |
-
<input type="checkbox" name="secure_wp_version" id="secure_wp_version" value="1" <?php if ( $secure_wp_version == '1') { echo "checked='checked'"; } ?> />
|
904 |
-
<?php _e('Removes version of WordPress in all areas, including feed, not in admin', FB_SWP_TEXTDOMAIN); ?>
|
905 |
-
</td>
|
906 |
-
</tr>
|
907 |
-
|
908 |
-
<tr valign="top">
|
909 |
-
<th scope="row">
|
910 |
-
<label for="secure_wp_admin_version"><?php _e('WordPress Version in Backend', FB_SWP_TEXTDOMAIN); ?></label>
|
911 |
-
</th>
|
912 |
-
<td>
|
913 |
-
<input type="checkbox" name="secure_wp_admin_version" id="secure_wp_admin_version" value="1" <?php if ( $secure_wp_admin_version == '1') { echo "checked='checked'"; } ?> />
|
914 |
-
<?php _e('Removes version of WordPress on admin-area for non-admins. Show WordPress version of your blog only to users with the rights to edit plugins.', FB_SWP_TEXTDOMAIN); ?>
|
915 |
-
</td>
|
916 |
-
</tr>
|
917 |
-
|
918 |
-
<tr valign="top">
|
919 |
-
<th scope="row">
|
920 |
-
<label for="secure_wp_index"><?php _e('index.php', FB_SWP_TEXTDOMAIN); ?></label>
|
921 |
-
</th>
|
922 |
-
<td>
|
923 |
-
<input type="checkbox" name="secure_wp_index" id="secure_wp_index" value="1" <?php if ( $secure_wp_index == '1') { echo "checked='checked'"; } ?> />
|
924 |
-
<?php _e('creates an <code>index.php</code> file in <code>/plugins/</code> and <code>/themes/</code> to keep it from showing your directory listing', FB_SWP_TEXTDOMAIN); ?>
|
925 |
-
</td>
|
926 |
-
</tr>
|
927 |
-
|
928 |
-
<tr valign="top">
|
929 |
-
<th scope="row">
|
930 |
-
<label for="secure_wp_rsd"><?php _e('Really Simple Discovery', FB_SWP_TEXTDOMAIN); ?></label>
|
931 |
-
</th>
|
932 |
-
<td>
|
933 |
-
<input type="checkbox" name="secure_wp_rsd" id="secure_wp_rsd" value="1" <?php if ( $secure_wp_rsd == '1') { echo "checked='checked'"; } ?> />
|
934 |
-
<?php _e('Remove Really Simple Discovery link in <code>wp_head</code> of the frontend', FB_SWP_TEXTDOMAIN); ?>
|
935 |
-
</td>
|
936 |
-
</tr>
|
937 |
-
|
938 |
-
<tr valign="top">
|
939 |
-
<th scope="row">
|
940 |
-
<label for="secure_wp_wlw"><?php _e('Windows Live Writer', FB_SWP_TEXTDOMAIN); ?></label>
|
941 |
-
</th>
|
942 |
-
<td>
|
943 |
-
<input type="checkbox" name="secure_wp_wlw" id="secure_wp_wlw" value="1" <?php if ( $secure_wp_wlw == '1') { echo "checked='checked'"; } ?> />
|
944 |
-
<?php _e('Remove Windows Live Writer link in <code>wp_head</code> of the frontend', FB_SWP_TEXTDOMAIN); ?>
|
945 |
-
</td>
|
946 |
-
</tr>
|
947 |
-
|
948 |
-
<tr valign="top">
|
949 |
-
<th scope="row">
|
950 |
-
<label for="secure_wp_rcu"><?php _e('Core Update', FB_SWP_TEXTDOMAIN); ?></label>
|
951 |
-
</th>
|
952 |
-
<td>
|
953 |
-
<input type="checkbox" name="secure_wp_rcu" id="secure_wp_rcu" value="1" <?php if ( $secure_wp_rcu == '1') { echo "checked='checked'"; } ?> />
|
954 |
-
<?php _e('Remove WordPress Core update for non-admins. Show message of a new WordPress version only to users with the right to update.', FB_SWP_TEXTDOMAIN); ?>
|
955 |
-
</td>
|
956 |
-
</tr>
|
957 |
-
|
958 |
-
<tr valign="top">
|
959 |
-
<th scope="row">
|
960 |
-
<label for="secure_wp_rpu"><?php _e('Plugin Update', FB_SWP_TEXTDOMAIN); ?></label>
|
961 |
-
</th>
|
962 |
-
<td>
|
963 |
-
<input type="checkbox" name="secure_wp_rpu" id="secure_wp_rpu" value="1" <?php if ( $secure_wp_rpu == '1') { echo "checked='checked'"; } ?> />
|
964 |
-
<?php _e('Remove the plugin update for non-admins. Show message for a new version of a plugin in the install of your blog only to users with the rights to edit plugins.', FB_SWP_TEXTDOMAIN); ?>
|
965 |
-
</td>
|
966 |
-
</tr>
|
967 |
-
|
968 |
-
<?php if ( version_compare($wp_version, "2.8alpha", ">=") ) { ?>
|
969 |
-
<tr valign="top">
|
970 |
-
<th scope="row">
|
971 |
-
<label for="secure_wp_rtu"><?php _e('Theme Update', FB_SWP_TEXTDOMAIN); ?></label>
|
972 |
-
</th>
|
973 |
-
<td>
|
974 |
-
<input type="checkbox" name="secure_wp_rtu" id="secure_wp_rtu" value="1" <?php if ( $secure_wp_rtu == '1') { echo "checked='checked'"; } ?> />
|
975 |
-
<?php _e('Remove the theme update for non-admins. Show message for a new version of a theme in the install of your blog only to users with the rights to edit themes.', FB_SWP_TEXTDOMAIN); ?>
|
976 |
-
</td>
|
977 |
-
</tr>
|
978 |
-
<?php } ?>
|
979 |
-
|
980 |
-
<tr valign="top">
|
981 |
-
<th scope="row">
|
982 |
-
<label for="secure_wp_wps"><?php _e('WP Version on Scripts/Styles', FB_SWP_TEXTDOMAIN); ?></label>
|
983 |
-
</th>
|
984 |
-
<td>
|
985 |
-
<input type="checkbox" name="secure_wp_wps" id="secure_wp_wps" value="1" <?php if ( $secure_wp_wps == '1') { echo "checked='checked'"; } ?> />
|
986 |
-
<?php _e('Removes version of WordPress on the url form scripts and stylesheets only on frontend.', FB_SWP_TEXTDOMAIN); ?>
|
987 |
-
</td>
|
988 |
-
</tr>
|
989 |
-
|
990 |
-
<tr valign="top">
|
991 |
-
<th scope="row">
|
992 |
-
<label for="secure_wp_amurlr"><?php _e('Block bad queries', FB_SWP_TEXTDOMAIN); ?></label>
|
993 |
-
</th>
|
994 |
-
<td>
|
995 |
-
<input type="checkbox" name="secure_wp_amurlr" id="secure_wp_amurlr" value="1" <?php if ( $secure_wp_amurlr == '1') { echo "checked='checked'"; } ?> />
|
996 |
-
<?php _e('Protect WordPress against malicious URL requests', FB_SWP_TEXTDOMAIN); ?>
|
997 |
-
</td>
|
998 |
-
</tr>
|
999 |
-
|
1000 |
-
<?php
|
1001 |
-
//# 10/04/2011
|
1002 |
-
$_checked = false;
|
1003 |
-
$wsdRssWidgetVisible = get_option('WSD-RSS-WGT-DISPLAY');
|
1004 |
-
if (empty($wsdRssWidgetVisible) || $wsdRssWidgetVisible=='yes') {
|
1005 |
-
add_option('WSD-RSS-WGT-DISPLAY', 'yes');
|
1006 |
-
$_checked = true;
|
1007 |
-
}
|
1008 |
-
else {
|
1009 |
-
if (strtolower($wsdRssWidgetVisible) == 'no') {
|
1010 |
-
$_checked = false;
|
1011 |
-
}
|
1012 |
-
}
|
1013 |
-
?>
|
1014 |
-
<tr valign="top">
|
1015 |
-
<th scope="row">
|
1016 |
-
<label for="show_rss_widget"><?php _e('Dashboard RSS widget', FB_SWP_TEXTDOMAIN); ?></label>
|
1017 |
-
</th>
|
1018 |
-
<td>
|
1019 |
-
<input type="checkbox" name="show_rss_widget" id="show_rss_widget" <?php echo ($_checked ? 'checked="checked"' : '');?> />
|
1020 |
-
<label for="show_rss_widget"><?php _e("Show the WebsiteDefender News dashboard widget", FB_SWP_TEXTDOMAIN);?></label>
|
1021 |
-
</td>
|
1022 |
-
</tr>
|
1023 |
-
</table>
|
1024 |
-
|
1025 |
-
<p class="submit">
|
1026 |
-
<input type="hidden" name="action" value="swp_update" />
|
1027 |
-
<input type="submit" name="Submit" value="<?php _e('Save Changes', FB_SWP_TEXTDOMAIN); ?> »" class="button-primary" />
|
1028 |
-
</p>
|
1029 |
-
</form>
|
1030 |
-
|
1031 |
-
</div>
|
1032 |
-
</div>
|
1033 |
-
</div>
|
1034 |
-
|
1035 |
-
<div id="poststuff" class="ui-sortable meta-box-sortables poststuff">
|
1036 |
-
<div id="secure_wp_win_opt" class="postbox <?php echo $secure_wp_win_opt ?>" >
|
1037 |
-
<div class="handlediv" title="<?php _e('Click to toggle', FB_SWP_TEXTDOMAIN); ?>"><br/></div>
|
1038 |
-
<h3><?php _e("About WebsiteDefender.com", FB_SWP_TEXTDOMAIN);?></h3>
|
1039 |
-
<div class="inside">
|
1040 |
-
<?php
|
1041 |
-
/*
|
1042 |
-
* $rev #1 07/15/2011 k$
|
1043 |
-
* >> Display the WSD form
|
1044 |
-
*/
|
1045 |
-
global $swwsd;
|
1046 |
-
$swwsd->wsd_render_main();
|
1047 |
-
?>
|
1048 |
-
</div>
|
1049 |
-
</div>
|
1050 |
-
</div>
|
1051 |
-
|
1052 |
-
<div id="poststuff" class="ui-sortable meta-box-sortables poststuff poststuff_left poststuff_clear">
|
1053 |
-
<div id="secure_wp_win_opt" class="postbox <?php echo $secure_wp_win_opt ?>" >
|
1054 |
-
<div class="handlediv" title="<?php _e('Click to toggle'); ?>"><br/></div>
|
1055 |
-
<h3 id="uninstall"><?php _e('Clear Options', FB_SWP_TEXTDOMAIN) ?></h3>
|
1056 |
-
<div class="inside">
|
1057 |
-
|
1058 |
-
<p><?php _e('Click this button to delete the settings of this plugin. Deactivating Secure WordPress plugin removes any data that may have been created.', FB_SWP_TEXTDOMAIN); ?></p>
|
1059 |
-
<form name="deinstall_options" method="post" action="admin-post.php">
|
1060 |
-
<?php if (function_exists('wp_nonce_field') === true) wp_nonce_field('secure_wp_uninstall_form'); ?>
|
1061 |
-
<p id="submitbutton">
|
1062 |
-
<input type="hidden" name="action" value="swp_uninstall" />
|
1063 |
-
<input type="submit" value="<?php _e('Delete Options', FB_SWP_TEXTDOMAIN); ?> »" class="button-secondary" />
|
1064 |
-
<input type="checkbox" name="deinstall_yes" />
|
1065 |
-
</p>
|
1066 |
-
</form>
|
1067 |
-
|
1068 |
-
</div>
|
1069 |
-
</div>
|
1070 |
-
</div>
|
1071 |
-
|
1072 |
-
<script type="text/javascript">var wordpress_site_name = "<?php echo htmlentities(get_bloginfo('siteurl'));?>"</script>
|
1073 |
-
<script type="text/javascript">
|
1074 |
-
jQuery(document).ready(function($) {
|
1075 |
-
$('.postbox h3').click(function() { $($(this).parent().get(0)).toggleClass('closed'); } );
|
1076 |
-
$('.postbox .handlediv').click(function() { $($(this).parent().get(0)).toggleClass('closed'); } );
|
1077 |
-
$('.postbox.close-me').each(function() {
|
1078 |
-
$(this).addClass("closed");
|
1079 |
-
});
|
1080 |
-
});
|
1081 |
-
</script>
|
1082 |
-
<script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
|
1083 |
-
<script type="text/javascript" src="https://dashboard.websitedefender.com/swpuser.php?FIELDS"></script>
|
1084 |
-
<script type="text/javascript" src="<?php echo $this->get_plugins_url( 'js/prepare_new_user_form.js', __FILE__ )?>"></script>
|
1085 |
-
<script type="text/javascript" src="<?php echo $this->get_plugins_url( 'js/verify_form.js', __FILE__ )?>"></script>
|
1086 |
-
|
1087 |
-
</div>
|
1088 |
-
<?php
|
1089 |
-
}
|
1090 |
-
}
|
1091 |
-
/* End class: SecureWP.php */
|
1092 |
-
|
1093 |
-
}
|
1094 |
-
/* End if (!class_exists('SecureWP')) */
|
1095 |
-
|
1096 |
-
|
1097 |
-
if ( class_exists('WPlize') && function_exists('is_admin') ) {
|
1098 |
-
$SecureWP = new SecureWP();
|
1099 |
-
}
|
1100 |
-
|
1101 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
swpa-settings.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(! defined('SWPA_PLUGIN_PREFIX')) return;
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Informational alert. Value: 0
|
5 |
+
*/
|
6 |
+
define('SWPA_PLUGIN_ALERT_INFO', 0);
|
7 |
+
/**
|
8 |
+
* Low alert. Value: 1
|
9 |
+
*/
|
10 |
+
define('SWPA_PLUGIN_ALERT_LOW', 1);
|
11 |
+
/**
|
12 |
+
* Medium alert. Value: 2
|
13 |
+
*/
|
14 |
+
define('SWPA_PLUGIN_ALERT_MEDIUM', 2);
|
15 |
+
/**
|
16 |
+
* Critical alert. Value: 3
|
17 |
+
*/
|
18 |
+
define('SWPA_PLUGIN_ALERT_CRITICAL', 3);
|
19 |
+
|
20 |
+
define('SWPA_PLUGIN_ALERT_TYPE_OVERWRITE', 0);
|
21 |
+
define('SWPA_PLUGIN_ALERT_TYPE_STACK', 1);
|
22 |
+
|
23 |
+
//#! The max number of stacked alerts to keep
|
24 |
+
define('SWPA_PLUGIN_ALERT_STACK_MAX_KEEP', 10);
|
25 |
+
|
26 |
+
//#! Database settings
|
27 |
+
define('SWPA_PLUGIN_ALERT_TABLE_NAME', '_wsd_plugin_alerts');
|
28 |
+
//
|
29 |
+
define('SWPA_PLUGIN_LIVE_TRAFFIC_TABLE_NAME', '_wsd_plugin_live_traffic');
|
30 |
+
|
31 |
+
define('SWPA_PLUGIN_BACKUPS_DIR', SWPA_PLUGIN_DIR.'res/backups/');
|
32 |
+
|
33 |
+
define('SWPA_PLUGIN_TEXT_DOMAIN', 'WSDWP_SECURITY');
|
34 |
+
|
35 |
+
define('SWPA_PLUGIN_SETTINGS_OPTION_NAME', 'wsdplugin_settings');
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Set the path to the WebsiteDefender.com feed
|
39 |
+
*/
|
40 |
+
define('SWPA_PLUGIN_BLOG_FEED','http://www.acunetix.com/blog/');
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Sets the list of files to check for permissions
|
44 |
+
* @type array
|
45 |
+
*/
|
46 |
+
$_wsdplugin_base_path = trailingslashit(ABSPATH);
|
47 |
+
$_wsdplugin_wpAdmin = $_wsdplugin_base_path.'wp-admin';
|
48 |
+
$_wsdplugin_wpContent = $_wsdplugin_base_path.'wp-content';
|
49 |
+
$_wsdplugin_wpIncludes = $_wsdplugin_base_path.'wp-includes';
|
50 |
+
$_wsdpluginWpConfigPath ='';
|
51 |
+
//$_wsdplugin_base_path.'wp-config.php';
|
52 |
+
if(! is_file($_wsdpluginWpConfigPath)){
|
53 |
+
// try one level up
|
54 |
+
$_tmpPath = realpath($_wsdplugin_base_path.'../wp-config.php');
|
55 |
+
if(is_file($_tmpPath)){
|
56 |
+
$_wsdpluginWpConfigPath = $_tmpPath;
|
57 |
+
}
|
58 |
+
// not found
|
59 |
+
else { $_wsdpluginWpConfigPath = ''; }
|
60 |
+
}
|
61 |
+
|
62 |
+
$acxFileList = array(
|
63 |
+
//@@ Directories
|
64 |
+
'root directory' => array( 'filePath' => $_wsdplugin_base_path, 'suggestedPermissions' => '0755'),
|
65 |
+
'wp-admin' => array( 'filePath' => $_wsdplugin_wpAdmin, 'suggestedPermissions' => '0755'),
|
66 |
+
'wp-content' => array( 'filePath' => $_wsdplugin_wpContent, 'suggestedPermissions' => '0755'),
|
67 |
+
'wp-includes' => array( 'filePath' => $_wsdplugin_wpIncludes, 'suggestedPermissions' => '0755'),
|
68 |
+
|
69 |
+
//@@ Files
|
70 |
+
'.htaccess' => array( 'filePath' => $_wsdplugin_base_path.'.htaccess', 'suggestedPermissions' => '0644'),
|
71 |
+
'readme.html' => array( 'filePath' => $_wsdplugin_base_path.'readme.html', 'suggestedPermissions' => '0400'),
|
72 |
+
'wp-config.php' => array( 'filePath' => $_wsdpluginWpConfigPath, 'suggestedPermissions' => '0644'),
|
73 |
+
'wp-admin/index.php' => array( 'filePath' => $_wsdplugin_wpAdmin.'/index.php', 'suggestedPermissions' => '0644'),
|
74 |
+
'wp-admin/.htaccess' => array( 'filePath' => $_wsdplugin_wpAdmin.'/.htaccess', 'suggestedPermissions' => '0644'),
|
75 |
+
);
|
uninstall.php
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
<?php if( !defined( 'ABSPATH') && !defined('WP_UNINSTALL_PLUGIN') ) { exit(); }
|
2 |
-
/*
|
3 |
-
* Delete options
|
4 |
-
*/
|
5 |
-
delete_option('secure-wp');
|
6 |
-
|
7 |
-
// this is a shared option so if there are
|
8 |
-
// any other plug-ins installed, then don't
|
9 |
-
// delete it.
|
10 |
-
$__1 = ABSPATH.'wp-content/plugins/websitedefender-wordpress-security';
|
11 |
-
$__2 = ABSPATH.'wp-content/plugins/wp-security-scan';
|
12 |
-
if (!is_dir($__1) || !is_dir($__2)) { delete_option('wsd_feed_data'); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|