bot validierung durch Zeitmessung, Interaktionsmessung und Honeypot eingerichtet.

This commit is contained in:
Andreas Hnida 2024-02-23 06:34:03 +00:00
commit a32e4a9d4b
11 changed files with 99 additions and 117 deletions

View file

@ -1,6 +1,28 @@
window.onload = function () {
// initieiere Zeitmessung zur Botprevention
var startTime = Date.now();
// Messe ob mit der Seite agiert wird
var userInteracted = false;
function setUserInteracted() {
userInteracted = true;
}
document.addEventListener("mousedown", setUserInteracted);
document.addEventListener("touchstart", setUserInteracted);
document.addEventListener("keydown", setUserInteracted);
document.getElementById('formular').addEventListener('submit', function (e) {
e.preventDefault(); // Verhindert die Standard-Formularsendung
var endTime = Date.now();
var timeSpent = (endTime - startTime) / 1000; // Zeit in Sekunden
document.getElementById("age").value = timeSpent;
document.getElementById("hobbies").value = userInteracted ? "1" : "0";
const form = e.target;
const zsrNummer = form.elements['zsr_nummer'].value;
const isNumberOrBeantragt = /^\d+$|^beantragt$/i.test(zsrNummer);

View file

@ -260,12 +260,22 @@ table .far {
margin-right: auto;
}
.accordion-collapse {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
}
.fadeOut {
@apply transition-opacity duration-500 ease-in-out opacity-0;
}
.fadeIn {
@apply transition-opacity duration-1000 ease-in-out opacity-100;
}
#verify_email, #age, #hobbies {
display:none;
}
/**************** Component Styles ******************/

View file

@ -45,10 +45,18 @@ title = 'Freiberufliche'
<label for="vorname">Vorname</label>
<input type="text" id="vorname" name="vorname" required >
</div>
<div>
<label class="hidden" for="hobbies">hobbies</label>
<input type="text" id="hobbies" name="hobbies" required >
</div>
<div>
<label for="strasse">Strasse</label>
<input type="text" id="strasse" name="strasse" required >
</div>
<div>
<label class="hidden" for="age">Alter</label>
<input type="text" id="age" name="age" required >
</div>
<div>
<label for="plz_ort">PLZ Ort</label>
<input type="text" id="plz_ort" name="plz_ort" required >
@ -61,6 +69,10 @@ title = 'Freiberufliche'
<label for="email">Email</label>
<input type="email" id="email" name="email" required >
</div>
<div>
<label class="hidden" for="verify_email">Email verifizieren</label>
<input type="verify_email" id="verify_email" name="verify_email" required >
</div>
<div>
<label for="message">Message</label>
<textarea id="message" name="message" rows="4" required ></textarea>

View file

@ -0,0 +1,6 @@
---
title: "Neue Domiziladresse ab dem 01.09.2023"
date: 2024-02-22T20:33:26Z
draft: false
tags: []
---

View file

@ -1,23 +0,0 @@
---
title: "How to build an Application with modern Technology"
meta_title: ""
description: "this is meta description"
date: 2022-04-04T05:00:00Z
image: "/images/image-placeholder.png"
categories: ["Application", "Data"]
author: "John Doe"
tags: ["nextjs", "tailwind"]
draft: false
---
Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
## Creative Design
Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!

View file

@ -1,23 +0,0 @@
---
title: "How to build an Application with modern Technology"
meta_title: ""
description: "this is meta description"
date: 2022-04-04T05:00:00Z
image: "/images/image-placeholder.png"
categories: ["Technology", "Data"]
author: "Sam Wilson"
tags: ["technology", "tailwind"]
draft: false
---
Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
## Creative Design
Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!

View file

@ -1,23 +0,0 @@
---
title: "How to build an Application with modern Technology"
meta_title: ""
description: "this is meta description"
date: 2022-04-04T05:00:00Z
image: "/images/image-placeholder.png"
categories: ["Software"]
author: "John Doe"
tags: ["software", "tailwind"]
draft: false
---
Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
## Creative Design
Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!

View file

@ -1,23 +0,0 @@
---
title: "How to build an Application with modern Technology"
meta_title: ""
description: "this is meta description"
date: 2022-04-04T05:00:00Z
image: "/images/image-placeholder.png"
categories: ["Architecture"]
author: "John Doe"
tags: ["silicon", "technology"]
draft: false
---
Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
## Creative Design
Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!

View file

@ -0,0 +1,6 @@
---
title: "Rueckwirkende Tarife Kanton FR zum 01.01.2022"
date: 2024-02-22T20:40:11Z
draft: false
tags: []
---

View file

@ -0,0 +1,6 @@
---
title: "Vorankuendigung Zusatzmodule Dienst Und Tourenplan zum 01.11.2022"
date: 2024-02-22T20:39:10Z
draft: false
tags: []
---

View file

@ -1,29 +1,41 @@
{{ define "main" }}
{{ partial "page-header" . }}
<section class="section">
<div class="container">
<div class="row gx-5">
<!-- blog posts -->
<div class="lg:col-8">
<div class="row">
{{ $paginator:= .Paginate .RegularPages }}
{{ range $paginator.Pages }}
<div class="md:col-6 mb-14">
{{ partial "components/blog-card" . }}
<h1>Blog</h1>
<div id="accordion" class="divide-y divide-gray-200">
{{ range $index, $page := .Data.Pages }}
<div class="accordion-item">
<h2 class="accordion-header mb-0" style="padding:0!important;">
<button class="accordion-button relative flex items-center w-full py-4 px-5 text-left text-gray-800 bg-gray-100 focus:outline-none" type="button">
<i class="verua-icon far text-primary fa-bullhorn"></i>&nbsp; {{ .Title }}
</button>
</h2>
<div class="accordion-collapse hidden">
<div class="accordion-body py-4 px-5">
{{ .Content }}
</div>
</div>
</div>
{{ end }}
</div>
{{ partial "components/pagination.html" . }}
</div>
<!-- sidebar -->
<div class="lg:col-4">
<!-- widget -->
{{ $widget:= site.Params.widgets.sidebar }}
{{ partialCached "widgets/widget-wrapper" ( dict "Widgets" $widget "Scope" . ) }}
</div>
</div>
</div>
</section>
{{ end }}
</div>
<script>
document.addEventListener('DOMContentLoaded', () => {
const accordionButtons = document.querySelectorAll('.accordion-button');
accordionButtons.forEach(button => {
button.addEventListener('click', () => {
const accordionCollapse = button.parentElement.nextElementSibling;
button.classList.toggle('active');
if (button.classList.contains('active')) {
button.parentElement.nextElementSibling.classList.remove('hidden');
accordionCollapse.style.maxHeight = accordionCollapse.scrollHeight + 'px';
} else {
accordionCollapse.style.maxHeight = null;
button.parentElement.nextElementSibling.classList.add('hidden');
}
});
});
});
</script>
{{ end}}