· 6 years ago · Mar 09, 2020, 10:26 PM
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <title>Captcha</title>
6 <link rel="stylesheet"
7 href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
8 integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
9 crossorigin="anonymous">
10 <link href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII="
11 rel="icon" type="image/x-icon"/>
12 <link href="https://fonts.googleapis.com/css?family=Noto+Sans"
13 rel="stylesheet">
14 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
15 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
16
17 <script src="https://www.google.com/recaptcha/api.js?hl=en"
18 async defer>
19 </script>
20
21
22 <style>
23 html, body {
24 height: 100%;
25 }
26
27 .wraper {
28 padding-bottom: 56px;
29 position: relative;
30 min-height: 100%;
31 }
32 .invisible_mode .wraper {
33 display: none;
34 }
35
36 .header {
37 height: 63px;
38 background-color: white;
39 }
40
41 .middle {
42 height: 186px;
43 background-color: rgba(55, 171, 99, 0.75);
44 }
45
46 .bottom {
47 background-color: #f2f2f2;
48 position: absolute;
49 bottom: 0px;
50 top: 249px;
51 width: 100%;
52 }
53
54 .captcha_absolute {
55 margin-top: -153px;
56 }
57
58 .captcha_div {
59 width: 485px;
60 margin: 0 auto;
61 box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.18), 0 0 8px 0 rgba(0, 0, 0, 0.12);
62 background-color: white;
63 padding: 47px 48px 18px 48px;
64 position: relative;
65 }
66
67 .cap_head {
68 border-bottom: 1px solid #d8d8d8;
69 padding-bottom: 17px;
70 margin: 0 10px 20px 10px;
71 }
72
73 .logo_shield {
74 display: inline-block;
75 }
76
77 .logo_shield img {
78 width: 54px;
79 height: 72px;
80 }
81
82 .cap_side {
83 width: 295px;
84 }
85
86 h4#text {
87 font-size: 20px;
88 line-height: 1.38;
89 color: #000000;
90 font-weight: bold;
91 font-family: Noto Sans, sans-serif;
92 margin: 6px 0 0 0;
93 }
94
95 .cap_text {
96 font-family: Noto Sans, sans-serif;
97 font-weight: normal;
98 font-style: normal;
99 font-stretch: normal;
100 line-height: 1.65;
101 color: #000000;
102 }
103
104 p.cap_note {
105 font-size: 20px;
106 margin: 0;
107 }
108
109 .captcha_passed h4#text, .captcha_passed p.cap_note { font-size: 18px }
110
111 .cap_mess {
112 font-size: 13px;
113 }
114
115 .powered_span {
116 position: absolute;
117 bottom: 15px;
118 width: 100%;
119 text-align: center;
120 height: 18px;
121 opacity: 0.45;
122 font-family: Noto Sans;
123 font-size: 13px;
124 font-weight: normal;
125 font-style: normal;
126 font-stretch: normal;
127 color: #1d1d1d;
128 }
129
130 /* A few hacks for re-captcha */
131
132 .invisible_mode .re-captcha-wrapper { /* shift reCAPTCHA below our text */
133 top: 350px !important;
134 }
135 .invisible_mode .re-captcha-wrapper > div:first-child { /* hide reCAPTCHA mask */
136 display: none !important;
137 }
138 .visible_mode #re-captcha { /* align to center */
139 width: 305px;
140 margin: 0 auto;
141 }
142
143 /* Imunify360 preloader */
144
145 .big_loader {
146 position: absolute;
147 left: 0;
148 right: 0;
149 top: 50%;
150 width: 90px;
151 height: 90px;
152 margin: -45px auto 0 auto;
153 opacity: 0.55;
154 }
155 .visible_mode .big_loader {
156 display: none;
157 }
158
159 .rot {
160 -webkit-animation: spin 2s ease-in-out infinite;
161 animation: spin 2s ease-in-out infinite
162 }
163
164 @keyframes spin {
165 0% {
166 -webkit-transform: rotate(0deg);
167 -moz-transform: rotate(0deg);
168 -ms-transform: rotate(0deg);
169 -o-transform: rotate(0deg);
170 transform: rotate(0deg);
171 }
172 100% {
173 -webkit-transform: rotate(360deg);
174 -moz-transform: rotate(360deg);
175 -ms-transform: rotate(360deg);
176 -o-transform: rotate(360deg);
177 transform: rotate(360deg);
178 }
179 }
180 </style>
181
182<!--
183This whole tempalte goes to inside <head></head> tags
184Modify this file to add javascript or css files for your page from customize/static folder
185Jinja2 (which is index.html template engine) is not allowed to use here.
186
187Please, restart captcha server after your changes.
188service imunify360-captcha restart
189service imunify360-captchaserver-nginx restart
190
191Example:
192<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
193Add your custom css from customize/static/ folder
194<link type="text/css" rel="stylesheet" href="static/my.css">
195-->
196</head>
197<body class="visible_mode">
198<div class="wraper">
199
200
201<!--
202You can this template as you wish
203Add your css, javascript, images and other static files in /customize/static/ folder
204And add css, javascript in head.tpl template.
205Jinja2 (which is index.html template engine) is not allowed to use here.
206
207Please, restart captcha server after your changes
208service imunify360-captcha restart
209service imunify360-captchaserver-nginx restart
210-->
211<div class="header">
212 <!-- Header of the index page -->
213</div>
214
215<div class="middle">
216 <!-- Body of the index page -->
217</div>
218
219<div class="bottom">
220 <!-- Footer of the index page -->
221 <span class="powered_span">Powered by Imunify360</span>
222</div>
223
224 <div class="captcha_absolute">
225 <div class="captcha_div">
226 <style>
227 .dropdown {
228 position: absolute;
229 top: 10px;
230 right: 0;
231 }
232
233 .dropdown .dropdown-toggle {
234 background-color: #fff;
235 border: none;
236 outline: none;
237 color: #858585;
238 font-size: 13px;
239 height: 32px;
240 line-height: 1;
241 transition: all 0.4s;
242 font-family: 'Noto Sans', sans-serif;
243 margin-right: 22px;
244 }
245
246 .dropdown .dropdown-toggle:hover {
247 background-color: #e7e7e7;
248 }
249
250 .dropdown .dropdown-menu-content {
251 background-color: #ffffff;
252 box-shadow: 0 2px 14px 0 rgba(0, 0, 0, 0.24);
253 border-width: 0px;
254 border-radius: 0;
255 padding: 11px 0 0;
256 overflow-y: scroll;
257 max-height: 365px;
258 margin: 0;
259 }
260
261 .dropdown .glyphicon {
262 margin-left: 6px;
263 top: 2px;
264 transition: 0.3s all;
265 }
266
267 .dropdown li {
268 height: 35px;
269 text-align: left;
270 padding-left: 24px;
271 font-size: 13px;
272 color: #4d4d4e;
273 line-height: 2.85;
274 font-family: 'Noto Sans', sans-serif;
275 }
276 .dropdown li:last-child {
277 margin-bottom: 14px;
278 }
279
280 .dropdown li.active {
281 font-weight: bold;
282 }
283
284 .dropdown li:focus, .dropdown li:hover {
285 color: #4d4d4e;
286 background-color: rgba(56, 171, 99, 0.11);
287 }
288
289 .dropdown .dropdown-menu-content > li:hover {
290 cursor: pointer;
291 }
292
293 .dropdown .dropdown-menu-container {
294 max-height: 365px;
295 overflow: hidden;
296 width: 164px;
297 padding: 0;
298 border: 0;
299 border-radius: 0;
300 box-shadow: 0 2px 14px 0 rgba(0, 0, 0, 0.24);
301 z-index: 5000000000;
302 }
303
304 .dropdown.open .glyphicon {
305 transform: rotate(180deg);
306 }
307</style>
308
309
310<div class="dropdown">
311 <button type="button" class="dropdown-toggle" data-toggle="dropdown"
312 aria-haspopup="true" aria-expanded="false">
313 <span class="dropdown-title">English</span>
314 <span class="glyphicon glyphicon-menu-down" aria-hidden="true"></span>
315 </button>
316 <div class="dropdown-menu dropdown-menu-container">
317 <ul class="dropdown-menu-content"></ul>
318 </div>
319</div>
320
321<script>
322 (function () {
323 var items = {
324 English: 'en',
325 Dutch: 'nl',
326 Ukrainian: 'uk',
327 Arabic: 'ar',
328 Italian: 'it',
329 Chinese: 'zh',
330 Polish: 'pl',
331 Danish: 'da',
332 Hungarian: 'hu',
333 Russian: 'ru',
334 French: 'fr',
335 Spanish: 'es',
336 Romanian: 'ro',
337 Greek: 'el',
338 Swedish: 'sv',
339 Turkish: 'tr',
340 Indonesian: 'id',
341 Portuguese: 'pt',
342 Hebrew: 'he',
343 German: 'de',
344 Malay: 'ms',
345 Norwegian: 'no',
346 Farsi: 'fa',
347 };
348 var currentLocale = $('html').attr('lang');
349
350 var currentLocaleName = Object.keys(items).find(function (key) {
351 return items[key] === currentLocale;
352 });
353
354 $('.dropdown-title').text(currentLocaleName);
355
356 $('.dropdown-menu-content')
357 .append(Object.keys(items).sort().map(function (item) {
358 return $('<li>').text(item);
359 }))
360 .click(function (e) {
361 var nextLocaleName = e.target.innerText;
362 if (nextLocaleName === currentLocaleName) {
363 e.stopPropagation();
364 } else {
365 document.cookie = 'locale=' + items[nextLocaleName] + ';path=/';
366 location.reload(true);
367 }
368
369 });
370
371 $([].find.call($('.dropdown-menu li'), function (item) {
372 return item.innerText === currentLocaleName;
373 })).addClass('active');
374
375 function insertParam(key, value) {
376 key = encodeURIComponent(key);
377 value = encodeURIComponent(value);
378
379 var kvp = document.location.search.substr(1).split('&');
380 if (kvp == '') {
381 document.location.search = '?' + key + '=' + value;
382 }
383 else {
384
385 var i = kvp.length;
386 var x;
387 while (i--) {
388 x = kvp[i].split('=');
389
390 if (x[0] === key) {
391 x[1] = value;
392 kvp[i] = x.join('=');
393 break;
394 }
395 }
396
397 if (i < 0) {
398 kvp[kvp.length] = [key, value].join('=');
399 }
400
401 //this will reload the page, it's likely better to store this until finished
402 document.location.search = kvp.join('&');
403 }
404 }
405 })();
406</script>
407
408 <div class="cap_head clearfix">
409 <div class="logo_shield">
410 <img src="/a9bc224bd710f56d27affffddc764239b58c3faa0/shield.png">
411 </div>
412 <div class="cap_side pull-right">
413 <h4 id="text">loadinlove.com</h4>
414 <p class="cap_note cap_text count_down">
415 is protected by Imunify360
416 </p>
417 </div>
418 </div>
419
420 <p class="cap_mess cap_text text-center">
421 We have noticed an unusual activity from your <b>IP 185.220.100.250</b> and blocked access to this website.
422 </p>
423
424 <p class="cap_mess cap_text text-center">
425 <b>Please confirm that you are not a robot</b>
426 </p>
427
428 <form class="form-group form-captcha">
429 <div id="re-captcha"
430 class="g-recaptcha"
431 data-sitekey="6LfwghwUAAAAAAYrFATHtss0Xe_bC7I6OWE_ayK4"
432 data-callback="check"
433 ></div>
434 </form>
435 </div>
436 </div>
437</div>
438
439
440<!-- imunify360 preloader -->
441<div class="big_loader">
442 <svg class="rot" width="90px" height="90px" viewBox="0 0 47 47"
443 version="1.1"
444 xmlns="http://www.w3.org/2000/svg"
445 xmlns:xlink="http://www.w3.org/1999/xlink">
446 <title>Loader</title>
447 <defs>
448 <polygon id="path-1"
449 points="0 0.375484146 0 15.7255695 15.7013244 15.7255695 15.7013244 0.375484146 0 0.375484146"></polygon>
450 </defs>
451 <g id="Page-1" stroke="none" stroke-width="1" fill="none"
452 fill-rule="evenodd">
453 <g id="Logo" transform="translate(-5.000000, -2.000000)">
454 <g id="Group-2" transform="translate(5.000000, 2.000000)">
455 <path d="M22.6150244,4.52988293 C23.1538049,3.06256585 23.6031707,1.59582195 24.231939,0.158882927 C25.1902805,2.22459024 25.8190488,4.43989512 26.7768171,6.47579756 C29.1417195,7.40376098 31.7164024,7.7929439 34.1116829,8.69110244 C28.9623171,11.2663585 23.7229634,13.7510537 18.4836098,16.176139 C19.7709512,12.2545049 21.2382683,8.4217122 22.6150244,4.52988293 L22.6150244,4.52988293 Z"
456 id="Fill-1" fill="#467C45"></path>
457 <path d="M13.7718598,8.94461585 C16.1424939,7.68077439 18.4500793,6.28968902 20.8207134,5.02527439 C18.9240915,10.8412378 16.7747012,16.5614817 14.8465549,22.3774451 C12.7292622,18.3950549 10.895689,14.2544695 8.9044939,10.2090305 C8.27228659,8.85004268 7.5455061,7.55353049 7.00844512,6.16359146 C9.31545732,6.95342073 11.4648476,8.24935976 13.7718598,8.94461585"
458 id="Fill-3" fill="#467C45"></path>
459 <path d="M24.2134256,15.0745049 C29.4602305,12.4969561 34.7379866,9.91940732 40.0157427,7.4031878 C39.1565598,9.61276098 38.1747183,11.7300537 37.2232549,13.9086756 C38.4504134,16.2099561 39.9544134,18.388578 41.0898646,20.7511878 C35.4435598,18.9405415 29.8287793,17.0381878 24.2134256,15.0745049"
460 id="Fill-5" fill="#467C45"></path>
461 <g id="Group-9"
462 transform="translate(0.000000, 11.919659)">
463 <mask id="mask-2" fill="white">
464 <use xlink:href="#path-1"></use>
465 </mask>
466 <g id="Clip-8"></g>
467 <path d="M8.34869024,0.375484146 C9.93064146,3.33419146 11.2781659,6.43963049 12.7426171,9.45622805 C13.7387878,11.5362646 14.793422,13.5876427 15.7013244,15.7255695 C10.4579585,13.9091915 5.21401951,12.03435 -0.000114634146,10.0718134 C2.05069024,9.1341061 4.21842195,8.4898622 6.29845854,7.61119146 C6.97193415,5.17980122 7.67521463,2.77706951 8.34869024,0.375484146"
468 id="Fill-7" fill="#467C45"
469 mask="url(#mask-2)"></path>
470 </g>
471 <path d="M29.1793195,18.0496049 C33.5600634,19.4670561 37.9081366,21.0776659 42.2888805,22.5593122 C43.6742341,23.0745927 45.1558805,23.4609098 46.5085634,24.1372512 C44.2216122,25.039422 41.9025634,25.9100683 39.6477098,26.8110927 C38.8103073,29.4195927 38.2302585,32.1261049 37.3607585,34.7346049 C35.5890878,31.4497634 34.0432463,28.0353854 32.3684415,24.6852024 C31.3052098,22.4945439 30.1456854,20.3044585 29.1793195,18.0496049"
472 id="Fill-10" fill="#467C45"></path>
473 <path d="M28.9972232,29.3489207 C29.5789915,27.69475 30.0684793,26.0113476 30.7419549,24.3887012 C31.538089,25.7660305 32.1811866,27.2356402 32.9154183,28.6444939 C34.7220524,32.4709817 36.68115,36.205189 38.4568329,40.0316768 C36.2827963,39.1449817 34.1402841,38.1654329 31.9364427,37.2460671 C29.6403207,38.4709329 27.4662841,39.9405427 25.1094061,41.1035061 C26.3033207,37.1549329 27.7419793,33.2671159 28.9972232,29.3489207"
474 id="Fill-12" fill="#467C45"></path>
475 <path d="M4.97133902,25.64555 C9.93385122,27.1873793 14.7737049,29.036428 19.6748878,30.6705378 C20.4148512,30.9170012 21.1542415,31.1944159 21.8328756,31.5337329 C16.5304732,33.9685622 11.3214976,36.6498549 5.95776585,38.99355 C6.82096098,36.8355622 7.89966829,34.7698549 8.7319122,32.581489 C7.68358293,30.1764646 6.11194878,28.01905 4.97133902,25.64555"
476 id="Fill-14" fill="#467C45"></path>
477 <path d="M15.4549183,35.8770488 C19.4671134,33.9317073 23.4483573,31.8952317 27.4915037,30.0433171 C26.4110768,33.6542927 25.0222841,37.203939 23.8186256,40.8143415 C23.1090402,42.7275854 22.5530646,44.7033049 21.7511988,46.5855976 C20.7630524,44.4866463 20.0534671,42.2650366 19.1277963,40.1351341 C16.6276256,39.2094634 14.0042232,38.684439 11.4736744,37.9748537 C12.6773329,37.0801341 14.1584061,36.586061 15.4549183,35.8770488"
478 id="Fill-16" fill="#467C45"></path>
479 </g>
480 </g>
481 </g>
482 </svg>
483</div>
484
485<script>
486 $(document).ready(function () {
487 var visibleByDefault = false;
488 var captchaIsPassed = false;
489 var captchaIsVisible = visibleByDefault;
490 var reCaptchaWrapper;
491
492 function do_reload() {
493 $.ajax({
494 type: 'POST',
495 url: '/ungraylistcheck'
496 }).done(function(data){
497 if (data.ungraylisted && data.redirect == 'pending') {
498 setTimeout(do_reload, 1000);
499 }
500 else {
501 location.reload(true);
502 }
503 }).fail(function(){
504 location.reload(true);
505 });
506 }
507
508 window.check = function (value) {
509 $.ajax({
510 type: 'POST',
511 url: '/captchacheck',
512 data: {
513 'captcha_value': value
514 }
515 }).done(function (data) {
516 if (data['success']) {
517 captchaIsPassed = true;
518 $("#text").text(
519 "IP 185.220.100.250 has been unblocked"
520 );
521 setTimeout(do_reload, 1000);
522 } else {
523 grecaptcha.reset();
524 }
525 }).fail(function () {
526 grecaptcha.reset();
527 });
528 };
529
530 function updateUI() {
531 // change the size of our block to fit the captcha block
532 var blockWithText = $('.captcha_div');
533 var captchaBlock = reCaptchaWrapper.find('> div:last-child');
534 var currentPadding;
535 (function update () {
536 var space = captchaBlock.offset().top + captchaBlock.height() - blockWithText.height() - 100;
537 var padding = captchaIsPassed ? '' : space + 'px';
538 if (currentPadding !== padding) {
539 blockWithText.css({'padding-bottom': padding});
540 }
541 setTimeout(update, 500);
542 })();
543 }
544
545 function makeVisible() {
546 $('.big_loader').hide(); // hide our preloader
547 $('.wraper').show(); // show our text and stuff
548 // add class to reCAPTCHA wrapper so our css would apply to it
549 reCaptchaWrapper.addClass('re-captcha-wrapper');
550 captchaIsVisible = true;
551 }
552
553 function executeCaptcha() {
554 try {
555 grecaptcha.execute();
556 } catch (e) {
557 setTimeout(executeCaptcha, 2000); // retry
558 }
559 }
560
561 if (!visibleByDefault) {
562 /**
563 * Detecting captcha when css is changed to visible.
564 * Invisible reCaptcha has no API calls when captcha will be visible,
565 * (captcha is shown to user).
566 * When captcha changed css "visibility" to the "visible", we should:
567 * 1. hide the loader and captcha mask
568 * 2. display some additional text
569 * 3. display a dropdown so user can switch to a different language
570 */
571 (function checkVisibility () {
572 reCaptchaWrapper = reCaptchaWrapper && reCaptchaWrapper.length
573 ? reCaptchaWrapper
574 : $('body > div:has(> div > iframe[src^="https://www.google.com/recaptcha"])');
575 if (reCaptchaWrapper.css('visibility') === 'visible') {
576 makeVisible(reCaptchaWrapper);
577 updateUI(reCaptchaWrapper);
578 } else {
579 setTimeout(checkVisibility, 100);
580 }
581 })();
582
583 // start captcha challenge after loads all scripts
584 setTimeout(executeCaptcha, 2000);
585 }
586
587 });
588
589</script>
590
591</body>
592</html>