Cara Aman Mendapatkan data dari POST/GET pada Yii2
Yii2 menyertakan fungsi-fungsi yang biasa sering kita gunakan secara lengkap dan aman, biasanya kita sering menggunakan fungsi $_GET['nama_var'] dan $_POST['nama_var'] untuk mendapatkan data dari user yang dikirim melalui post/get. namun cara tersebut kurang aman karena tidak adanya nilai default jika variabelnya kosong.
Contoh:
$id = $_GET['id'];
$query = "SELECT * FROM user WHERE id = $id";Agar variabel $id lebih aman maka gunakan fungsi get atau post yang terdapat pada class yii\web\Request yang secara global terdapat pada Yii::$app->request.
$id = Yii::$app->request->get('id', 0);
// Atau bisa ditambahkan kondisi untuk memeriksa variabel id
// if ((int)$id < 1) {
// throw new \yii\web\HttpException(403, 'ID tidak benar');
// }
$query = "SELECT * FROM user WHERE id = $id";Untuk query-nya agar lebih aman biasakan pakai punyanya Yii2 yaitu class yii\db\Command atau yii\db\Query karena minim kemungkinan terkena SQLInjection.
$id = Yii::$app->request->get('id', 0);
$result = Yii::$app->db
->createCommand('SELECT * FROM user WHERE id = :id', [':id' => $id])
->queryOne();Untuk variabel $_POST juga sama dengan get, tinggal ganti fungsi get dengan post.
$id = Yii::$app->request->post('id', 0);Demikian semoga dapat bermanfaat dan terima kasih sudah mampir ke blog saya ini.
Sekian.