Încerc să setez unele controale în Apache prin intermediul .htaccess. Aceasta funcționează:
<LimitExcept GET>
Order allow,deny
Allow from all
Deny from all
</LimitExcept>
în timp ce acest lucru nu:
<LimitExcept POST>
Order allow,deny
Allow from all
Deny from all
</LimitExcept>
Vă rog să mă ajutați să înțeleg ce se întâmplă aici.
Exemplu de caz de testare:
Am creat un formular HTML simplu (form.html) pentru a testa lucrurile:
<form method="post" action="./test/index.html">
<input type="submit" name="submit" value="submit" />
</form>
De-a lungul acestuia, am creat un subfolder „test” cu două fișiere:
- index.html (<p>Bună lume</p>)
- .htaccess (cu conținut exact ca unul dintre blocurile de cod de mai sus)
În cazul primei versiuni a fișierului .htaccess, trimiterea formularului HTML produce o eroare 403, în timp ce accesul direct (introducerea adresei complete într-un browser - de exemplu /test/index.html) nu este blocat. Acest lucru este așa cum era de așteptat. Cu toate acestea, în cazul celei de-a doua versiuni a fișierului .htaccess, atât trimiterea formularului HTML cât și accesul direct au ca rezultat o eroare 403.
Nu cred că acesta este o eroare (testat în Apache 2.2 și 2.4), dar știind că alți oameni îl pot replica ar fi destul de util. Desigur, în cele din urmă aș dori să înțeleg de ce lucrurile nu funcționează așa cum s-a dorit.