Haruskah Folder Plugin Menyertakan File index.php Kosong?

16

WordPress sendiri, di dalam wp-contentfolder, termasuk file PHP kosong yang terlihat seperti ini.

<?php
// Silence is golden.
?>

Haruskah plugin menyertakan file kosong seperti ini juga untuk menghentikan orang melihat melihat isi direktori? Bagaimana dengan folder tambahan dalam tema - seperti includesdirektori?

chrisguitarguy
sumber
1
ya, mungkin itu ide yang bagus. Tidak pernah mengerti mengapa WP tidak ada Options –Indexesdalam htaccess yang dibundel, jadi file-file ini tidak diperlukan ...
onetrickpony

Jawaban:

17

Tidak, seharusnya tidak. Jika sebuah plugin memiliki kerentanan hanya karena seseorang mungkin melihat struktur direktori itu rusak. Bug ini harus diperbaiki.
Keamanan melalui ketidakjelasan adalah bug untuk dirinya sendiri.

Terserah pemilik situs untuk mengizinkan atau melarang penjelajahan direktori.

Masalah kedua adalah kinerja: WordPress memindai semua file PHP di direktori root plugin untuk menemukan header plugin. Hal ini memungkinkan Anda untuk memiliki beberapa plugin di bawah direktori yang sama, misalnya /wp-content/plugins/wpse-examples/.

Ini juga berarti bahwa file PHP yang tidak digunakan dalam direktori itu membuang-buang waktu dan memori ketika WordPress sedang mencari plugin. Satu file tidak akan banyak merugikan, tetapi bayangkan ini adalah praktik umum. Anda menciptakan masalah nyata dalam upaya untuk memperbaiki fiksi.

fuxia
sumber
2
"Terserah pemilik situs untuk mengizinkan atau melarang penjelajahan direktori." Itu mungkin titik kunci.
chrisguitarguy
dan pertanyaan utama saya adalah, mengapa file plugin utama tidak ditulis index.php? itu bisa menjadi solusi optimal
T.Todua
10

Saya akan mengatakan YA. Keamanan melalui ketidakjelasan berfungsi jika Anda lebih tidak jelas daripada tetangga Anda :) (bercanda tetapi ada kebenarannya).

Kenyataannya adalah bahwa bot / pemindai sekarang mengkompilasi daftar plugin langsung dari wordpress.org dan merayapi URL plugin secara langsung, versi sidik jari untuk eksploitasi yang diketahui dan menyimpan informasi dalam database untuk referensi.

Jadi yang mana yang Anda inginkan, bot tidak dapat mengumpulkan info tentang pemasangan Anda, atau menyerahkannya kepada pembuat plugin untuk memastikan Anda aman. Bagaimana dengan keduanya.

ps. Di samping catatan ada 186 eksploit yang dilaporkan dari plugin wordpress.org tahun lalu. (* Dilaporkan ..).

Wyck
sumber
1
Pemindai eksploitasi tidak menguji apakah plugin itu ada. Mereka mencoba menjalankan exploit selama permintaan pertama. Kosong index.phptidak akan melindungi apa pun, Anda hanya akan mendapatkan rasa aman palsu.
fuxia
Tapi mereka melakukannya, wp-scan (salah satu dari banyak) sidik jari lebih dari 2.200 plugin misalnya, dan menggunakan beberapa sidik jari yang layak untuk mendeteksi versi (ukuran file, penambahan file, dll).
Wyck
Saya telah membersihkan puluhan situs WordPress yang diretas. Hampir selalu permintaan pertama adalah serangan nyata. Itu masuk akal: Mengapa membuang-buang waktu dengan pemindaian terperinci jika Anda dapat menguji kerentanan dalam permintaan pertama? Lacak 404 Anda untuk melihatnya. :)
fuxia
1
Saya setuju, ini harus sampai ke pengguna akhir dan bukan penulis. Tapi saya pikir itu juga tidak menyakitkan. Saya hanya ingin menambahkan titik tandingan karena Anda mengatakan "tidak".
Wyck
1
menandai yang ini diterima karena debat komentar!
chrisguitarguy
1

Karena inti WordPress melakukan ini masuk akal untuk mengikuti plugin. Meskipun semua ini dapat dilindungi dengan berbagai pengaturan sisi server, tidak ada salahnya untuk memiliki default (mungkin mengapa inti WordPress melakukannya).

BFTrick
sumber
0

Seperti yang ditunjukkan fuxia, ada kelemahan kinerja dalam memiliki .phpfile tambahan yang dipindai oleh WordPress untuk plugin. Pilihan yang index.htmlmungkin lebih baik. Tentu saja, opsi terbaik adalah melarang penjelajahan direktori melalui server web.

Dan juga, keamanan melalui ketidakjelasan tidak baik.

Alex H
sumber