Ubah Karakter Khusus Menjadi Entitas HTML Di PHP

Created at by Aris Munandar

Tutoral kali ini kita akan membahas bagaimana cara mengubah karakter khusus menjadi entitas HTML di PHP dengan menggunakan fungsi htmlspecialchars(). Fungsi htmlspecialchars() adalah fungsi bawaan PHP sehingga anda tidak memerlukan library pihak ketiga.

Berikut ini adalah deskripsi fungsi htmlspecialchars().

htmlspecialchars(
    string $string,
    int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string $encoding = null,
    bool $double_encode = true
): stringCode language: PHP (php)

Penjelasan mengenai parameter yang terdapat pada fungsi htmlspecialchars().

  • $string adalah string atau kalimat yang akan di filter.
  • $flags pada dasarnya, parameter ini digunakan untuk menahan satu atau lebih tanda yang menentukan bagiamana cara menangani urutan unit kode yang tidak valid, tanda kutip, dan jenis dokumen yang digunakan. nilai bawaannya adalah ENT_QUOTES | ENT_COMPAT | ENT_HTML401. Untuk daftar variabel konstanta yang dat digunakan akan dibahas dibawah.
  • $encoding digunakan untuk mendefinisikan pengkodean yang digunakan saat mengkonversi karakter, parameter ini bersifat opsional.
  • $double_encode secara bawaan berfungsi untuk mengaktifkan apakah ingin mengkonversi semua kode atau karakter khusus yang terdapat di string atau tidak.

Fungsi htmlspecialchars() akan memproses $string dan akan mengembalikan $string baru dengan karakter atau tag yang sudah diubah menjadi entitas HTML. Berikut ini adalah daftar karakter khusus menjadi entitas HTML.

SimbolNamaPengganti
&Simbol dan&
Kutipan ganda&quote; kecuali ENT_NOQUOTES di aktifkan
Kutipan tunggal' untuk ENT_HTML401 atau ' untuk ENT_XML1, ENT_XHTML atau ENT_HTML5, hanya jika ENT_QUOTES diaktifkan
<Kurang dari&lt;
>Lebih dari&gt;

Secara bawaan seperti yang sudah dijelaskan diatas, parameter $flags memfilter ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, anda dapat mengubahnya dengan data konstanta dibawah ini.

KonstantaDeskripsi
ENT_COMPATMengubah tanda kutip ganda dan membiarkan tanda kutip tunggal.
ENT_QUOTESMengubah tanpa kutip ganda dan kutipan tunggal.
ENT_NOQUOTESMembiarkan tanda kutip ganda dan kutipan tunggal.
ENT_IGNOREMembuang unit kode yang tidak valid secara senyap, alih-alih mengembalikan string kosong. Tidak disarankan menggunakan variabel ini.
ENT_SUBTITUTEMengganti unit kode yang tidak valid dengan karakteer pengganti Unicode U+FFFD (UTF-8) atau &#xFFFD; (jika tidak) akan mengembalikan string kosong.
ENT_DISALLOWEDMengganti poin kode yang tidak valid untuk jenis dokumen yang diberikan dengan karakter pengganti Unicode U+FFFD (UTF-8) atau &#xFFFD; (jika tidak) membiarkan apa adanya. Ini mungkin berguna, misalnya untuk memastikan kelengkapan dokumn XML dengan konten eksternal yang disematkan.
ENT_HTML401Menangani karakter sebagai HTML versi 4.01.
ENT_XML1Manangani karakter sebagai XML 1.
ENT_XHTMLManangani karakter sebagai XHTML.
ENT_HTML5Menangani karakter sebagai HTML 5.

Fungsi htmlspecialchars() di PHP sangat berguna untuk menangani keamanan pada website, khususnya pada bagian formulir input. Fungsi ini dapat menangani dengan cara merubah kode asli menjadi entitas, terutama serangan XSS.

Baca juga: Mengganti Kata Di PHP Dengan Fungsi str_replace()

Apa itu XSS?

XSS atau Cross-site Scripting adalah teknik serangan yang digunakan penyerang untuk dapat menyuntikan kode berbahaya ke dalam website.

Sebagai contoh, apabila anda memiliki kolom komentar, formulir pendaftaran, dan atau semacamnya yang memungkinkan pengguna lain secara sah memasukan data dari website anda ke database, dan apabila tidak di filter lalu dimasukkan kode berbahaya tersebut maka komentar atau data apapun yang tidak terfilter akan menampikan kode jahat tersebut.

Misalnya, seorang penyerang memasukan kode pada formulir tersebut dengan bermaksud mengalihkan situs anda kesitus yang lain, dengan script dibawah ini.

<script>location.replace('URL website berbahaya');</script>Code language: HTML, XML (xml)

Kode diatas berfungsi untuk mengalihkan situs, dan apabila penyerang memasukan kode tersebut, maka setiap pengunjung yang datang ke situs anda akan otomatis teralihkan.

Penggunaan fungsi htmlspecialchars()

Sebelum memulai cara penggunaan htmlspecialchars(), berikut ini adalah bagaimana PHP menampilkan kode HTML tanpa di filter. Anggap saja variabel $html dibawah ini berasal dari database anda.

<?php 
$html = "<script>alert('Halo XSS')</script>";

echo $html;Code language: HTML, XML (xml)

Kode PHP diatas akan menampilkan pesan alert seperti gambar dibawah ini.

Karakter Khusus Menjadi Entitas

Mungkin kode alert tersebut tidak berbahaya, namun bagaimana jika situs anda dialihkan ke situs lain yang berbahaya? Maka fungsi htmlspecialchars() bisa jadi solusi untuk mengubah karakter khusus menjadi entitas HTML sehingga sedikit lebih aman. Berikut ini contoh kodenya.

Kode diatas akan menampilkan kode asli yang berada di variabel $html sebagai berikut.

Fungsi htmlspecialchars()

Namun jika anda view-source di browser maka kode yang akan tampil dibelakangnya seperti dibawah ini.

View-source htmlspecialchars()

Demikian tutorial tentang mengubah karakter khusus menjadi entitas di HTML dengan menggunakan fungsi htmlspecialchars(). Jika ada pertanyaan silahkan tinggalkan komentar dibawah ya.

Comments

Congrats, you have the opportunity to be the first commenter on this article. Have questions or suggestions? Please leave a comment to start discussion.

Leave comment

Alamat email Anda tidak akan dipublikasikan. Required fields are marked *

news-1701

sabung ayam online

yakinjp

yakinjp

rtp yakinjp

slot thailand

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

maujp

sabung ayam online

sabung ayam online

judi bola online

sabung ayam online

judi bola online

slot mahjong ways

slot mahjong

sabung ayam online

judi bola

live casino

sabung ayam online

judi bola

live casino

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

cuaca 228000590

cuaca 228000591

cuaca 228000592

cuaca 228000593

cuaca 228000594

cuaca 228000595

cuaca 228000596

cuaca 228000597

cuaca 228000598

cuaca 228000599

cuaca 228000600

cuaca 228000601

cuaca 228000602

cuaca 228000603

cuaca 228000604

cuaca 228000605

cuaca 228000606

cuaca 228000607

cuaca 228000608

cuaca 228000609

cuaca 228000610

cuaca 228000611

cuaca 228000612

cuaca 228000613

cuaca 228000614

cuaca 228000615

cuaca 228000616

cuaca 228000617

cuaca 228000618

cuaca 228000619

cuaca 228000620

cuaca 228000621

cuaca 228000622

cuaca 228000623

cuaca 228000624

cuaca 228000625

cuaca 228000626

cuaca 228000627

cuaca 228000628

cuaca 228000629

cuaca 228000630

cuaca 228000631

cuaca 228000632

cuaca 228000633

cuaca 228000634

cuaca 228000635

cuaca 228000636

cuaca 228000637

cuaca 228000638

cuaca 228000639

cuaca 228000640

cuaca 228000641

cuaca 228000642

cuaca 228000643

cuaca 228000644

cuaca 228000645

cuaca 228000646

cuaca 228000647

cuaca 228000648

cuaca 228000649

cuaca 228000650

info 328000526

info 328000527

info 328000528

info 328000529

info 328000530

info 328000531

info 328000532

info 328000533

info 328000534

info 328000535

info 328000536

info 328000537

info 328000538

info 328000539

info 328000540

info 328000541

info 328000542

info 328000543

info 328000544

info 328000545

info 328000546

info 328000547

info 328000548

info 328000549

info 328000550

info 328000551

info 328000552

info 328000553

info 328000554

info 328000555

info 328000556

info 328000557

info 328000558

info 328000559

info 328000560

berita 428011421

berita 428011422

berita 428011423

berita 428011424

berita 428011425

berita 428011426

berita 428011427

berita 428011428

berita 428011429

berita 428011430

berita 428011431

berita 428011432

berita 428011433

berita 428011434

berita 428011435

berita 428011436

berita 428011437

berita 428011438

berita 428011439

berita 428011440

berita 428011441

berita 428011442

berita 428011443

berita 428011444

berita 428011445

berita 428011446

berita 428011447

berita 428011448

berita 428011449

berita 428011450

berita 428011451

berita 428011452

berita 428011453

berita 428011454

berita 428011455

berita 428011456

berita 428011457

berita 428011458

berita 428011459

berita 428011460

kajian 638000002

kajian 638000003

kajian 638000004

kajian 638000005

kajian 638000006

kajian 638000007

kajian 638000008

kajian 638000009

kajian 638000010

kajian 638000011

kajian 638000012

kajian 638000013

kajian 638000014

kajian 638000015

kajian 638000016

kajian 638000017

kajian 638000018

kajian 638000019

kajian 638000020

kajian 638000021

kajian 638000022

kajian 638000023

kajian 638000024

kajian 638000025

kajian 638000026

kajian 638000027

kajian 638000028

kajian 638000029

kajian 638000030

kajian 638000031

kajian 638000032

kajian 638000033

kajian 638000034

kajian 638000035

kajian 638000036

kajian 638000037

kajian 638000038

kajian 638000039

kajian 638000040

article 788000001

article 788000002

article 788000003

article 788000004

article 788000005

article 788000006

article 788000007

article 788000008

article 788000009

article 788000010

article 788000011

article 788000012

article 788000013

article 788000014

article 788000015

article 788000016

article 788000017

article 788000018

article 788000019

article 788000020

article 788000021

article 788000022

article 788000023

article 788000024

article 788000025

article 788000026

article 788000027

article 788000028

article 788000029

article 788000030

news-1701
news-1701

sabung ayam online

yakinjp

yakinjp

rtp yakinjp

slot thailand

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

maujp

sabung ayam online

sabung ayam online

judi bola online

sabung ayam online

judi bola online

slot mahjong ways

slot mahjong

sabung ayam online

judi bola

live casino

sabung ayam online

judi bola

live casino

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

cuaca 228000590

cuaca 228000591

cuaca 228000592

cuaca 228000593

cuaca 228000594

cuaca 228000595

cuaca 228000596

cuaca 228000597

cuaca 228000598

cuaca 228000599

cuaca 228000600

cuaca 228000601

cuaca 228000602

cuaca 228000603

cuaca 228000604

cuaca 228000605

cuaca 228000606

cuaca 228000607

cuaca 228000608

cuaca 228000609

cuaca 228000610

cuaca 228000611

cuaca 228000612

cuaca 228000613

cuaca 228000614

cuaca 228000615

cuaca 228000616

cuaca 228000617

cuaca 228000618

cuaca 228000619

cuaca 228000620

cuaca 228000621

cuaca 228000622

cuaca 228000623

cuaca 228000624

cuaca 228000625

cuaca 228000626

cuaca 228000627

cuaca 228000628

cuaca 228000629

cuaca 228000630

cuaca 228000631

cuaca 228000632

cuaca 228000633

cuaca 228000634

cuaca 228000635

cuaca 228000636

cuaca 228000637

cuaca 228000638

cuaca 228000639

cuaca 228000640

cuaca 228000641

cuaca 228000642

cuaca 228000643

cuaca 228000644

cuaca 228000645

cuaca 228000646

cuaca 228000647

cuaca 228000648

cuaca 228000649

cuaca 228000650

info 328000526

info 328000527

info 328000528

info 328000529

info 328000530

info 328000531

info 328000532

info 328000533

info 328000534

info 328000535

info 328000536

info 328000537

info 328000538

info 328000539

info 328000540

info 328000541

info 328000542

info 328000543

info 328000544

info 328000545

info 328000546

info 328000547

info 328000548

info 328000549

info 328000550

info 328000551

info 328000552

info 328000553

info 328000554

info 328000555

info 328000556

info 328000557

info 328000558

info 328000559

info 328000560

berita 428011421

berita 428011422

berita 428011423

berita 428011424

berita 428011425

berita 428011426

berita 428011427

berita 428011428

berita 428011429

berita 428011430

berita 428011431

berita 428011432

berita 428011433

berita 428011434

berita 428011435

berita 428011436

berita 428011437

berita 428011438

berita 428011439

berita 428011440

berita 428011441

berita 428011442

berita 428011443

berita 428011444

berita 428011445

berita 428011446

berita 428011447

berita 428011448

berita 428011449

berita 428011450

berita 428011451

berita 428011452

berita 428011453

berita 428011454

berita 428011455

berita 428011456

berita 428011457

berita 428011458

berita 428011459

berita 428011460

kajian 638000002

kajian 638000003

kajian 638000004

kajian 638000005

kajian 638000006

kajian 638000007

kajian 638000008

kajian 638000009

kajian 638000010

kajian 638000011

kajian 638000012

kajian 638000013

kajian 638000014

kajian 638000015

kajian 638000016

kajian 638000017

kajian 638000018

kajian 638000019

kajian 638000020

kajian 638000021

kajian 638000022

kajian 638000023

kajian 638000024

kajian 638000025

kajian 638000026

kajian 638000027

kajian 638000028

kajian 638000029

kajian 638000030

kajian 638000031

kajian 638000032

kajian 638000033

kajian 638000034

kajian 638000035

kajian 638000036

kajian 638000037

kajian 638000038

kajian 638000039

kajian 638000040

article 788000001

article 788000002

article 788000003

article 788000004

article 788000005

article 788000006

article 788000007

article 788000008

article 788000009

article 788000010

article 788000011

article 788000012

article 788000013

article 788000014

article 788000015

article 788000016

article 788000017

article 788000018

article 788000019

article 788000020

article 788000021

article 788000022

article 788000023

article 788000024

article 788000025

article 788000026

article 788000027

article 788000028

article 788000029

article 788000030

news-1701