Presentation is loading. Please wait.

Presentation is loading. Please wait.

PHP „CodeIgniter“ karkaso saugumas

Similar presentations


Presentation on theme: "PHP „CodeIgniter“ karkaso saugumas"— Presentation transcript:

1 PHP „CodeIgniter“ karkaso saugumas
Parengė: Modestas Kažinauskas

2 Turinys Kas yra „CodeIgniter“ Karkaso privalumai Galimybės Saugumas
Klausimai

3 Kas yra „CodeIgniter“? Pirmoji viešai prieinama versija – 2006 metais
Naujausia versija 2.1.4 Atvirojo kodo Interneto aplikacijų karkasas Skirtas PHP aplikacijų kūrimui Paremtas Model View Controller dizaino šablonu Palaiko ir prižiūri „EllisLab“

4 Karkaso privalumai Nedidelis Labai spartus
Veikia ant daugelio svetainių talpinimo serverių Reikia labai mažai konfigūravimo Nereikia naudoti komandinės eilutės Nereikia laikytis griežtų kodavimo standartų Nėra būtina mokėti šablonų kalbos Aiški dokumentacija

5 „CodeIgniter“ galimybės
Greitas aplikacijų kūrimas Padeda tvarkyti kasdieniškus dalykus: Užklausų apdorojimas Puslapiavimas Validacija Ir kt.

6 „CodeIgniter“ saugumas

7 Saugumas Duomenų bazės pavojingų užklausų vengimas („Active Record“)
URL adresų apsauga Draudžiama: register_globals Klaidų ataskaitos XSS filtravimas CSRF apsauga Automatinis GET/POST/COOKIE valymas Formų validacija

8 Active Record Modifikuota architektūrinio dizaino šablono versija
Leidžia atlikti CREATE/READ/UPDATE/DELETE operacijas su duomenų baze Galima naudoti su be kuria realiacine duomenų baze Leidžia sujungti metodus (chaining, PHP5+)

9 Active Record pavyzdys
$query = $this->db->from(‘naudotojai’) ->where(‘dept’, ‘DIT’) ->order_by(‘pavarde asc’); foreach ($query->result() as $row) { echo $row->vardas.’ ‘.$row->pavardė; }

10 URL adresų apsauga Dėl pavojingo duomenų pateikimo aplikacijai yra blokuojami visi pavojingi simboliai išskyrus: Skaičiai ir raidės Tildė: „~“ Taškas: „.“ Dvitaškis: „:“ Apatinis brūkšnys: „_“ Paprastas brūkšnys: „-“

11 Register_globals išjungimas
Su „register_globals“ $_POST[`vartotojo_vardas`] galima pasiekti kaip $vartotojo_vardas „CodeIgniter“ karkasas automatiškai išjungią šia PHP funkciją Pavojingo atvejo pavyzdys: page1.php -> $_SESSION[`user`]=`modestas`; page2.php -> if(!empty($user)){//priėjimas prie autentifikuoto naudojo funkcijų} Pavojinga užklausa: page2.php?user=`modestas`

12 Klaidų ataskaitos Pavojinga rodyti produkcinėje aplinkoje dėl jautrios informacijos atskleidimo Galima įjungti arba išjungti konfigūracijoje pakeičiant reikšmę „error_reporting“ (0 arba 1) Taip pat keičiant ENVIROMENT konstantą esančią index.php faile. Production – išjungia, development – ijungia.

13 XSS filtravimas Galima naudoti kaip funkciją:
$data = $this->security->xss_clean($data); Galima tikrinti ar paveikslėlis yra saugus: if ($this->security->xss_clean($file, TRUE) === FALSE) {// Nepavykęs XSS testas} Galima įjungti automatinį filtravimą POST arba COOKIE duomenims: „application/config/config.php“ $config['global_xss_filtering'] = TRUE;

14 Failo vardo apsauga Pavojinga kai pateikiamas toks failo vardas: „file/in/some/approved/folder.txt “ $this->security->sanitize_filename() naudojimas: $filename = $this->security->sanitize_filename($this- >input->post('filename'));

15 CSRF apsauga Įjungiama „config.php“ faile: $config['csrf_protection'] = TRUE; Naudojant funkciją form_open() automatiškai yra įdedamas paslėptas laukelis su kodu.

16 Formų validacija Atliekama kontroleryje
Kai kurie tikrinimai egzistuoja, bet galima nustatyti ir savo

17 Formų validacijos pavyzdys
$this->load->library('form_validation'); $this->form_validation->set_rules('vardotojo_vardas', 'Username', 'required'); $this->form_validation->set_rules('slaptazodis', 'Password', 'required'); $this->form_validation->set_rules(‘slaptazodis2', 'Password Confirmation', 'required'); $this->form_validation->set_rules('el_pastas', ' ', 'required|valid_ '); if ($this->form_validation->run() == FALSE) { $this->load->view('myform'); } else { $this->load->view('formsuccess'); }

18 Automatinis GET/POST/COOKIE valymas
Filtravimas automatiškai įjungiamas paleidžiant kontrolerį Jei išjungtas „allow_get_array“ tai sunaikinamas globalus GET masyvas Išfiltruoja visus GET/POST/COOKIE masyvų raktus leidžiant tik skaičius ir raides, bei kelis kitus simbolius Išvalo XSS atakas Padaro naujos eilutės simbolius į „\n“ (jei windows „\r\n“)

19 Šaltiniai http://ellislab.com/codeigniter/user-guide/
guide/libraries/input.html guide/general/security.html

20 KLAUSIMAI


Download ppt "PHP „CodeIgniter“ karkaso saugumas"

Similar presentations


Ads by Google