Request
Untuk keamanan, Panada mempersiapkan class Request untuk menangani proses request $_POST, $_GET dan $_COOKIE.
Panada menggunakan fungsi filter_input() dari PHP untuk melakukan validatsi atau sanatasi.
Berikut adalah list untuk Filter_type yang digunakan untuk validasi/sanitasi:
- Sanitasi Request:
- FILTER_SANITIZE_EMAIL
- FILTER_SANITIZE_ENCODED
- FILTER_SANITIZE_MAGIC_QUOTES
- FILTER_SANITIZE_NUMBER_FLOAT
- FILTER_SANITIZE_NUMBER_INT
- FILTER_SANITIZE_SPECIAL_CHARS
- FILTER_SANITIZE_STRING
- FILTER_SANITIZE_STRIPPED
- FILTER_SANITIZE_URL
- FILTER_UNSAFE_RAW
- Validasi Request:
- FILTER_VALIDATE_BOOLEAN
- FILTER_VALIDATE_EMAIL
- FILTER_VALIDATE_FLOAT
- FILTER_VALIDATE_INT
- FILTER_VALIDATE_IP
- FILTER_VALIDATE_REGEXP
- FILTER_VALIDATE_URL
Keterangan mengenai masing-masing konstantan di atas bisa dilihat di halaman http://www.php.net/manual/en/filter.filters.validate.php dan http://www.php.net/manual/en/filter.filters.sanitize.php.
POST
Pada umumnya jika kita ingin mendapatkan nilai dari variable $_POST kita menggunakan:
$myValue = $_POST['myValue'];
Jika tidak difilter, cara ini kurang baik karena dapat mebuka celah keamanan. Untuk mengatasi hal ini class Request mempersiapkan method:
$this->request->post(key_name, filter_type, flags);
Dimana:
- key_name, adalah nama nilai variable POST yang akan didapat.
- filter_type, adalah tipe filter yang diinginkan.
- flags, flag dari tipe filter yang dipilih (opsional).
GET
Untuk mendapatkan nilai dari variable GET, gunakan method:
$this->request->get(key_name, filter_type, flags);
Dimana:
- key_name, adalah nama nilai variable GET yang akan didapat.
- filter_type, adalah tipe filter yang diinginkan.
- flags, flag dari tipe filter yang dipilih (opsional).
COOKIE
Untuk mendapatkan nilai dari variable COOKIE, gunakan method:
$this->request->cookie(key_name, filter_type, flags);
Dimana:
- key_name, adalah nama nilai variable COOKIE yang akan didapat.
- filter_type, adalah tipe filter yang diinginkan.
- flags, flag dari tipe filter yang dipilih (opsional).
Sample
stripTagsAttributes
Jika Anda mengizinkan input berupa tag HTML, tetapi hanya beberapa tag saja yang diperbolehkan, maka Anda bisa menggunakan method:
$this->request->stripTagsAttributes($string, $allowtags = null, $allowattributes = null);
- $string, string input yang akan difilter.
- $allowtags, tag apa saja yang diizinkan. Contoh: '<em><i><b><strong>'
- $allowattributes, attribute apa saja yang diizinkan. Contoh: 'href, rel, title'