PHP „CodeIgniter“ karkaso saugumas

Slides:



Advertisements
Similar presentations
Ian J Robotham Software Development Lead Medi-CAL Unit, University of Aberdeen.
Advertisements

1.  Understanding about How to Working with Server Side Scripting using PHP Framework (CodeIgniter) 2.
Web Scripting [PHP] CIS166AE Wednesdays 6:00pm – 9:50pm Rob Loy.
Lietuvos vardo kilmė Žmogus, nepažįstantis savo tautos namų – Tėvynės žemės, kurioje nuo seno tėvai ir protėviai gyveno, - nėra savo krašto pilietis! Įsisąmoninkime.
Muzikos ženklų karuselė
Vaizdinė užduotis. Kuriose iš šių valstybių galima pamatyti tokius gyvenamuosius namus? Jemene Tanzanijoje Mongolijoje Indonezijoje A B C D 1.
NOVELL sprendimai ir atvirieji standartai Paulius Dubinskas, Novell
Network address translation Tinklo adresų vertimas
Tekstų redaktorius MS Word 200x
Etiškas informacijos naudojimas/ Bibliografinės nuorodos
Funkcijos R.
Katalogavimas MARC21. 25X-3XX laukai
Programavimo ir IT pagrindai
Darbą parengė: Viktorija Drūteikaitė IT2
SSGG (SWOT): Organizacijos stiprybės ir silpnybės, galimybės ir grėsmės (nustatymas, grupavimas, vertinimas, rezultatas) Pagrindinė literatūra: Lietuvos.
MAUDYKLŲ VANDENS KOKYBĖS STEBĖSENOS
Robert Andruškevič AT27D.   Tai yra operacinė sistema, daugiausia naudojama išmaniuosiuose telefonuose, nors ją galima įdiegti ir kituose mobiliuosiuose.
CLIL, MY OPEN WINDOW ON THE WORLD AROUND ME
Video kūrimas su Windows Movie Maker 2.0
Kompiuterio sandara, programinė įranga
Įvadas į dinaminių interneto puslapių kūrimą
Dialogo langai Benas Ragauskas, PS m.
Tekstų redaktorius MS Word 200x
BIOLOGIJA, INFORMATIKA klasės
LIETUVOS VARTOTOJŲ GALIMYBĖS NAUDOTIS VISATEKSTĖMIS DUOMENŲ BAZĖMIS
Pagrindinės sąvokos Hipertekstas ir multimedija
Skyrius 1: Paskirstytos informacinės sistemos
Ernestas Kaukėnas MIF IT 3grupė
Lotus Notes pagrindai Notes darbalaukis.
Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g
Logika a.
Daiktavardis Dalykas, ugdymo sritis: Tema: Klasė: Priemonės paskirtis:
R paketas ir jo įdiegimas
JavaScript kalbos apžvalga
Informacija kaip naudotis skaidrių demonstravimu (SLIDE SHOW) 
Paprasti skaičiavimai. Uždavinių sprendimas
Kas yra arduino ? Parengė:Karolis Šumskis ir Mokytoja ekspertė Elena Šišenina.
Atvirojo kodo elektronika
Vaikai ir internetas Neleiskime jiems kalbėtis su nepažįstamaisiais
Failai ir jų tvarkymas.
KTU Vaižganto progimnazija
Funkcijų naudojimas.
Antrosios kartos interneto technologijos
Tekstiniai uždaviniai
Saulius Ragaišis, VU MIF
Suvestinis NDLTD katalogas
Windows Resource Protection (IŠTEKLIŲ APSAUGA)
Biomedicinos mokslų informacijos šaltiniai ir paieška
„MARC 21 katalogavimo vadovo“ atnaujinimų pristatymas Įvadas
Virtualus kompiuteris
1. Learning from the first year of the project
Monika Kelpšaitė 4k. PS MIF VU
Duomenų struktūros ir algoritmai
Langų kūrimas.
Funkcijos 9 paskaita.
Operacinė sistema Testas 9 klasė
Studijų pasirinkimas Lietuvoje ir užsienyje: ką svarbu žinoti?
PARTNERIŲ PAIEŠKA UŽSIENYJE
Projektas “Saugesnis internetas”
Aplinkos duomenų masyvai
Daugelio dokumentų sąsaja (angl. Multiple document interface)
Windows Ribbon Framework
Klaipėdos Simono Dacho progimnazija
Grupinio darbo programinė įranga Lotus Notes
Pranešėjas Jurij Kuznecov
Ana Venclovienė, Rūta Smažinienė, Eglė Šegždienė
Simonas Vaicekauskas IT3 grupė
Presentation transcript:

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 Atvirojo kodo Interneto aplikacijų karkasas Skirtas PHP aplikacijų kūrimui Paremtas Model View Controller dizaino šablonu Palaiko ir prižiūri „EllisLab“

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

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

„CodeIgniter“ saugumas

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

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+)

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ė; }

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: „-“

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`

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.

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;

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'));

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

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

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'); }

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“)

Š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

KLAUSIMAI