Jestem nowy w temacie frameworków, YII jest pierwszym, którego się uczę więc jestem jeszcze lekko zagubiony. Przestudiowałem książke Helionu o YII (nie zachwyciła mnie szczerze mówiąc) ale nadala wielu rzeczy nie rozumiem. Moje pytanie dotyczy bezpieczeństwa takiego skryptu logowania:
Model:
<?php class Uzytkownicy extends CActiveRecord { public function tableName() { return 'spr_uzytkownicy'; } public function rules() { ); } public function relations() { ); } public function attributeLabels() { 'uzytkownik_id' => 'ID', 'uzytkownik_login' => 'Login', 'uzytkownik_haslo' => 'Hasło', ); } { return parent::model($className); } } ?>
Widok
<h1>Zaloguj się</h1> <div class="form"> <?php 'id' => 'uzytkownicy-zaloguj-form', 'enableAjaxValidation' => FALSE )); ?> <p>Pola oznaczone * są wymagane</p> <div class="row"> </div> <div class="row"> </div> <div class="row buttons"> </div> <?php $this->endWidget(); ?> </div>
Kontroler:
<?php class TestController extends Controller { public function actionIndex() { $this->pageTitle = 'Zaloguj'; $Model = new Uzytkownicy; { $Model->attributes = $_POST['Uzytkownicy']; if($Model->validate()) { $Ile = $Model->count( 'uzytkownik_login = :UzytkownikLogin AND uzytkownik_haslo = :UzytkownikHaslo', ':UzytkownikLogin' => $Model->attributes['uzytkownik_login'], ':UzytkownikHaslo' => $Model->attributes['uzytkownik_haslo'] )); if($Ile == 1) { Yii::app()->session['zalogowany'] = 'tak'; $Rezultat = $Model->findAll( 'uzytkownik_login = :UzytkownikLogin AND uzytkownik_haslo = :UzytkownikHaslo', ':UzytkownikLogin' => $Model->attributes['uzytkownik_login'], ':UzytkownikHaslo' => $Model->attributes['uzytkownik_haslo'] ) ); foreach ($Rezultat as $RezultatWiersz) { Yii::app()->session['root'] = $RezultatWiersz->uzytkownik_id; } } } } 'Model' => $Model, )); } public function actionWyloguj() { Yii::app()->session['zalogowany'] = ''; Yii::app()->session['root'] = ''; } } ?>
Ten skrypt jest napisany na podstawie tej właśnie książki (a raczej w większości z niej przepisany z moimi lekkimi zmianami).
Chciałbym się dowiedzieć czy tak przygotowany skrypt logowania jest bezpieczny i może być bez obaw zastosowany na stronach opublikowanych online?
Bo powiem szczerze, że mam lekkie obawy gdyż wiem ile trzeba sobie zadać trudu pisząc coś takiego w czystym PHP (głównie chodzi o walidację).
Przepraszam za tak laickie pytanie ale jestem mocno początkujący a do dyspozycji mam tylko tą książkę i dokumentację, która jest napisana dosyć ciężkim wg mnie językiem. Praktycznie nie ma innych źródeł w języku polskim.
Pozdrawiam i z góry dziękuję za odpowiedzi.