Last active
July 12, 2024 03:55
-
-
Save rizkytegar/8779a088867912b825f739a48923e990 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| function e($value, $doubleEncode = true) | |
| { | |
| if ($value instanceof DeferringDisplayableValue) { | |
| $value = $value->resolveDisplayableValue(); | |
| } | |
| if ($value instanceof Htmlable) { | |
| return $value->toHtml(); | |
| } | |
| if ($value instanceof BackedEnum) { | |
| $value = $value->value; | |
| } | |
| return htmlspecialchars($value ?? '', ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8', $doubleEncode); | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Kode PHP di atas adalah sebuah fungsi bernama
eyang digunakan untuk memastikan bahwa data yang dimasukkan ke dalam halaman web aman dari serangan XSS (Cross-Site Scripting). Fungsi ini akan mengubah karakter khusus dalam teks menjadi entitas HTML yang aman, sehingga tidak dieksekusi sebagai kode berbahaya oleh browser. Mari kita jelaskan langkah demi langkah dengan bahasa yang mudah dipahami:Penjelasan Fungsi
eParameter:
true) yang menentukan apakah karakter yang sudah dienkode harus dienkode lagi atau tidak.Pengecekan Tipe Data:
resolveDisplayableValue()untuk mendapatkan nilai yang sebenarnya.toHtml()untuk mendapatkan representasi HTML dari nilai tersebut.value.Mengamankan Data:
htmlspecialchars()digunakan untuk mengubah karakter khusus (seperti<,>,&, dan"atau') menjadi entitas HTML yang aman. Misalnya,<diubah menjadi<sehingga tidak diinterpretasikan sebagai kode HTML oleh browser.ENT_QUOTES | ENT_SUBSTITUTEdigunakan untuk memastikan bahwa baik tanda kutip tunggal (') maupun ganda (") diubah menjadi entitas HTML, dan karakter yang tidak valid diganti dengan karakter pengganti.UTF-8sebagai karakter encoding memastikan bahwa data ditangani dengan benar dalam format karakter yang umum digunakan.$doubleEncodemenentukan apakah karakter yang sudah dienkode harus dienkode lagi atau tidak.Kesimpulan
Dengan kata lain, fungsi
eini memastikan bahwa data yang kita masukkan ke dalam halaman web aman dengan mengubah karakter-karakter yang dapat berbahaya menjadi bentuk yang tidak akan dieksekusi oleh browser sebagai kode. Hal ini mencegah serangan XSS, di mana penyerang mencoba menyuntikkan kode berbahaya ke dalam halaman web untuk mencuri data atau merusak situs.Berikut adalah penjelasan ringkasnya dalam bahasa awam:
emelindungi data yang akan ditampilkan di halaman web dengan mengubah karakter berbahaya menjadi aman.Jika ada bagian yang masih membingungkan atau ada pertanyaan lain, jangan ragu untuk bertanya!