Files
e-ticket/templates/legal/conformite.html.twig
Serreau Jovann 9bcb41306b Add conformite page, SonarQube badge proxy, coverage fixes, and code quality
- Add /conformite page: PSD2/3DS/Stripe, SonarQube badges, CI/CD, security
- Create SonarBadgeController proxy to serve SonarQube badges without exposing token
- Store SonarQube badge token in ansible/vault.yml instead of env files
- Add Meilisearch coverage tests: search with results, search error, sync, delete
- Fix MeilisearchService delete catch block with comment
- Fix ESLint: use globalThis.confirm instead of window.confirm
- Fix accessibility: add for/id attributes to buyer creation form labels
- Add conformite link to site footer
- Add SonarBadgeControllerTest and LegalControllerTest for /conformite

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 14:25:04 +01:00

97 lines
7.6 KiB
Twig

{% extends 'base.html.twig' %}
{% block title %}Conformite technique - E-Ticket{% endblock %}
{% block description %}Conformite technique, securite des paiements et qualite du code de la plateforme E-Ticket{% endblock %}
{% block body %}
<div style="max-width:50rem;margin:0 auto;padding:3rem 1rem;">
<h1 class="text-3xl font-black uppercase tracking-tighter italic" style="border-bottom:4px solid #111827;display:inline-block;margin-bottom:0.5rem;">Conformite Technique</h1>
<p class="font-bold text-gray-600 italic" style="margin-bottom:2rem;">Transparence sur nos pratiques de securite, paiement et qualite logicielle.</p>
<div style="display:flex;flex-direction:column;gap:2rem;">
<section>
<h2 class="text-xl font-black uppercase" style="margin-bottom:0.5rem;">1. Securite des paiements</h2>
<div style="border:4px solid #111827;padding:1.5rem;box-shadow:6px 6px 0 rgba(0,0,0,1);background:white;">
<p style="margin-bottom:1rem;">E-Ticket utilise <strong>Stripe</strong> comme prestataire de paiement. Stripe est certifie <strong>PCI DSS niveau 1</strong>, le plus haut niveau de certification de l'industrie des paiements.</p>
<ul style="list-style:disc;padding-left:1.5rem;" class="text-sm font-bold text-gray-700">
<li><strong>PSD2 / SCA</strong> : Authentification forte du client (Strong Customer Authentication) via 3D Secure 2 pour toutes les transactions europeennes</li>
<li><strong>3D Secure</strong> : Verification supplementaire aupres de la banque emettrice pour reduire la fraude</li>
<li><strong>Tokenisation</strong> : Aucune donnee de carte bancaire ne transite ou n'est stockee sur nos serveurs</li>
<li><strong>HTTPS</strong> : Toutes les communications sont chiffrees via TLS 1.3</li>
<li><strong>Cloudflare</strong> : Protection DDoS et WAF (Web Application Firewall)</li>
</ul>
<p class="text-xs text-gray-500 italic" style="margin-top:1rem;">E-Ticket ne collecte, ne stocke et ne traite aucune donnee de carte bancaire. Stripe gere l'integralite du flux de paiement.</p>
</div>
</section>
<section>
<h2 class="text-xl font-black uppercase" style="margin-bottom:0.5rem;">2. Qualite du code source</h2>
<div style="border:4px solid #111827;padding:1.5rem;box-shadow:6px 6px 0 rgba(0,0,0,1);background:white;">
<p style="margin-bottom:1rem;">Le code source est analyse en continu par <strong>SonarQube</strong>, un outil d'analyse statique qui detecte les bugs, vulnerabilites et mauvaises pratiques.</p>
<div style="display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:1rem;">
<img src="{{ path('app_sonar_badge', {metric: 'alert_status'}) }}" alt="Quality Gate">
<img src="{{ path('app_sonar_badge', {metric: 'security_rating'}) }}" alt="Security Rating">
<img src="{{ path('app_sonar_badge', {metric: 'reliability_rating'}) }}" alt="Reliability Rating">
<img src="{{ path('app_sonar_badge', {metric: 'sqale_rating'}) }}" alt="Maintainability Rating">
<img src="{{ path('app_sonar_badge', {metric: 'coverage'}) }}" alt="Coverage">
<img src="{{ path('app_sonar_badge', {metric: 'vulnerabilities'}) }}" alt="Vulnerabilities">
<img src="{{ path('app_sonar_badge', {metric: 'bugs'}) }}" alt="Bugs">
<img src="{{ path('app_sonar_badge', {metric: 'code_smells'}) }}" alt="Code Smells">
</div>
<ul style="list-style:disc;padding-left:1.5rem;" class="text-sm font-bold text-gray-700">
<li><strong>PHPStan</strong> : Analyse statique PHP niveau 6</li>
<li><strong>PHP CS Fixer</strong> : Respect des standards de codage</li>
<li><strong>ESLint / Stylelint</strong> : Analyse du code JavaScript et SCSS</li>
<li><strong>PHPUnit</strong> : Tests unitaires et fonctionnels PHP</li>
<li><strong>Vitest</strong> : Tests unitaires JavaScript</li>
</ul>
</div>
</section>
<section>
<h2 class="text-xl font-black uppercase" style="margin-bottom:0.5rem;">3. Integration et deploiement continus</h2>
<div style="border:4px solid #111827;padding:1.5rem;box-shadow:6px 6px 0 rgba(0,0,0,1);background:white;">
<p style="margin-bottom:1rem;">Chaque modification du code passe par un pipeline d'integration continue automatise avant d'etre deploye en production.</p>
<ul style="list-style:disc;padding-left:1.5rem;" class="text-sm font-bold text-gray-700">
<li><strong>Gitea</strong> : Plateforme Git auto-hebergee pour le controle de version</li>
<li><strong>CI/CD</strong> : Tests automatiques, analyse de code et deploiement via Gitea Actions</li>
<li><strong>SonarQube</strong> : Analyse de qualite auto-hebergee apres chaque push</li>
<li><strong>Deploiement automatise</strong> : Deploiement en production uniquement si tous les controles passent</li>
</ul>
<p class="text-xs text-gray-500 italic" style="margin-top:1rem;">L'infrastructure CI/CD est entierement auto-hebergee et administree par l'association E-Cosplay.</p>
</div>
</section>
<section>
<h2 class="text-xl font-black uppercase" style="margin-bottom:0.5rem;">4. Securite des communications</h2>
<div style="border:4px solid #111827;padding:1.5rem;box-shadow:6px 6px 0 rgba(0,0,0,1);background:white;">
<ul style="list-style:disc;padding-left:1.5rem;" class="text-sm font-bold text-gray-700">
<li><strong>S/MIME</strong> : Tous les emails envoyes par la plateforme sont signes numeriquement</li>
<li><strong>CSP</strong> : Politique de securite du contenu stricte pour prevenir les injections XSS</li>
<li><strong>HSTS</strong> : Force les connexions HTTPS</li>
<li><strong>SSO</strong> : Authentification unique via OpenID Connect</li>
<li><strong>CSRF</strong> : Protection contre les attaques Cross-Site Request Forgery</li>
</ul>
</div>
</section>
<section>
<h2 class="text-xl font-black uppercase" style="margin-bottom:0.5rem;">5. Donnees et conformite</h2>
<div style="border:4px solid #111827;padding:1.5rem;box-shadow:6px 6px 0 rgba(0,0,0,1);background:white;">
<ul style="list-style:disc;padding-left:1.5rem;" class="text-sm font-bold text-gray-700">
<li><strong>RGPD</strong> : Conforme au reglement general sur la protection des donnees (<a href="{{ path('app_rgpd') }}" class="text-indigo-600 hover:underline">voir notre politique RGPD</a>)</li>
<li><strong>Hebergement</strong> : Infrastructure hebergee en France (<a href="{{ path('app_hosting') }}" class="text-indigo-600 hover:underline">voir notre hebergeur</a>)</li>
<li><strong>Chiffrement</strong> : Donnees sensibles chiffrees au repos et en transit</li>
</ul>
</div>
</section>
</div>
<p class="text-sm opacity-70 italic" style="margin-top:2rem;">Derniere mise a jour : {{ "now"|date("d/m/Y") }}. Contact : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-600 hover:underline">contact@e-cosplay.fr</a></p>
</div>
{% endblock %}