Rumah >Tutorial CMS >WordTekan >Pengekodan tema selamat dengan fungsi wordpress terbina dalam
mata teras
is_email()
, username_exists()
, term_exists()
, validate_file()
, sanitize_email()
, sanitize_option()
, sanitize_text_field()
, sanitize_hex_color()
, wp_kses_post()
, esc_html()
, esc_url()
, esc_attr()
, esc_textarea()
,
Artikel ini adalah sebahagian daripada siri artikel yang dibuat dengan kerjasama SiteGround. Terima kasih kerana menyokong rakan kongsi yang membuat SitePoint mungkin.
Memandangkan WordPress menyumbang 27% daripada bahagian rangkaian, keselamatan adalah kebimbangan utama bagi sesiapa yang menjalankan laman web di platform sumber terbuka yang popular ini. Walaupun keselamatan kod teras WordPress dikekalkan oleh pasukan pembangunan yang berdedikasi, ini tidak berlaku dengan beribu-ribu plug-in dan tema pihak ketiga yang memanjangkan keupayaan WordPress untuk melakukan hampir apa sahaja yang anda inginkan. Hanya satu pemalam atau tema dengan kelemahan boleh menimbulkan risiko tinggi kepada berjuta-juta laman web.
Kecuali anda menggunakan penyedia hosting yang boleh dipercayai (seperti SiteGround rakan kongsi kami), yang membolehkan kemas kini automatik ke plugin WordPress dan pemeriksaan keselamatan berkala, keselamatan tema dan plugin laman web anda terpulang kepada anda, melainkan jika anda menggunakan hosting yang boleh dipercayai Penyedia (seperti SiteGround Rakan Kongsi kami), yang membolehkan kemas kini automatik ke plugin WordPress dan pemeriksaan keselamatan berkala, keselamatan tema dan plugin laman web anda terpulang kepada anda.
Dalam artikel ini, saya akan memperkenalkan beberapa garis panduan dan fungsi WordPress yang boleh anda gunakan dalam pembangunan tema WordPress untuk memastikan produk anda meletakkan keselamatan pengguna terlebih dahulu apabila ditulis.
prinsip untuk pemaju dengan kesedaran keselamatan yang kuat
Untuk plugin WordPress yang berdedikasi dan pemaju tema, keselamatan adalah faktor yang mereka letakkan terlebih dahulu secara bertulis setiap baris kod.
Pendekatan keseluruhan untuk menulis tema WordPress yang selamat termasuk memberi tumpuan kepada prinsip umum berikut:
Perkara yang perlu diperhatikan
ancaman yang paling biasa yang perlu anda perhatikan ialah:
Cybersecurity telah berkembang, jadi penting untuk mengetahui ancaman terkini. Ketika datang ke WordPress, Blog Sucuri adalah tempat yang bagus untuk memahami kelemahan dan serangan.
Pengesahan data, pembersihan dan melarikan diri
Sebelum menerima sebarang data input dari mana -mana sumber (seperti pengguna, perkhidmatan rangkaian, API, dan lain -lain), anda mesti menyemak bahawa ia memenuhi jangkaan anda dan sah. Tugas ini dipanggil Pengesahan .
Contohnya, jika anda mengumpulkan e -mel dari pengguna melalui borang di laman web, kod anda perlu menyemak sama ada pengguna telah memasukkan beberapa input teks (mis., Bukan beberapa nombor atau tidak ada), dan input itu sepadan dengan yang sah Satu alamat e -mel dan kemudian masukkan data ke dalam pangkalan data.Anda mungkin berfikir jenis cek ini hampir tidak perlu dalam subjek. Malah, lebih baik menggunakan plugin dan bukannya tema untuk memasukkan borang. Walau bagaimanapun, ini tidak betul -betul berlaku. Sebagai contoh, jika anda merancang untuk menambah pilihan topik melalui customizer, anda mungkin perlu melakukan beberapa pengesahan data pada input pengguna.
Pembersihan termasuk penapisan atau pembersihan data dari pengguna, perkhidmatan rangkaian, dan lain -lain, yang akan disimpan dalam pangkalan data tidak lama lagi. Dalam proses ini, anda boleh memadam apa -apa dari data yang boleh menyebabkan kemudaratan atau tidak diperlukan, seperti pernyataan JavaScript, watak khas, dan banyak lagi.
Escape termasuk memastikan paparan data yang selamat, seperti memadam aksara khas, aksara HTML yang dikodkan, dan lain -lain. Pendekatan yang disyorkan di sini adalah untuk melarikan diri secepat mungkin, iaitu, untuk melarikan diri sebelum data dipaparkan pada skrin.
Anda perlu melakukan banyak pembersihan dan melarikan diri dalam tema WordPress anda. Sebenarnya, atas sebab -sebab keselamatan, cara terbaik adalah untuk membersihkan/melarikan diri semua data dinamik, iaitu sebarang data yang tidak dikodkan dalam kod sumber HTML.
Fungsi pengesahan WordPress
Anda boleh melakukan pengesahan asas menggunakan banyak fungsi PHP yang mudah.Sebagai contoh, untuk memeriksa sama ada pembolehubah tidak wujud atau nilainya ditetapkan kepada
palsu , anda boleh menggunakan . empty()
untuk memeriksa sama ada data adalah alamat e -mel yang sah. is_email( $email )
<code class="language-php"> if ( is_email( 'test@domain.com' ) ) { echo '有效的电子邮件地址。'; }</code>
Untuk memeriksa nama pengguna yang sah, WordPress menyediakan username_exists( $username )
:
<code class="language-php"> $username = 'testuser'; if ( username_exists( $username ) ): echo "用户名已存在。"; endif;</code>
Untuk memastikan bahawa tag, kategori, atau istilah taksonomi lain wujud, anda boleh menggunakan term_exists( $term, $taxonomy = '', $parent = null )
:
<code class="language-php"> // 检查类别“cats”是否存在 $term = term_exists('cats', 'category'); if ($term !== 0 && $term !== null) { echo "“cats”类别存在。"; }</code>
untuk memastikan laluan fail sah (tetapi tidak jika ia wujud), gunakan validate_file( $file, $allowed_files )
:
<code class="language-php"> $path = 'uploads/2017/05/myfile.php'; // 返回 0(有效路径) return validate_file( $path );</code>
fungsi pembersihan/pelarian WordPress
Berikut adalah beberapa fungsi yang sering saya gunakan semasa membangunkan tema WordPress.
Padam semua aksara yang tidak dibenarkan dalam alamat e -mel yang sah. Berikut adalah contoh dari entri codex: sanitize_email( $email )
<code class="language-php"> $sanitized_email = sanitize_email(' admin@example.com! '); // 将输出:admin@example.com echo $sanitized_email;</code>
membersihkan nilai pilihan mengikut sifat pilihan, seperti nilai dari input customizer. Berikut adalah contoh: sanitize_option( $option, $value )
<code class="language-php"> sanitize_option( 'admin_email', 'admin@test.com!' );</code>
membersihkan rentetan yang disediakan oleh pengguna atau pangkalan data, tetapi anda boleh menggunakannya untuk membersihkan sebarang data yang anda ingin menjadi teks biasa: sanitize_text_field( $str )
<code class="language-php"> // 输出:标题 echo sanitize_text_field('<h1>标题</h1>');</code>
dan sanitize_hex_color( $color )
bekerja dalam konteks customizer WordPress. sanitize_hex_color_no_hash( $color )
Fungsi pertama mengesahkan entri warna heksadesimal yang diawali dengan simbol #, manakala fungsi kedua mengendalikan data warna tanpa #.
Contoh dari Rujukan Kod WordPress.org:
<code class="language-php"> $wp_customize->add_setting( 'accent_color', array( 'default' => '#f72525', 'sanitize_callback' => 'sanitize_hex_color', ) );</code>
Kandungan penapis, hanya meninggalkan tag HTML yang dibenarkan. Dalam konteks customizer, ini sangat berguna apabila topik anda membolehkan pengguna memasukkan beberapa teks dengan format HTML: wp_kses_post( $data )
<code class="language-php"> function yourtheme_sanitize_html( $input ) { return wp_kses_post( force_balance_tags( $input ) ); }</code>
adalah cara mudah untuk melepaskan blok HTML. Sebagai contoh, jika anda ingin mengeluarkan beberapa teks di dalam tag HTML untuk memastikan bahawa teks ini sendiri tidak mengandungi sebarang tag HTML atau aksara tidak sah yang lain, anda boleh menulis: esc_html( $text )
<code class="language-php"> <h2><?php echo esc_html( $title ); ?></h2></code>
berguna apabila anda ingin menyemak dan membersihkan URL, termasuk URL dalam sifat HREF dan SRC. Contohnya: esc_url( $url )
<code class="language-php"> <a href="https://www.php.cn/link/9e52112668804599bae71e241e4b4548'https://website.com'%20);%20?>">很棒的网站</a></code>
esc_attr( $text )
<code class="language-php"> <a href="https://www.php.cn/link/1649f854581e9c03bc2c4e06023c5b99'/'%20)%20);%20?>" rel="home"></a></code>
esc_textarea( $text )
<code class="language-php"> <textarea><?php echo esc_textarea( $text ); ?></textarea></code>
Sumber -sumber yang hebat berikut sangat berguna bagi saya untuk benar -benar sampai ke titik menulis kod keselamatan dalam tema WordPress:
atau, anda boleh mengetahui bagaimana penyedia hosting dapat membantu dengan keselamatan WordPress dalam perbandingan berguna ini yang telah kami teruskan untuk anda.
Jika anda berminat dengan pembangunan tema itu sendiri, anda boleh belajar membuat tema asas dari awal dengan belajar di "Build Your WordPress Tema" SitePoint "Kursus: Memuatkan Pemain ...
Kesimpulan
Keselamatan mesti berada di atas semua pemaju WordPress. WordPress memberi anda permulaan yang baik dengan menyediakan sejumlah besar fungsi siap sedia yang boleh anda masukkan ke dalam tema anda.
Jadi, menggunakan WordPress untuk mengesahkan dan membersihkan/melarikan diri fungsi adalah cara paling mudah anda boleh mula menulis tema WordPress yang selamat dan boleh dipercayai (pengguna akan belajar untuk mempercayai).
Berapa banyak yang anda anggap keselamatan semasa menulis tema atau plugin WordPress? Bagaimana anda menyelesaikan masalah keselamatan?
Klik kotak komen di bawah untuk berkongsi!
Soalan Lazim Mengenai WordPress Tema Pengesahan dan Fungsi Melarikan
Standard pengekodan WordPress adalah satu set peraturan dan garis panduan khusus yang dirumuskan oleh WordPress untuk memastikan konsistensi dan kualiti kod WordPress. Piawaian ini penting kerana mereka membuat kod lebih mudah dibaca, difahami, dan diselenggarakan. Mereka juga membantu mencegah kesilapan pengekodan biasa dan kelemahan keselamatan. Bagi pemaju, berikutan piawaian ini adalah penting untuk memastikan tema dan plugin mereka serasi dengan WordPress dan tema dan plugin lain.
Mengedit kod WordPress boleh berbahaya jika ia tidak dilakukan dengan betul. Adalah disyorkan untuk menggunakan subtopik apabila menukar kod tema. Dengan cara ini, anda boleh membuat perubahan tanpa menjejaskan tema asal. Juga, pastikan anda menyandarkan laman web anda sebelum membuat sebarang perubahan. Gunakan editor kod yang sesuai dan bukannya editor WordPress untuk mengedit kod. Akhirnya, uji perubahan anda di tapak pementasan sebelum menggunakannya ke tapak langsung anda.
Dalam analisis kualitatif, kod digunakan untuk melabel, menyusun, dan menyusun data anda, sementara topik digunakan untuk mengenal pasti corak dan hubungan dalam data. Kod biasanya satu perkataan atau frasa yang mewakili sekeping data tertentu. Sebaliknya, topik ini lebih luas, mewakili konsep atau idea yang lebih besar yang muncul dari data yang dikodkan.
Pengekodan tema adalah kaedah yang digunakan dalam penyelidikan kualitatif untuk mengenal pasti dan menganalisis corak atau topik dalam data. Di WordPress, pengekodan tema boleh merujuk kepada proses membangunkan tema dengan reka bentuk atau fungsi tertentu. Ini melibatkan menulis dan menganjurkan kod dengan cara yang mencerminkan reka bentuk atau fungsi yang dimaksudkan topik.
Fungsi Pengesahan dan Melarikan diri adalah langkah keselamatan dalam WordPress. Pengesahan adalah proses memeriksa data yang dimasukkan oleh pengguna untuk memastikan ia memenuhi syarat -syarat tertentu sebelum diproses. Melarikan diri adalah proses memastikan output selamat dengan mengeluarkan data berbahaya yang boleh menyebabkan kelemahan keselamatan. Fungsi ini penting untuk mencegah masalah keselamatan seperti suntikan SQL dan skrip lintas tapak (XSS).
Pengesahan dan data melarikan diri sangat penting untuk memastikan laman web WordPress anda selamat. Tanpa proses ini, laman web anda boleh diserang dan penyerang boleh menyuntik data berbahaya ke dalam laman web anda, mengakibatkan potensi kehilangan data atau akses yang tidak dibenarkan ke laman web anda.
WordPress menyediakan beberapa fungsi untuk mengesahkan dan melarikan diri data. Sebagai contoh, anda boleh mengesahkan input teks menggunakan fungsi sanitize_text_field()
dan melarikan diri output HTML menggunakan fungsi esc_html()
. Pastikan anda menggunakan fungsi ini apabila memproses input pengguna atau mengeluarkan data kepada penyemak imbas.
Beberapa amalan terbaik untuk menulis kod WordPress yang selamat termasuk mengikut piawaian pengekodan WordPress, mengesahkan dan melarikan diri semua data, menggunakan Nonce untuk mengesahkan sumber permintaan, memeriksa kebenaran pengguna sebelum melakukan tindakan, dan menjaga WordPress, tema, dan plugin sehingga tarikh.
Manual Pemaju WordPress adalah sumber yang sangat baik untuk belajar piawaian pengekodan WordPress. Ia memberikan penjelasan terperinci dan contoh piawaian. Terdapat juga banyak tutorial dan kursus dalam talian yang meliputi piawaian pengekodan WordPress.
Beberapa kesilapan biasa yang harus dielakkan semasa pengekodan WordPress termasuk tidak mengikuti piawaian pengekodan WordPress, tidak mengesahkan atau melarikan diri data, URL berkod keras, tidak menggunakan nonce untuk penyerahan borang, dan tidak menyimpan WordPress, tema, dan plugin terkini .
Atas ialah kandungan terperinci Pengekodan tema selamat dengan fungsi wordpress terbina dalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!