Saya telah menemukan potongan-potongan berikut dalam tema dari waktu ke waktu:
if ( ! defined('ABSPATH')) exit('restricted access');
Itu pada awal beberapa (semua?) File PHP dalam sebuah tema dan itu seharusnya mencegah akses langsung file tersebut oleh sumber jahat.
Saya melihat bahwa ini tidak termasuk dalam Twenty Ten atau Eleven dan saya belum pernah melihatnya direkomendasikan dalam dokumentasi WordPress resmi. Sepertinya ini ide yang bagus bagi saya, tetapi saya juga tidak cukup tahu tentang keamanan untuk menilainya dan tidak dapat menemukan banyak hal dengan Google.
Apakah ini sesuatu yang harus saya miliki dalam tema khusus saya? Jika demikian, apakah harus di semua file PHP atau hanya beberapa?
theme-development
security
mrwweb
sumber
sumber
defined('ABSPATH') OR exit;
defined('WPINC') ? : die();
PJawaban:
Biasanya, Anda tidak membutuhkannya. Tapi ... setidaknya ada satu sisi tepi:
on
,... seorang penyerang dapat memanggil file ini, mengatur variabel yang hilang dengan
GET
atauPOST
dan membuat file tema mencetaknya. Dan kemudian ada adalah masalah keamanan.Jadi ... pilihan terbaik bukanlah cek konteks seperti yang ada pada contoh Anda, tetapi kode yang baik: hindari variabel global, periksa kontennya sebelum Anda mencetaknya.
Dalam beberapa kasus saya menambahkan cek konteks ketika saya pikir orang lain akan menggunakan kode saya dan mengubahnya tanpa memikirkan keamanan. Tidak sakit.
sumber