http
Content-Security-Policy: form-action 'self'; default-src 'self'
<!-- API nutzt JSON statt Forms -->
<script>
async function login(email, password) {
// CSP erlaubt fetch/XHR unabhängig von form-action
const response = await fetch('/api/v1/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password })
});
return response.json();
}
</script>
<form action="/legacy/login" method="POST">
<!-- Erlaubt für Fallback -->
<input type="email" name="email">
</form>