Nonaktifkan Metode HTTP di Apache


11

Bagaimana saya bisa menonaktifkan Metode HTTP tertentu (misalnya PUT atau TRACE) dan meminta Apache mengirim HTTP "405 Metode tidak diizinkan".

Saya sudah mencoba arahan Limit dan LimitExcept tetapi mereka sepertinya mengirim "403 Forbidden".

Saya punya beberapa vhosts - ini harus di semua dari mereka, di httpd.conf utama.

Jawaban:


14

Tampaknya mendefinisikan kode kesalahan sedikit lebih sulit dari yang seharusnya.

Namun, satu solusi MUNGKIN menggunakan mod_rewrite. Muncul yang keluar dari kepalaku karena fakta bahwa setidaknya 99% dari masalah Apache tampak mustahil mod_rewrite dapat memberikan tarian voodoo dan memecahkan masalah Anda.

Jika semuanya gagal, coba sesuatu seperti

RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^GET [AND]
RewriteCond %{REQUEST_METHOD} !^POST 
RewriteRule .* /yourerrordocuments/405.html [R=405,L] 

Saya tahu itu mungkin bukan solusi terbaik di sekitar, tetapi harus semacam pekerjaan ...


1
+1 Mod_rewrite voodoo memecahkan semua masalah (untuk set terbatas semua).
Chris S

6
Mod_rewrite juga menjalankan regex lambat pada setiap proses URL, yang memperlambat server. Gunakan dengan hati-hati.
Marcin

Terima kasih - trik yang bagus mengatur kode respons dengan R = 405. Berharap akan ada cara yang lebih baik sehingga OPSI akan melaporkan nilai yang benar tapi saya kira itu tidak mungkin
Greg

Versi Apache / mod_rewrite apa yang mendukung flag [DAN]? Saya hanya melihat [ATAU] (dan "dan" menjadi tersirat): httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond
asjo

4

Untuk metode penelusuran, Anda dapat menambahkan ini

TraceEnable off

di file konfigurasi utama Anda


2

Untuk mengaktifkan mesin penulisan ulang, tambahkan yang berikut:

 RewriteEngine On 

Harap dicatat bahwa secara default, konfigurasi penulisan ulang tidak diwarisi di server virtual. Tambahkan RewriteEngine On ke setiap host virtual.

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
RewriteRule .* - [F]
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.