Melemparkan kesalahan 404 untuk setiap permintaan yang tidak valid dapat dipertanyakan, penyerang mungkin mulai mencurigai perilaku ini khususnya jika dia mengetahui layanan yang dia targetkan.
Apakah ini membantu melindungi layanan Anda? ini sangat bergantung pada ketekunan penyerang.
Edit :
Penyerang dapat mendeteksi perbedaan jika Anda tidak membuat header respons 404 dengan benar seperti yang dilakukan server
Ini adalah PoC untuk kasus server Java (Tomcat8):
Ini adalah status 404 'jujur' yang dikembalikan oleh server itu sendiri untuk sumber daya yang tidak ditemukan :
Content-Language:en
Content-Length:1026
Content-Type:text/html;charset=utf-8
Date:Tue, 31 Jan 2017 09:15:54 GMT
Server:Apache-Coyote/1.1
Yang ini dikembalikan oleh servlet :
Content-Language:en
Content-Length:992
Content-Type:text/html;charset=utf-8
Date:Tue, 31 Jan 2017 09:18:04 GMT
Server:Apache-Coyote/1.1
Anda melihat nilai parameter "Content-length" dalam kedua kasus, yang satu ini dapat menarik perhatian penyerang.
Berhati-hatilah, menyembunyikan kode kesalahan sebenarnya sedikit membingungkan. Tidak ada yang benar-benar buruk dari sudut pandang keamanan, tetapi menambah sedikit keamanan jika ada. Apakah Anda benar-benar berpikir bahwa penyerang menerima kode kesalahan secara membabi buta? Anda tahu mereka dapat diubah sesuka hati, dan mereka juga melakukannya. Oke, ini bisa berguna melawan script kiddies tetapi tidak menghadapi serangan serius, jadi Anda harus benar-benar memikirkan model ancaman Anda sebelum melakukannya.
Dan mungkin ada kekurangan di sini. Kecuali jika Anda membuat sistem log khusus yang mencatat kesalahan internal, Anda akan berakhir dengan log yang hanya berisi 404 kesalahan. Artinya Anda telah kehilangan kemungkinan analisis log untuk mencoba menemukan serangan ke situs Anda dan kemungkinan kelemahan keamanan. Kode kesalahan IMHO lebih berguna untuk pengelola aplikasi daripada untuk penyerang...