====== Bezpieczeństwo ======
===== Parametry wywołania metodą post =====
Aby zabezpieczyć się przed ręcznym wpisaniem adresu strony (z parametrami) w przeglądarce i wykonaniem operacji niedozwolonej, parametry do akcji powinny być przekazane metodą POST.
**Budowa odnośnika**
= Html::a('Szczegóły',
['/users/view', 'id' => $model->id],
['data-method' => 'POST']); ?>
**Controller**
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => ['super_user'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
'view' => ['post'], #Decyduje o sposobie przekazywania param.
],
],
];
}
public function actionView($id){
}
===== Walidacja przeciw atakom XSS =====
Metoda polega na filtrowaniu (validacji) atrybutów modelu
przed ich zapisaniem.
W modelu należy dodać funkcję:
public function beforeValidate() {
foreach (array_keys($this->getAttributes()) as $attr) {
if (!empty($this->$attr)) {
$this->$attr = \yii\helpers\HtmlPurifier::process($this->$attr);
}
}
return parent::beforeValidate();
}
HtmlPurifier to klasa, która usuwa z danych podejrzane fragmenty