Narzędzia użytkownika

Narzędzia witryny


bezpieczenstwo

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

bezpieczenstwo.txt · ostatnio zmienione: 2024/09/15 16:22 przez 127.0.0.1