1 / 20

PHP „ CodeIgniter “ karkaso saugumas

PHP „ CodeIgniter “ karkaso saugumas. Pareng ė: Modestas Kažinauskas. Turinys. Kas yra „ CodeIgniter “ Karkaso privalumai Galimybės Saugumas Klausimai. Kas yra „ CodeIgniter “?. Pirmoji viešai prieinama versija – 2006 metais Naujausia versija 2.1.4

becka
Download Presentation

PHP „ CodeIgniter “ karkaso saugumas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP „CodeIgniter“ karkasosaugumas 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 ModelViewController 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 („ActiveRecord“) • URL adresų apsauga • Draudžiama: register_globals • Klaidų ataskaitos • XSS filtravimas • CSRF apsauga • Automatinis GET/POST/COOKIE valymas • Formų validacija

  8. ActiveRecord • 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. ActiveRecord 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', 'Email', 'required|valid_email'); 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/ • http://ellislab.com/codeigniter/user-guide/libraries/input.html • http://ellislab.com/codeigniter/user-guide/general/security.html

  20. KLAUSIMAI

More Related