jairopaiva commited on
Commit
0ad0cd2
·
verified ·
1 Parent(s): dede8b0

Crie um website para agregar concursos públicos bem como estudar para esses concursos, implemente autênticação, login, definição de interesses, notificação, etc... Sites de exemplo: qconcursos.com, grancursosonline.com.br, jcconcursos.com.br. Make the website secure and resistant to web scraping. Also, add authentication using google oauth. Make the project optimized, clean and modular.Gere um website para agregar concursos públicos bem como estudar para esses concursos, implemente autênticação, login, definição de interesses, notificação, etc... Sites de exemplo: qconcursos.com, grancursosonline.com.br, jcconcursos.com.br. Now, make the website secure and resistant to web scraping. Also, add authentication using google oauth. Make the project optimized, clean and modular. Generate a final optimized complete version of the website:Crie um website para agregar concursos públicos bem como estudar para esses concursos, implemente autênticação, login, definição de interesses, notificação, etc... Sites de exemplo: qconcursos.com, grancursosonline.com.br, jcconcursos.com.br. Make the website secure and resistant to web scraping. Also, add authentication using google oauth. Make the project optimized, clean and modular.Gere um website para agregar concursos públicos bem como estudar para esses concursos, implemente autênticação, login, definição de interesses, notificação, etc... Sites de exemplo: qconcursos.com, grancursosonline.com.br, jcconcursos.com.br. Now, make the website secure and resistant to web scraping. Also, add authentication using google oauth. Make the project optimized, clean and modular. Generate a final optimized complete version of the website:jcconcursos.com.br,grancursosonline.com.br,qconcursos.com - Follow Up Deployment

Browse files
Files changed (1) hide show
  1. index.html +80 -2
index.html CHANGED
@@ -3,10 +3,20 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
6
  <title>ConcursoMaster - Preparação para Concursos Públicos</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
8
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
  <script src="https://accounts.google.com/gsi/client" async defer></script>
 
 
 
 
 
 
 
 
 
10
  <style>
11
  .blur-effect {
12
  filter: blur(4px);
@@ -71,7 +81,16 @@
71
  </head>
72
  <body class="bg-gray-50 font-sans">
73
  <!-- Anti-scraping measures -->
74
- <div class="honey-pot" id="fakeContent"></div>
 
 
 
 
 
 
 
 
 
75
  <div class="rate-limit-message" id="rateLimitMessage">
76
  Você está fazendo muitas requisições rapidamente. Por favor, aguarde alguns segundos.
77
  </div>
@@ -111,10 +130,25 @@
111
  <a href="#" id="logoutButton" class="block px-4 py-2 text-gray-700 hover:bg-gray-100">Sair</a>
112
  </div>
113
  </div>
114
- <div id="authSection">
115
  <button id="loginButton" class="bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 transition">
116
  Entrar
117
  </button>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  </div>
119
  <button id="mobileMenuButton" class="md:hidden text-gray-700">
120
  <i class="fas fa-bars text-xl"></i>
@@ -357,5 +391,49 @@
357
  </div>
358
  <div class="p-4">
359
  <h3 class="font-bold mb-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360
  <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=jairopaiva/c" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
361
  </html>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <meta name="csrf-token" content="{{YOUR_CSRF_TOKEN}}">
7
  <title>ConcursoMaster - Preparação para Concursos Públicos</title>
8
  <script src="https://cdn.tailwindcss.com"></script>
9
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
  <script src="https://accounts.google.com/gsi/client" async defer></script>
11
+ <meta name="robots" content="noindex, nofollow">
12
+ <meta name="googlebot" content="noindex, nofollow">
13
+ <script>
14
+ // Anti-scraping protection
15
+ if (navigator.webdriver || window.callPhantom || window._phantom || window.phantom) {
16
+ document.body.innerHTML = '<div class="text-center p-8 text-red-600 font-bold">Acesso não autorizado detectado</div>';
17
+ throw new Error("Bot detected");
18
+ }
19
+ </script>
20
  <style>
21
  .blur-effect {
22
  filter: blur(4px);
 
81
  </head>
82
  <body class="bg-gray-50 font-sans">
83
  <!-- Anti-scraping measures -->
84
+ <div class="honey-pot" id="fakeContent">
85
+ <a href="/fake-login" style="display:none">Fake Login</a>
86
+ <input type="hidden" name="fake-email" value="">
87
+ </div>
88
+ <script>
89
+ // Honeypot trap
90
+ document.getElementById('fakeContent').addEventListener('focus', () => {
91
+ document.body.innerHTML = '<div class="text-center p-8 text-red-600 font-bold">Acesso suspeito detectado</div>';
92
+ });
93
+ </script>
94
  <div class="rate-limit-message" id="rateLimitMessage">
95
  Você está fazendo muitas requisições rapidamente. Por favor, aguarde alguns segundos.
96
  </div>
 
130
  <a href="#" id="logoutButton" class="block px-4 py-2 text-gray-700 hover:bg-gray-100">Sair</a>
131
  </div>
132
  </div>
133
+ <div id="authSection" class="flex items-center space-x-3">
134
  <button id="loginButton" class="bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 transition">
135
  Entrar
136
  </button>
137
+ <div id="g_id_onload"
138
+ data-client_id="YOUR_GOOGLE_CLIENT_ID.apps.googleusercontent.com"
139
+ data-context="signin"
140
+ data-ux_mode="popup"
141
+ data-callback="handleGoogleSignIn"
142
+ data-auto_prompt="false">
143
+ </div>
144
+ <div class="g_id_signin"
145
+ data-type="standard"
146
+ data-shape="rectangular"
147
+ data-theme="filled_blue"
148
+ data-text="signin_with"
149
+ data-size="medium"
150
+ data-logo_alignment="left">
151
+ </div>
152
  </div>
153
  <button id="mobileMenuButton" class="md:hidden text-gray-700">
154
  <i class="fas fa-bars text-xl"></i>
 
391
  </div>
392
  <div class="p-4">
393
  <h3 class="font-bold mb-
394
+ <script>
395
+ // Rate limiting implementation
396
+ let lastRequestTime = 0;
397
+ const requestQueue = [];
398
+ const MAX_REQUESTS = 5;
399
+ const TIME_WINDOW = 10000; // 10 seconds
400
+
401
+ function checkRateLimit() {
402
+ const now = Date.now();
403
+ requestQueue.push(now);
404
+
405
+ // Remove old requests
406
+ while (requestQueue.length > 0 && now - requestQueue[0] > TIME_WINDOW) {
407
+ requestQueue.shift();
408
+ }
409
+
410
+ if (requestQueue.length > MAX_REQUESTS) {
411
+ document.getElementById('rateLimitMessage').style.display = 'block';
412
+ return false;
413
+ }
414
+ return true;
415
+ }
416
+
417
+ // Google OAuth handler
418
+ function handleGoogleSignIn(response) {
419
+ if (!checkRateLimit()) return;
420
+
421
+ // Verify Google token with your backend
422
+ fetch('/api/auth/google', {
423
+ method: 'POST',
424
+ headers: {
425
+ 'Content-Type': 'application/json',
426
+ 'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content
427
+ },
428
+ body: JSON.stringify({ credential: response.credential })
429
+ })
430
+ .then(response => response.json())
431
+ .then(data => {
432
+ if (data.success) {
433
+ window.location.reload();
434
+ }
435
+ });
436
+ }
437
+ </script>
438
  <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=jairopaiva/c" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
439
  </html>