Atasi Error The URI you submitted has disallowed characters

Hallo gaes, baru saja saya mendapati masalah saat mengakses label yang saya buat sendiri dengan karakter khusus seperti "+", yaitu pada label "notepad++".

https://bundet.com/pub/label/c++

Seketika munculah error seperti berikut:

The URI you submitted has disallowed characters

Maka yang saya lakukan adalah seperti biasa, tanya mbah google, dan lagi-lagi solusi tersebut tersedia di stackoverflow yang intinya adalah dengan menambahkan konfiurasi pada file config.php codeigniter.

application/config/config.php

Saran di stackoverflow tidak menyertakan tanda "+", namun karena masalah saya disebabkan oleh tanda "+", jadi saya tinggal tambahkan saja karakter khusus tersebut, jadi seperti ini:

/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify which characters are permitted within your URLs.
| When someone tries to submit a URL with disallowed characters they will
| get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible.  By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| The configured value is actually a regular expression character group
| and it will be executed as: ! preg_match('/^[]+$/i
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-+';

Siip beres!

Pertanyaan yang pernah dilontarkan oleh para pengunjung:

"Maaf apakah situsnya tetap aman kalau dibuat false, saya juga mengalami hal ini diweb kantor saya."

Dan berikut adalah tanggapan kami:

Dokumentasi codeIgniter menjelaskan, bahwa CSRF digunakan untuk memfilter inputan field pada formulir, dengan cara mengaktifkan CSRF (membuatnya TURE), maka aturan main default regular expression CSRF akan berlaku, artinya inputan yang diizinkan hanya jenis karakter yang sudah ditentukan, seperti di bawah ini

$config['csrf_exclude_uris'] = array( 'api/record/[0-9]+', 'api/title/[a-z]+' ); 

Sebenarnya metode ini bisa juga dilakukan di sisi client (front end), menggunakan attribut pattern. Hanya saja mudah bagi seorang hacker untuk memanipulasi ini. Oleh sebab itu perlu antisipasi lebih mengatasi hal semacam ini, sehingga CI menediakan config tersebut untuk mengatasinya di sini backend, keamanan berlapis seperti ini sangat direkomendasikan.

Nah, sekarang kembali kepada kasus yang sedang dihadapi. Contoh, pada kasus ini, user yang bisa menginputkan sintak2x javascript adalah admin (untuk membuat postingan) artinya untuk bisa mendapatkan fitur tersebut kan harus melalu rule user level, disini saya sudah cukup menghandle dengan itu. Jadi tidak ada yang bisa input javascript kecuali saya.

Kedua, sisi klien, saya sudah menggunakan markdown untuk memfilter segala bentuk inputan dari komentar klien, di markdown tidak ada kesempatan untuk menginputkan sintak2x javascript, karena semuanya bakal di convert kedalam sintak markdown.

Jadi saya membuatnya FALSE, karena untuk kepentingan pribadi, jika Agan berurusan dengan aplikasi klien, alangkah baiknya jika mengikuti rekomendasi keamanan dari CI.

Sekian dan terimakasih.


Post a Comment

Previous Next

نموذج الاتصال