Blockierte HTTP-Methoden geben keine HTTP 405-Antwort zurück
Wie konfiguriere ich (idealerweise) Apache (oder alternativ) PHP so, dass es spezifisch mit einem HTTP 405 antwortet, wenn die Anforderungsmethode nicht GET
oder nicht POST
?
Mein Apache- .htaccess
Versuch blockiert Anforderungen, außer dass die falsche HTTP 403- Antwort zurückgegeben wird:
<LimitExcept GET POST>
Order Allow,Deny
Deny from all
</LimitExcept>
In PHP habe ich am absoluten Anfang der Verarbeitung von Anforderungen Folgendes verwendet und es wird einfach vollständig ignoriert:
if (!in_array($_SERVER['REQUEST_METHOD'],array('GET','POST')))
{
header('Access-Control-Allow-Methods: GET, POST');
header('HTTP/1.1 405');
die();
}
Antworten
Pandurang
Sie können die folgende Umleitungsregel verwenden, um die Methode zu deaktivieren und den 405-Fehlercode zurückzugeben.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(POST|GET)$
RewriteRule .* - [R=405]