fix(security): injection correcte de la clé de site captcha dans la vue
AS Talange CI/CD Pipeline - Production / Build & Run Unit Tests (push) Failing after 26s
AS Talange CI/CD Pipeline - Production / Deploy to Prod Environment (push) Has been skipped

This commit is contained in:
2026-06-23 02:05:27 +02:00
parent 2f8c8f0829
commit 5e75767f92
2 changed files with 12 additions and 6 deletions
@@ -34,8 +34,12 @@ public class PublicInscriptionController {
this.saisonRepository = saisonRepository; this.saisonRepository = saisonRepository;
} }
@Value("${captcha.sitekey:1x00000000000000000000AA}")
private String captchaSiteKey;
@GetMapping("/demarrer") @GetMapping("/demarrer")
public String showDemarrer(Model model) { public String showDemarrer(Model model) {
model.addAttribute("captchaSiteKey", captchaSiteKey);
Saison activeSaison = saisonRepository.findByEstActiveTrue().orElse(null); Saison activeSaison = saisonRepository.findByEstActiveTrue().orElse(null);
if (activeSaison == null || !activeSaison.getInscriptionsOuvertes()) { if (activeSaison == null || !activeSaison.getInscriptionsOuvertes()) {
model.addAttribute("inscriptionsFermees", true); model.addAttribute("inscriptionsFermees", true);
@@ -30,13 +30,15 @@
Les inscriptions ne sont pas ouvertes pour le moment, veuillez contacter un responsable du club. Les inscriptions ne sont pas ouvertes pour le moment, veuillez contacter un responsable du club.
</div> </div>
<form th:unless="${inscriptionsFermees}" th:action="@{/inscription-public/demarrer}" method="post" <p th:unless="${inscriptionsFermees}" class="text-gray-600 mb-8 leading-relaxed">
class="flex flex-col items-center"> Afin de sécuriser le processus et d'éviter les soumissions automatisées (robots),
<!-- Remplacer par la vraie clé de site Cloudflare Turnstile --> nous vous demandons de bien vouloir valider le test de sécurité ci-dessous avant de continuer.
<div class="cf-turnstile mb-6" data-sitekey="1x00000000000000000000AA"></div> </p>
<button type="submit" <form th:unless="${inscriptionsFermees}" th:action="@{/inscription-public/demarrer}" method="post" class="flex flex-col items-center">
class="w-full bg-blue-600 hover:bg-blue-700 text-white font-medium py-3 px-4 rounded-lg transition-colors"> <div class="cf-turnstile mb-6" th:attr="data-sitekey=${captchaSiteKey}"></div>
<button type="submit" class="bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 px-8 rounded-xl shadow-md hover:shadow-lg transition-all duration-200 transform hover:-translate-y-0.5">
Accéder au formulaire Accéder au formulaire
</button> </button>
</form> </form>