SlideShare a Scribd company logo
1 of 58
SSeeccuurriinngg PPHHPP AApppplliiccaattiioonnss 
RReeggggiiee NNiiccccoolloo SSaannttooss 
UUPP IITTDDCC 
AAddaapptteedd ffrroomm RReeggnnaarrdd RRaaqquueeddaann’’ss sseett ooff sslliiddeess
OOuuttlliinnee 
DDeeffiinniittiioonn 
BBaassiicc PPrriinncciipplleess 
IInnppuutt FFiilltteerriinngg 
WWhhiitteelliisstt vvss.. BBllaacckklliisstt AApppprrooaacchh 
EEssccaappiinngg OOuuttppuutt
OOuuttlliinnee 
PPrreeppaarreedd SSttaatteemmeennttss 
CCllaassssiiffiiccaattiioonnss ooff AAttttaacckkss 
FFoorrmm SSppooooffiinngg 
XXSSSS ((CCrroossss--SSiittee SSccrriippttiinngg)) 
CCSSRRFF ((CCrroossss--SSiittee RReeqquueesstt FFoorrggeerryy))
OOuuttlliinnee 
CCllaassssiiffiiccaattiioonnss ooff AAttttaacckkss 
SSQQLL IInnjjeeccttiioonn 
SSeessssiioonn FFiixxaattiioonn 
SSeessssiioonn HHiijjaacckkiinngg 
RReemmoottee CCooddee IInnjjeeccttiioonn
WWhhaatt iiss SSeeccuurriittyy?? 
AAccccoorrddiinngg ttoo tthhee PPHHPP SSeeccuurriittyy CCoonnssoorrttiiuumm:: 
SSeeccuurriittyy iiss aa mmeeaassuurreemmeenntt,, nnoott aa cchhaarraacctteerriissttiicc 
SSeeccuurriittyy mmuusstt bbee bbaallaanncceedd wwiitthh eexxppeennssee 
SSeeccuurriittyy mmuusstt bbee bbaallaanncceedd wwiitthh uussaabbiilliittyy 
SSeeccuurriittyy mmuusstt bbee ppaarrtt ooff tthhee ddeessiiggnn
BBaassiicc PPrriinncciipplleess 
CCoonnssiiddeerr iilllleeggiittiimmaattee uusseess ooff yyoouurr aapppplliiccaattiioonn 
EEdduuccaattee yyoouurrsseellff 
IIff nnootthhiinngg eellssee,, ffiilltteerr aallll eexxtteerrnnaall ddaattaa
AA SSeeccuurree MMiinnddsseett 
AA sseeccuurriittyy--ccoonnsscciioouuss mmiinnddsseett aassssuummeess tthhaatt aallll ddaattaa 
rreecceeiivveedd iinn iinnppuutt iiss ttaaiinntteedd aanndd tthhiiss ddaattaa mmuusstt bbee 
ffiilltteerreedd bbeeffoorree uussee aanndd eessccaappeedd wwhheenn lleeaavviinngg tthhee 
aapppplliiccaattiioonn..
AAllll IInnppuutt iiss TTaaiinntteedd 
IIff tthhee ddaattaa oorriiggiinnaatteess ffrroomm aa ffoorreeiiggnn ssoouurrccee ssuucchh aass 
uusseerr ffoorrmm iinnppuutt,, tthhee qquueerryy ssttrriinngg,, oorr eevveenn aann RRSSSS 
ffeeeedd,, iitt ccaannnnoott bbee ttrruusstteedd.. IItt iiss ttaaiinntteedd ddaattaa.. 
BBeeffoorree pprroocceessssiinngg ttaaiinntteedd ddaattaa,, iitt iiss iimmppoorrttaanntt ttoo ffiilltteerr 
aanndd ssaanniittiizzee iitt.. OOnnccee tthhee ddaattaa iiss ffiilltteerreedd aanndd 
ssaanniittiizzeedd,, tthheenn iitt iiss ccoonnssiiddeerreedd ssaaffee ttoo uussee..
WWhhiitteelliisstt vvss.. BBllaacckklliisstt 
BBllaacckklliisstt aapppprrooaacchh 
tthhee lleessss rreessttrriiccttiivvee ffoorrmm ooff ffiilltteerriinngg tthhaatt aassssuummeess tthhee 
pprrooggrraammmmeerr kknnoowwss eevveerryytthhiinngg tthhaatt sshhoouulldd nnoott bbee 
aalllloowweedd ttoo ppaassss tthhrroouugghh 
WWhhiitteelliisstt ffiilltteerriinngg 
mmuucchh mmoorree rreessttrriiccttiivvee,, yyeett iitt aaffffoorrddss tthhee pprrooggrraammmmeerr tthhee 
aabbiilliittyy ttoo aacccceepptt oonnllyy tthhee iinnppuutt ss//hhee eexxppeeccttss ttoo 
rreecceeiivvee
IInnppuutt FFiilltteerriinngg 
OOnnee ooff tthhee kkeeyy ccoonncceeppttss yyoouu mmuusstt aacccceepptt iiss tthhaatt uusseerr 
iinnppuutt iiss uunnrreelliiaabbllee aanndd nnoott ttoo bbee ttrruusstteedd 
PPaarrttiiaallllyy lloosstt iinn ttrraannssmmiissssiioonn bbeettwweeeenn sseerrvveerr aanndd 
cclliieenntt 
CCoorrrruupptteedd bbyy ssoommee iinn--bbeettwweeeenn pprroocceessss 
MMooddiiffiieedd bbyy tthhee uusseerr iinn aann uunneexxppeecctteedd mmaannnneerr 
IInntteennttiioonnaall aatttteemmpptt ttoo ggaaiinn uunnaauutthhoorriizzeedd aacccceessss oorr 
ttoo ccrraasshh tthhee aapppplliiccaattiioonn
EExxaammppllee:: IInnppuutt FFiilltteerriinngg 
<<ffoorrmm mmeetthhoodd==""PPOOSSTT"">> 
UUsseerrnnaammee:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""uusseerrnnaammee"" //>><<bbrr //>> 
PPaasssswwoorrdd:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""ppaasssswwoorrdd"" //>><<bbrr //>> 
FFaavvoouurriittee ccoolloouurr:: 
<<sseelleecctt nnaammee==""ccoolloouurr"">> 
<<ooppttiioonn>>RReedd<<//ooppttiioonn>> 
<<ooppttiioonn>>BBlluuee<<//ooppttiioonn>> 
<<ooppttiioonn>>YYeellllooww<<//ooppttiioonn>> 
<<ooppttiioonn>>GGrreeeenn<<//ooppttiioonn>> 
<<//sseelleecctt>><<bbrr //>> 
<<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>> 
<<//ffoorrmm>>
EExxaammppllee:: IInnppuutt FFiilltteerriinngg 
$$cclleeaann == aarrrraayy(());; 
iiff ((ccttyyppee__aallpphhaa(($$__PPOOSSTT[[‘‘uusseerrnnaammee’’]])))) 
{{ 
$$cclleeaann[[’’uusseerrnnaammee’’]] == $$__PPOOSSTT[[’’uusseerrnnaammee’’]];; 
}} if (ctype_alnum($_POST[’password’])) 
{{ 
$$cclleeaann[[’’ppaasssswwoorrdd’’]] == $$__PPOOSSTT[[’’ppaasssswwoorrdd’’]];; 
}} 
$$ccoolloouurrss == aarrrraayy((’’RReedd’’,, ’’BBlluuee’’,, ’’YYeellllooww’’,, ’’GGrreeeenn’’));; 
iiff ((iinn__aarrrraayy(($$__PPOOSSTT[[’’ccoolloouurr’’]],, $$ccoolloouurrss)))) 
{{ 
$$cclleeaann[[’’ccoolloouurr’’]] == $$__PPOOSSTT[[’’ccoolloouurr’’]];; 
}}
EEssccaappiinngg OOuuttppuutt 
WWhheerreeaass ffiilltteerriinngg iinnppuutt pprrootteeccttss yyoouurr aapppplliiccaattiioonn ffrroomm 
bbaadd oorr hhaarrmmffuull ddaattaa,, eessccaappiinngg oouuttppuutt pprrootteeccttss tthhee 
cclliieenntt aanndd uusseerr ffrroomm ppootteennttiiaallllyy ddaammaaggiinngg ccoommmmaannddss 
TToo eessccaappee oouuttppuutt iinntteennddeedd ffoorr aa wweebb bbrroowwsseerr,, PPHHPP 
pprroovviiddeess hhttmmllssppeecciiaallcchhaarrss(()) aanndd hhttmmlleennttiittiieess(()),, tthhee 
llaatttteerr bbeeiinngg tthhee mmoosstt eexxhhaauussttiivvee aanndd,, tthheerreeffoorree,, 
rreeccoommmmeennddeedd ffuunnccttiioonn ffoorr eessccaappiinngg
EExxaammppllee:: EEssccaappiinngg OOuuttppuutt 
$$hhttmmll == aarrrraayy();; 
$$hhttmmll[[’’mmeessssaaggee’’]] == hhttmmlleennttiittiieess($$uusseerr__mmeessssaaggee,, 
EENNTT__QQUUOOTTEESS,, ’’UUTTFF--88’’);; 
eecchhoo $$hhttmmll[[’’mmeessssaaggee’’]];;
PPrreeppaarreedd SSttaatteemmeennttss 
//// FFiirrsstt,, ffiilltteerr tthhee iinnppuutt 
$$cclleeaann == aarrrraayy();; 
iiff (ccttyyppee__aallpphhaa($$__PPOOSSTT[[’’uusseerrnnaammee’’]])) 
{{ 
$$cclleeaann[[’’uusseerrnnaammee’’]] == $$__PPOOSSTT[[’’uusseerrnnaammee’’]];; 
}} 
//// SSeett aa nnaammeedd ppllaacceehhoollddeerr iinn tthhee SSQQLL ssttaatteemmeenntt ffoorr uusseerrnnaammee 
$$ssqqll == ’’SSEELLEECCTT ** FFRROOMM uusseerrss WWHHEERREE uusseerrnnaammee == ::uusseerrnnaammee’’;; 
//// AAssssuummee tthhee ddaattaabbaassee hhaannddlleerr eexxiissttss;; pprreeppaarree tthhee ssttaatteemmeenntt 
$$ssttmmtt == $$ddbbhh-->>pprreeppaarree($$ssqqll);; 
//// BBiinndd aa vvaalluuee ttoo tthhee ppaarraammeetteerr 
$$ssttmmtt-->>bbiinnddPPaarraamm(’’::uusseerrnnaammee’’,, $$cclleeaann[[’’uusseerrnnaammee’’]]);; 
//// EExxeeccuuttee aanndd ffeettcchh rreessuullttss 
$$ssttmmtt-->>eexxeeccuuttee();; 
$$rreessuullttss == $$ssttmmtt-->>ffeettcchhAAllll();;
WWeebbssiittee SSeeccuurriittyy 
TThhee sseeccuurriittyy ooff tthhee eelleemmeennttss ooff aa wweebbssiittee tthhrroouugghh 
wwhhiicchh aann aattttaacckkeerr ccaann iinntteerrffaaccee wwiitthh yyoouurr aapppplliiccaattiioonn.. 
TThheessee vvuullnneerraabbllee ppooiinnttss ooff eennttrryy iinncclluuddee ffoorrmmss aanndd 
UURRLLss
SSppooooffeedd FFoorrmmss 
TThhee eeaassiieesstt wwaayy iiss ttoo ssiimmppllyy ccooppyy aa ttaarrggeett ffoorrmm aanndd 
eexxeeccuuttee iitt ffrroomm aa ddiiffffeerreenntt llooccaattiioonn
EExxaammppllee:: FFoorrmm SSppooooffiinngg 
<<ffoorrmm mmeetthhoodd==""PPOOSSTT"" aaccttiioonn==""pprroocceessss..pphhpp"">> 
<<pp>>SSttrreeeett:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""ssttrreeeett"" 
mmaaxxlleennggtthh==""110000"" //>><<//pp>> 
<<pp>>CCiittyy:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""cciittyy"" mmaaxxlleennggtthh==""5500"" 
//>><<//pp>> 
<<pp>>SSttaattee:: 
<<sseelleecctt nnaammee==""ssttaattee"">> 
<<ooppttiioonn vvaalluuee=="""">>PPiicckk aa ssttaattee......<<//ooppttiioonn>> 
<<ooppttiioonn vvaalluuee==""AALL"">>AAllaabbaammaa<<//ooppttiioonn>> 
<<ooppttiioonn vvaalluuee==""AAKK"">>AAllaasskkaa<<//ooppttiioonn>> 
<<ooppttiioonn vvaalluuee==""AARR"">>AArriizzoonnaa<<//ooppttiioonn>> 
<<!!-- ooppttiioonnss ccoonnttiinnuuee ffoorr aallll 5500 ssttaatteess -->> 
<<//sseelleecctt>> 
<<//pp>> 
<<pp>>ZZiipp:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""zziipp"" mmaaxxlleennggtthh==""55"" //>><<//pp>> 
<<pp>><<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>><<//pp>> 
<<//ffoorrmm>>
EExxaammppllee:: FFoorrmm SSppooooffiinngg 
<<ffoorrmm mmeetthhoodd==""PPOOSSTT"" 
aaccttiioonn==""hhttttpp::////eexxaammppllee..oorrgg//pprroocceessss..pphhpp"">> 
<<pp>>SSttrreeeett:: <<iinnppuutt ttyyppee==""tteexxtt"" 
nnaammee==""ssttrreeeett"" //>><<//pp>> 
<<pp>>CCiittyy:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""cciittyy"" 
//>><<//pp>> 
<<pp>>SSttaattee:: <<iinnppuutt ttyyppee==""tteexxtt"" 
nnaammee==""ssttaattee"" //>><<//pp>> 
<<pp>>ZZiipp:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""zziipp"" 
//>><<//pp>> 
<<pp>><<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>><<//pp>> 
<<//ffoorrmm>>
FFoorrmm SSppooooffiinngg:: RRiisskk MMiittiiggaattiioonn 
CChheecckk tthhee rreeffeerrrreerr 
NNoott 110000%% sseeccuurree 
DDoo nnoott rreellyy ssoolleellyy oonn cclliieenntt--ssiiddee vvaalliiddaattiioonn 
FFiilltteerr iinnppuutt ttoo eennssuurree tthhaatt aallll ddaattaa mmuusstt ccoonnffoorrmm ttoo 
aa lliisstt ooff aacccceeppttaabbllee vvaalluueess,, aanndd eevveenn ssppooooffeedd ffoorrmmss 
wwiillll nnoott bbee aabbllee ttoo ggeett aarroouunndd yyoouurr sseerrvveerr--ssiiddee ffiilltteerriinngg 
rruulleess
CCrroossss SSiittee SSccrriippttiinngg ((XXSSSS)) 
EExxppllooiittss tthhee uusseerr’’ss ttrruusstt iinn tthhee aapppplliiccaattiioonn aanndd iiss 
uussuuaallllyy aann eeffffoorrtt ttoo sstteeaall uusseerr iinnffoorrmmaattiioonn,, ssuucchh aass 
ccooookkiieess aanndd ootthheerr ppeerrssoonnaallllyy iiddeennttiiffiiaabbllee ddaattaa 
AAllll aapppplliiccaattiioonnss tthhaatt ddiissppllaayy iinnppuutt aarree aatt rriisskk
EExxaammppllee:: XXSSSS 
<<ffoorrmm mmeetthhoodd==""PPOOSSTT"" aaccttiioonn==""pprroocceessss..pphhpp"">> 
<<pp>>AAdddd aa ccoommmmeenntt::<<//pp>> 
<<pp>> 
<<tteexxttaarreeaa nnaammee==““ccoommmmeenntt””>><<//tteexxttaarreeaa>> 
<<//pp>> 
<<pp>><<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>><<//pp>> 
<<//ffoorrmm>>
EExxaammppllee:: MMaalliicciioouuss IInnppuutt ffoorr 
XXSSSS 
<<ssccrriipptt>> 
ddooccuummeenntt..llooccaattiioonn == 
““hhttttpp::////eexxaammppllee..oorrgg//ggeettccooookkiieess..pphhpp??ccooookkiieess==““ 
++ ddooccuummeenntt..ccooookkiiee;; 
<<//ssccrriipptt>> 
////bbrriinnggss ttoo aa nneeww llooccaattiioonn wwiitthh ccooookkiieess
XXSSSS:: RRiisskk MMiittiiggaattiioonn 
XXSSSS ffaaiillss iiff aapppplliiccaattiioonn eessccaappeess oouuttppuutt
CCrroossss--SSiittee RReeqquueesstt FFoorrggeerriieess 
((CCSSRRFF)) 
AAnn aattttaacckk tthhaatt aatttteemmppttss ttoo ccaauussee aa vviiccttiimm ttoo 
uunnkknnoowwiinnggllyy sseenndd aarrbbiittrraarryy HHTTTTPP rreeqquueessttss,, 
uussuuaallllyy ttoo UURRLLss rreeqquuiirriinngg pprriivviilleeggeedd aacccceessss aanndd uussiinngg 
tthhee eexxiissttiinngg sseessssiioonn ooff tthhee vviiccttiimm ttoo ddeetteerrmmiinnee aacccceessss
XXSSSS vveerrssuuss CCSSRRFF 
WWhheerreeaass aann XXSSSS aattttaacckk eexxppllooiittss tthhee uusseerr’’ss ttrruusstt iinn aann 
aapppplliiccaattiioonn,, aa ffoorrggeedd rreeqquueesstt eexxppllooiittss aann 
aapppplliiccaattiioonn’’ss ttrruusstt iinn aa uusseerr,, ssiinnccee tthhee rreeqquueesstt 
aappppeeaarrss ttoo bbee lleeggiittiimmaattee aanndd iitt iiss ddiiffffiiccuulltt ffoorr tthhee 
aapppplliiccaattiioonn ttoo ddeetteerrmmiinnee wwhheetthheerr tthhee uusseerr iinntteennddeedd ffoorr 
iitt ttoo ttaakkee ppllaaccee
SScceennaarriioo:: CCSSRRFF AAttttaacckk 
SSuuppppoossee yyoouu hhaavvee aa wweebb ssiittee iinn wwhhiicchh uusseerrss rreeggiisstteerr 
ffoorr aann aaccccoouunntt aanndd tthheenn bbrroowwssee aa ccaattaalloogg ooff bbooookkss ffoorr 
ppuurrcchhaassee 
AAggaaiinn,, ssuuppppoossee tthhaatt aa mmaalliicciioouuss uusseerr ssiiggnnss uupp ffoorr aann 
aaccccoouunntt aanndd pprroocceeeeddss tthhrroouugghh tthhee pprroocceessss ooff 
ppuurrcchhaassiinngg aa bbooookk ffrroomm tthhee ssiittee
SScceennaarriioo:: CCSSRRFF AAttttaacckk 
MMaalliicciioouuss uusseerr ddiissccoovveerrss:: 
SShhee mmuusstt lloogg iinn ttoo mmaakkee aa ppuurrcchhaassee 
AAfftteerr sseelleeccttiinngg aa bbooookk ffoorr ppuurrcchhaassee,, sshhee cclliicckkss tthhee bbuuyy 
bbuuttttoonn,, wwhhiicchh rreeddiirreeccttss hheerr ttoo cchheecckkoouutt..pphhpp 
SShhee sseeeess tthhaatt tthhee aaccttiioonn ttoo cchheecckkoouutt..pphhpp iiss aa PPOOSSTT aaccttiioonn 
bbuutt wwoonnddeerrss wwhheetthheerr ppaassssiinngg ppaarraammeetteerrss ttoo cchheecckkoouutt..pphhpp 
tthhrroouugghh tthhee qquueerryy ssttrriinngg ((GGEETT)) wwiillll wwoorrkk 
WWhheenn ppaassssiinngg tthhee ssaammee ffoorrmm vvaalluueess tthhrroouugghh tthhee qquueerryy ssttrriinngg 
((ii..ee.. cchheecckkoouutt..pphhpp??iissbbnn==00331122886633555511&&qqttyy==11)),, sshhee nnoottiicceess 
tthhaatt sshhee hhaass,, iinn ffaacctt,, ssuucccceessssffuullllyy ppuurrcchhaasseedd aa bbooookk
SScceennaarriioo:: CCSSRRFF AAttttaacckk 
WWiitthh tthhiiss kknnoowwlleeddggee,, tthhee mmaalliicciioouuss uusseerr ccaann ccaauussee 
ootthheerrss ttoo mmaakkee ppuurrcchhaasseess aatt yyoouurr ssiittee wwiitthhoouutt tthheeiirr 
kknnoowwlleeddggee.. 
<<iimmgg 
ssrrcc==""hhttttpp::////eexxaammppllee..oorrgg//cchheecckkoouutt..pphhpp 
??iissbbnn==00331122886633555511&&qqttyy==11"" //>>
CCSSRRFF:: RRiisskk MMiittiiggaattiioonn 
FFoorrccee tthhee uussee ooff PPOOSSTT oovveerr GGEETT 
UUssee ttookkeenn mmeetthhoodd
TTookkeenn MMeetthhoodd 
<<??pphhpp 
sseessssiioonn__ssttaarrtt(());; 
$$ttookkeenn == mmdd55((uunniiqqiidd((rraanndd(()),, TTRRUUEE))));; 
$$__SSEESSSSIIOONN[[’’ttookkeenn’’]] == $$ttookkeenn;; 
??>> 
<<ffoorrmm aaccttiioonn==""cchheecckkoouutt..pphhpp"" mmeetthhoodd==""PPOOSSTT"">> 
<<iinnppuutt ttyyppee==""hhiiddddeenn"" nnaammee==""ttookkeenn"" vvaalluuee==""<<??pphhpp 
eecchhoo $$ttookkeenn;; ??>>"" />> 
<<!!---- RReemmaaiinnddeerr ooff ffoorrmm ---->> 
<</ffoorrmm>>
TTookkeenn CChheecckkiinngg 
iiff ((iisssseett(($$__SSEESSSSIIOONN[[’’ttookkeenn’’]])) 
&&&& iisssseett(($$__PPOOSSTT[[’’ttookkeenn’’]])) 
&&&& $$__PPOOSSTT[[’’ttookkeenn’’]] ==== $$__SSEESSSSIIOONN[[’’ttookkeenn’’]])) 
{{ 
// TTookkeenn iiss vvaalliidd,, ccoonnttiinnuuee pprroocceessssiinngg ffoorrmm ddaattaa 
}}
DDaattaabbaassee SSeeccuurriittyy 
AAttttaacckkss oonn ddaattaabbaasseess vviiaa wweebb aapppplliiccaattiioonnss iiss 
ccoommmmoonnllyy ddoonnee vviiaa SSQQLL iinnjjeeccttiioonnss 
OOccccuurrss wwhheenn aa mmaalliicciioouuss uusseerr 
eexxppeerriimmeennttss oonn aa ffoorrmm ttoo ggaaiinn 
iinnffoorrmmaattiioonn aabboouutt aa ddaattaabbaassee
DDaattaabbaassee SSeeccuurriittyy 
AAfftteerr ggaaiinniinngg ssuuffffiicciieenntt kknnoowwlleeddggee —— uussuuaallllyy 
ffrroomm ddaattaabbaassee eerrrroorr mmeessssaaggeess —— tthhee 
aattttaacckkeerr iiss eeqquuiippppeedd ttoo eexxppllooiitt tthhee ffoorrmm ffoorr 
aannyy ppoossssiibbllee vvuullnneerraabbiilliittiieess bbyy iinnjjeeccttiinngg SSQQLL 
iinnttoo ffoorrmm ffiieellddss
EExxaammppllee:: SSQQLL IInnjjeeccttiioonn 
<<ffoorrmm mmeetthhoodd==""llooggiinn..pphhpp"" aaccttiioonn==""PPOOSSTT"">> 
UUsseerrnnaammee:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""uusseerrnnaammee"" />><<bbrr 
/>> 
PPaasssswwoorrdd:: <<iinnppuutt ttyyppee==""ppaasssswwoorrdd"" 
nnaammee==""ppaasssswwoorrdd"" />><<bbrr />> 
<<iinnppuutt ttyyppee==""ssuubbmmiitt"" vvaalluuee==""LLoogg IInn"" />> 
<</ffoorrmm>>
EExxaammppllee:: SSQQLL IInnjjeeccttiioonn 
$$uusseerrnnaammee == $$__PPOOSSTT[[’’uusseerrnnaammee’’]];; 
$$ppaasssswwoorrdd == mmdd55(($$__PPOOSSTT[[’’ppaasssswwoorrdd’’]]));; 
$$ssqqll == ""SSEELLEECCTT ** FFRROOMM uusseerrss 
WWHHEERREE uusseerrnnaammee == ’’{{$$uusseerrnnaammee}}’’ ANNDD 
ppaasssswwoorrdd == ’’{{$$ppaasssswwoorrdd}}’’"";; 
/** ddaattaabbaassee ccoonnnneeccttiioonn aanndd qquueerryy ccooddee **/ 
iiff ((ccoouunntt(($$rreessuullttss)) >> 00)) 
{{ 
// SSuucccceessssffuull llooggiinn aatttteemmpptt 
}}
SSQQLL IInnjjeeccttiioonn 
uusseerrnnaammee’’ OORR 11 == 11 ––-- 
QQuueerryy bbeeccoommeess:: 
SSEELLEECCTT ** 
FFRROOMM uusseerrss 
WWHHEERREE uusseerrnnaammee == ’’uusseerrnnaammee’’ OORR 11 == 11 
----’’ ANNDD 
ppaasssswwoorrdd == ’’dd4411dd88ccdd9988ff0000bb220044ee99880000999988eeccff88442277ee’’
SSQQLL IInnjjeeccttiioonn:: RRiisskk MMiittiiggaattiioonn 
PPrrooppeerrllyy ffiilltteerriinngg iinnppuutt aanndd eessccaappiinngg tthhee 
oouuttppuutt ffoorr SSQQLL wwiillll hheellpp mmiinniimmzzee tthhee rriisskk ooff aann aattttaacckk 
TToo eessccaappee oouuttppuutt ffoorr aann SSQQLL qquueerryy,, uussee tthhee ddrriivveerr-- 
ssppeecciiffiicc **__eessccaappee__ssttrriinngg(()) ffuunnccttiioonn ffoorr yyoouurr 
ddaattaabbaassee..
BBiinnddiinngg 
$$qquueerryy == ''sseelleecctt nnaammee,, ddiissttrriicctt ffrroomm cciittyy 
wwhheerree ccoouunnttrryyccooddee==??'';; 
iiff (($$ssttmmtt == $$ddbb-->>pprreeppaarree(($$qquueerryy)) )) 
{{ 
$$ccoouunnttrryyccooddee == ''AUUSS'';; 
$$ssttmmtt-->>bbiinndd__ppaarraamm((""ss"",, $$ccoouunnttrryyccooddee));; 
$$ssttmmtt-->>eexxeeccuuttee(());; 
$$ssttmmtt-->>bbiinndd__rreessuulltt(($$nnaammee,, $$ddiissttrriicctt));; 
wwhhiillee (($$ssttmmtt-->>ffeettcchh(()))) 
{{ 
eecchhoo $$nnaammee..'',, ''..$$ddiissttrriicctt;; 
eecchhoo ''<<bbrr />>'';; 
}} 
$$ssttmmtt-->>cclloossee(());; 
}} 
$$ddbb-->>cclloossee(());;
SSeessssiioonn SSeeccuurriittyy 
WWhheerreeaass mmoosstt ooff tthhee ootthheerr aattttaacckkss ccaann bbee pprreevveenntteedd 
bbyy ffiilltteerriinngg iinnppuutt aanndd eessccaappiinngg oouuttppuutt,, sseessssiioonn 
aattttaacckkss ccaannnnoott 
IInnsstteeaadd,, iitt iiss nneecceessssaarryy ttoo ppllaann ffoorr tthheemm aanndd iiddeennttiiffyy 
ppootteennttiiaall pprroobblleemm aarreeaass ooff yyoouurr aapppplliiccaattiioonn
SScceennaarriioo:: SSeessssiioonn 
WWhheenn aa uusseerr ffiirrsstt eennccoouunntteerrss aa ppaaggee iinn yyoouurr 
aapppplliiccaattiioonn tthhaatt ccaallllss sseessssiioonn__ssttaarrtt(()),, aa 
sseessssiioonn iiss ccrreeaatteedd ffoorr tthhee uusseerr.. PPHHPP ggeenneerraatteess aa 
rraannddoomm sseessssiioonn iiddeennttiiffiieerr ttoo iiddeennttiiffyy tthhee uusseerr,, aanndd 
tthheenn iitt sseennddss aa SSeett--CCooookkiiee hheeaaddeerr ttoo tthhee cclliieenntt..
SScceennaarriioo:: SSeessssiioonn 
BByy ddeeffaauulltt,, tthhee nnaammee ooff tthhiiss ccooookkiiee iiss PPHHPPSSEESSSSIIDD,, 
bbuutt iitt iiss ppoossssiibbllee ttoo cchhaannggee tthhee ccooookkiiee nnaammee iinn 
pphhpp..iinnii oorr bbyy uussiinngg tthhee sseessssiioonn__nnaammee(()) 
ffuunnccttiioonn 
OOnn ssuubbsseeqquueenntt vviissiittss,, tthhee cclliieenntt iiddeennttiiffiieess tthhee uusseerr 
wwiitthh tthhee ccooookkiiee,, aanndd tthhiiss iiss hhooww tthhee aapppplliiccaattiioonn 
mmaaiinnttaaiinnss ssttaattee
SSeessssiioonn FFiixxaattiioonn 
AAcctt ooff sseettttiinngg tthhee sseessssiioonn iiddeennttiiffiieerr mmaannuuaallllyy tthhrroouugghh 
tthhee qquueerryy ssttrriinngg,, ffoorrcciinngg tthhee uussee ooff aa ppaarrttiiccuullaarr sseessssiioonn 
<<aa hhrreeff==""hhttttpp:://eexxaammppllee..oorrgg/iinnddeexx..pphhpp?? 
PPHHPPSSEESSSSIIDD==11223344"">>CClliicckk hheerree<</aa>>
SSeessssiioonn FFiixxaattiioonn 
WWhhiillee tthhee uusseerr aacccceesssseess yyoouurr ssiittee tthhrroouugghh tthhiiss 
sseessssiioonn,, tthheeyy mmaayy pprroovviiddee sseennssiittiivvee iinnffoorrmmaattiioonn oorr 
eevveenn llooggiinn ccrreeddeennttiiaallss 
IIff tthhee uusseerr llooggss iinn wwhhiillee uussiinngg tthhee pprroovviiddeedd sseessssiioonn 
iiddeennttiiffiieerr,, tthhee aattttaacckkeerr mmaayy bbee aabbllee ttoo ““rriiddee”” oonn tthhee 
ssaammee sseessssiioonn aanndd ggaaiinn aacccceessss ttoo tthhee uusseerr’’ss aaccccoouunntt..
SSeessssiioonn FFiixxaattiioonn:: RRiisskk 
MMiittiiggaattiioonn 
EEvveerryy ttiimmee aa uusseerr’’ss aacccceessss lleevveell cchhaannggeess,, iitt iiss 
nneecceessssaarryy ttoo rreeggeenneerraattee tthhee sseessssiioonn iiddeennttiiffiieerr 
sseessssiioonn__ssttaarrtt(());; 
// IIff tthhee uusseerr llooggiinn iiss ssuucccceessssffuull,, rreeggeenneerraattee tthhee 
sseessssiioonn IIDD 
iiff ((aauutthheennttiiccaattee(()))) 
{{ 
sseessssiioonn__rreeggeenneerraattee__iidd(());; 
}}
SSeessssiioonn HHiijjaacckkiinngg 
GGeenneerriicc tteerrmm uusseedd ttoo ddeessccrriibbee aannyy mmeeaannss 
bbyy wwhhiicchh aann aattttaacckkeerr ggaaiinnss aa uusseerr’’ss 
vvaalliidd sseessssiioonn iiddeennttiiffiieerr ((rraatthheerr tthhaann 
pprroovviiddiinngg oonnee ooff hhiiss//hheerr oowwnn))
SSeessssiioonn HHiijjaacckkiinngg 
FFoorr eexxaammppllee,, ssuuppppoossee tthhaatt aa uusseerr llooggss iinn.. IIff 
tthhee sseessssiioonn iiddeennttiiffiieerr iiss rreeggeenneerraatteedd,, tthheeyy 
hhaavvee aa nneeww sseessssiioonn IIDD.. WWhhaatt iiff aann aattttaacckkeerr 
ddiissccoovveerrss tthhiiss nneeww IIDD aanndd aatttteemmppttss ttoo 
uussee iitt ttoo ggaaiinn aacccceessss tthhrroouugghh tthhaatt uusseerr’’ss 
sseessssiioonn?? IItt iiss tthheenn nneecceessssaarryy ttoo uussee ootthheerr 
mmeeaannss ttoo iiddeennttiiffyy tthhee uusseerr..
SSeessssiioonn HHiijjaacckkiinngg:: RRiisskk 
MMiittiiggaattiioonn 
OOnnee wwaayy ttoo iiddeennttiiffyy tthhee uusseerr iinn aaddddiittiioonn ttoo tthhee sseessssiioonn 
iiddeennttiiffiieerr iiss ttoo cchheecckk vvaarriioouuss rreeqquueesstt hheeaaddeerrss sseenntt 
bbyy tthhee cclliieenntt 
OOnnee rreeqquueesstt hheeaaddeerr tthhaatt iiss ppaarrttiiccuullaarrllyy hheellppffuull aanndd 
ddooeess nnoott cchhaannggee bbeettwweeeenn rreeqquueessttss iiss tthhee UUsseerr-- 
AAggeenntt hheeaaddeerr
RRiisskk MMiittiiggaattiioonn:: AAfftteerr llooggggiinngg 
iinn 
$$__SSEESSSSIIOONN[[’’uusseerr__aaggeenntt’’]] == 
$$__SSEERRVVEERR[[’’HHTTTTPP__UUSSEERR__AAGGEENNTT’’]];;
RRiisskk MMiittiiggaattiioonn:: CChheecckk 
iiff (($$__SSEESSSSIIOONN[[’’uusseerr__aaggeenntt’’]] !== 
$$__SSEERRVVEERR[[’’HHTTTTPP__UUSSEERR__AAGGEENNTT’’]])) 
{{ 
//// FFoorrccee uusseerr ttoo lloogg iinn aaggaaiinn 
eexxiitt;; 
}}
FFiillee SSyysstteemm SSeeccuurriittyy 
PPHHPP hhaass tthhee aabbiilliittyy ttoo ddiirreeccttllyy aacccceessss tthhee 
ffiilleessyysstteemm aanndd eevveenn eexxeeccuuttee sshheellll ccoommmmaannddss
RReemmoottee CCooddee IInnjjeeccttiioonn 
OOccccuurrss wwhheenn aann aattttaacckkeerr iiss aabbllee ttoo ccaauussee yyoouurr 
aapppplliiccaattiioonn ttoo eexxeeccuuttee PPHHPP ccooddee ooff tthheeiirr 
cchhoooossiinngg..==
SSiimmppllee IInncclluuddee && EExxppllooiitt 
iinncclluuddee ""{{$$__GGEETT[[’’sseeccttiioonn’’]]}}//ddaattaa..iinncc..pphhpp"";; 
hhttttpp::////eexxaammppllee..oorrgg//??sseeccttiioonn==hhttttpp%%33AA%%22FF 
%%22FFeevviill..eexxaammppllee..oorrgg%%22FFaattttaacckk..iinncc%%33FF 
iinncclluuddee 
""hhttttpp::////eevviill..eexxaammppllee..oorrgg//aattttaacckk..iinncc??//ddaattaa..iinncc..pphhpp"";;
RReemmoottee CCooddee IInnjjeeccttiioonn:: RRiisskk 
MMiittiiggaattiioonn 
FFiilltteerriinngg aallll iinnppuutt aanndd nneevveerr uussiinngg ttaaiinntteedd ddaattaa iinn 
aann iinncclluuddee oorr rreeqquuiirree ssttaatteemmeenntt
CCoonnttrroolllleedd IInnppuutt 
$$cclleeaann == aarrrraayy(());; 
$$sseeccttiioonnss == aarrrraayy((’’hhoommee’’,, ’’nneewwss’’,, ’’pphhoottooss’’,, ’’bblloogg’’));; 
iiff ((iinn__aarrrraayy(($$__GGEETT[[’’sseeccttiioonn’’]],, $$sseeccttiioonnss)))) 
{{ 
$$cclleeaann[[’’sseeccttiioonn’’]] == $$__GGEETT[[’’sseeccttiioonn’’]];; 
}} 
eellssee 
{{ 
$$cclleeaann[[’’sseeccttiioonn’’]] == ’’hhoommee’’;; 
}} 
iinncclluuddee ""{{cclleeaann[[’’sseeccttiioonn’’]]}}//ddaattaa..iinncc..pphhpp"";;
OOuuttlliinnee 
DDeeffiinniittiioonn 
BBaassiicc PPrriinncciipplleess 
IInnppuutt FFiilltteerriinngg 
WWhhiitteelliisstt vvss.. BBllaacckklliisstt AApppprrooaacchh 
EEssccaappiinngg OOuuttppuutt
OOuuttlliinnee 
PPrreeppaarreedd SSttaatteemmeennttss 
CCllaassssiiffiiccaattiioonnss ooff AAttttaacckkss 
FFoorrmm SSppooooffiinngg 
XXSSSS ((CCrroossss--SSiittee SSccrriippttiinngg)) 
CCSSRRFF ((CCrroossss--SSiittee RReeqquueesstt FFoorrggeerryy))
OOuuttlliinnee 
CCllaassssiiffiiccaattiioonnss ooff AAttttaacckkss 
SSQQLL IInnjjeeccttiioonn 
SSeessssiioonn FFiixxaattiioonn 
SSeessssiioonn HHiijjaacckkiinngg 
RReemmoottee CCooddee IInnjjeeccttiioonn

More Related Content

What's hot

Framework of training – steps involved
Framework of training   – steps involvedFramework of training   – steps involved
Framework of training – steps involvedbegraj SIWAL
 
смешанные дистрофии англ.
смешанные дистрофии англ.смешанные дистрофии англ.
смешанные дистрофии англ.nizhgma.ru
 
Culvert inspection and investigation
Culvert inspection and investigationCulvert inspection and investigation
Culvert inspection and investigationEric Lestock Kay
 
Creating the Startup The Accounting Panorama
Creating the Startup The Accounting PanoramaCreating the Startup The Accounting Panorama
Creating the Startup The Accounting PanoramaSteve Lines
 
Globally harmonized system (ghs) classification and labeling
Globally harmonized system (ghs) classification and labelingGlobally harmonized system (ghs) classification and labeling
Globally harmonized system (ghs) classification and labelingArthur Francis Alcantara
 
Aqua Eagles Presentation August 25th 2014
Aqua Eagles Presentation August 25th 2014 Aqua Eagles Presentation August 25th 2014
Aqua Eagles Presentation August 25th 2014 amandaleaallen
 
1 pdt tribunal international administratif
1 pdt tribunal international administratif1 pdt tribunal international administratif
1 pdt tribunal international administratifRabah HELAL
 
A evolução da criminologia
A evolução da criminologiaA evolução da criminologia
A evolução da criminologiaFabricio Maciel
 
Maurizio Elia. I problemi psichiatrici in età adulta.
Maurizio Elia. I problemi psichiatrici in età adulta.Maurizio Elia. I problemi psichiatrici in età adulta.
Maurizio Elia. I problemi psichiatrici in età adulta.claudiopagano
 
System biblioteczny Mateusz
System biblioteczny MateuszSystem biblioteczny Mateusz
System biblioteczny Mateuszkasiasss
 
Anastesi lokal
Anastesi lokal Anastesi lokal
Anastesi lokal teckong
 
Partes de una placa madre
Partes de una placa madrePartes de una placa madre
Partes de una placa madreferrerasmarlon
 
Agency and The Use of Electronic Media
Agency and The Use of Electronic MediaAgency and The Use of Electronic Media
Agency and The Use of Electronic MediaSteve Lines
 
Cursos Polilab - Degradação e estabilização de polímeros aula 04
Cursos Polilab - Degradação e estabilização de polímeros aula 04Cursos Polilab - Degradação e estabilização de polímeros aula 04
Cursos Polilab - Degradação e estabilização de polímeros aula 04Fernando Jose Novaes
 
Caldeiras power point
Caldeiras power pointCaldeiras power point
Caldeiras power pointfabiosgomes
 

What's hot (20)

Oaf
OafOaf
Oaf
 
Framework of training – steps involved
Framework of training   – steps involvedFramework of training   – steps involved
Framework of training – steps involved
 
смешанные дистрофии англ.
смешанные дистрофии англ.смешанные дистрофии англ.
смешанные дистрофии англ.
 
Culvert inspection and investigation
Culvert inspection and investigationCulvert inspection and investigation
Culvert inspection and investigation
 
Planificacion preoperatoria
Planificacion preoperatoriaPlanificacion preoperatoria
Planificacion preoperatoria
 
Creating the Startup The Accounting Panorama
Creating the Startup The Accounting PanoramaCreating the Startup The Accounting Panorama
Creating the Startup The Accounting Panorama
 
Planificacion preoperatoria de cadera
Planificacion preoperatoria de caderaPlanificacion preoperatoria de cadera
Planificacion preoperatoria de cadera
 
Globally harmonized system (ghs) classification and labeling
Globally harmonized system (ghs) classification and labelingGlobally harmonized system (ghs) classification and labeling
Globally harmonized system (ghs) classification and labeling
 
Aqua Eagles Presentation August 25th 2014
Aqua Eagles Presentation August 25th 2014 Aqua Eagles Presentation August 25th 2014
Aqua Eagles Presentation August 25th 2014
 
Synapseindia reviews
Synapseindia reviewsSynapseindia reviews
Synapseindia reviews
 
1 pdt tribunal international administratif
1 pdt tribunal international administratif1 pdt tribunal international administratif
1 pdt tribunal international administratif
 
A evolução da criminologia
A evolução da criminologiaA evolução da criminologia
A evolução da criminologia
 
Maurizio Elia. I problemi psichiatrici in età adulta.
Maurizio Elia. I problemi psichiatrici in età adulta.Maurizio Elia. I problemi psichiatrici in età adulta.
Maurizio Elia. I problemi psichiatrici in età adulta.
 
System biblioteczny Mateusz
System biblioteczny MateuszSystem biblioteczny Mateusz
System biblioteczny Mateusz
 
Anastesi lokal
Anastesi lokal Anastesi lokal
Anastesi lokal
 
Spinal injuries
Spinal injuriesSpinal injuries
Spinal injuries
 
Partes de una placa madre
Partes de una placa madrePartes de una placa madre
Partes de una placa madre
 
Agency and The Use of Electronic Media
Agency and The Use of Electronic MediaAgency and The Use of Electronic Media
Agency and The Use of Electronic Media
 
Cursos Polilab - Degradação e estabilização de polímeros aula 04
Cursos Polilab - Degradação e estabilização de polímeros aula 04Cursos Polilab - Degradação e estabilização de polímeros aula 04
Cursos Polilab - Degradação e estabilização de polímeros aula 04
 
Caldeiras power point
Caldeiras power pointCaldeiras power point
Caldeiras power point
 

Viewers also liked

Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks Sperasoft
 
Unity3D Scripting: State Machine
Unity3D Scripting: State MachineUnity3D Scripting: State Machine
Unity3D Scripting: State MachineSperasoft
 
Unity introduction for programmers
Unity introduction for programmersUnity introduction for programmers
Unity introduction for programmersNoam Gat
 
Game Development with Unity
Game Development with UnityGame Development with Unity
Game Development with Unitydavidluzgouveia
 
Unity Programming
Unity Programming Unity Programming
Unity Programming Sperasoft
 
Introduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameIntroduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameSarah Sexton
 

Viewers also liked (11)

Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks
 
NYPF14 Report - CDA
NYPF14 Report - CDANYPF14 Report - CDA
NYPF14 Report - CDA
 
Unity3D Scripting: State Machine
Unity3D Scripting: State MachineUnity3D Scripting: State Machine
Unity3D Scripting: State Machine
 
Unity introduction for programmers
Unity introduction for programmersUnity introduction for programmers
Unity introduction for programmers
 
Game Development with Unity
Game Development with UnityGame Development with Unity
Game Development with Unity
 
Unity Programming
Unity Programming Unity Programming
Unity Programming
 
Unity3D Programming
Unity3D ProgrammingUnity3D Programming
Unity3D Programming
 
Unity is strength presentation slides
Unity is strength presentation slidesUnity is strength presentation slides
Unity is strength presentation slides
 
Unity presentation
Unity presentationUnity presentation
Unity presentation
 
Unity 3d Basics
Unity 3d BasicsUnity 3d Basics
Unity 3d Basics
 
Introduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameIntroduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First Game
 

Similar to Securing PHP Applications

#4 natural foods and supplement for gi health
#4  natural foods and supplement for gi health#4  natural foods and supplement for gi health
#4 natural foods and supplement for gi healthHome Makers
 
Capitalismo e Socialismo - Prof.Altair Aguilar.
Capitalismo e Socialismo - Prof.Altair Aguilar.Capitalismo e Socialismo - Prof.Altair Aguilar.
Capitalismo e Socialismo - Prof.Altair Aguilar.Altair Moisés Aguilar
 
9 introduction -oral cancer
9 introduction -oral cancer9 introduction -oral cancer
9 introduction -oral cancervasanramkumar
 
Fluid & electrolytes & acid base
Fluid & electrolytes & acid baseFluid & electrolytes & acid base
Fluid & electrolytes & acid baseMichelle Harris
 
Implant parts/dental implant courses by Indian dental academy
Implant parts/dental implant courses by Indian dental academyImplant parts/dental implant courses by Indian dental academy
Implant parts/dental implant courses by Indian dental academyIndian dental academy
 
Free video lectures for mba
Free video lectures for mbaFree video lectures for mba
Free video lectures for mbaEdhole.com
 
Surface treatments
Surface treatmentsSurface treatments
Surface treatmentsBilalwahla
 
Market research positioning
Market research   positioningMarket research   positioning
Market research positioningPankaj Soni
 
Introduction to chemistry
Introduction to chemistryIntroduction to chemistry
Introduction to chemistryDocumentStory
 
Konsep sehat sakit keperawatan transkultural
Konsep sehat sakit keperawatan transkulturalKonsep sehat sakit keperawatan transkultural
Konsep sehat sakit keperawatan transkulturalsapakademik
 
Appcc. Sistema de autocontrol. Pautas para su implantación en la producción c...
Appcc. Sistema de autocontrol. Pautas para su implantación en la producción c...Appcc. Sistema de autocontrol. Pautas para su implantación en la producción c...
Appcc. Sistema de autocontrol. Pautas para su implantación en la producción c...Manuel Miguel Gonzalez Martinez
 
05 bentuk penyelesaian sengketa
05 bentuk penyelesaian sengketa05 bentuk penyelesaian sengketa
05 bentuk penyelesaian sengketaAlalan Tanala
 
Gdr pres[1]
Gdr pres[1]Gdr pres[1]
Gdr pres[1]ameeee
 
Leadership and Organizational Transformation
Leadership and Organizational TransformationLeadership and Organizational Transformation
Leadership and Organizational TransformationMichael Bice
 
CV Reezal 2015
CV Reezal 2015CV Reezal 2015
CV Reezal 2015joe_reez
 

Similar to Securing PHP Applications (20)

Fundamentals of group discussion
Fundamentals of group discussion Fundamentals of group discussion
Fundamentals of group discussion
 
#4 natural foods and supplement for gi health
#4  natural foods and supplement for gi health#4  natural foods and supplement for gi health
#4 natural foods and supplement for gi health
 
Oaf
OafOaf
Oaf
 
Capitalismo e Socialismo - Prof.Altair Aguilar.
Capitalismo e Socialismo - Prof.Altair Aguilar.Capitalismo e Socialismo - Prof.Altair Aguilar.
Capitalismo e Socialismo - Prof.Altair Aguilar.
 
Training methods
Training methodsTraining methods
Training methods
 
9 introduction -oral cancer
9 introduction -oral cancer9 introduction -oral cancer
9 introduction -oral cancer
 
Fluid & electrolytes & acid base
Fluid & electrolytes & acid baseFluid & electrolytes & acid base
Fluid & electrolytes & acid base
 
Implant parts/dental implant courses by Indian dental academy
Implant parts/dental implant courses by Indian dental academyImplant parts/dental implant courses by Indian dental academy
Implant parts/dental implant courses by Indian dental academy
 
Free video lectures for mba
Free video lectures for mbaFree video lectures for mba
Free video lectures for mba
 
Surface treatments
Surface treatmentsSurface treatments
Surface treatments
 
Market research positioning
Market research   positioningMarket research   positioning
Market research positioning
 
Team+work
Team+workTeam+work
Team+work
 
Introduction to chemistry
Introduction to chemistryIntroduction to chemistry
Introduction to chemistry
 
Konsep sehat sakit keperawatan transkultural
Konsep sehat sakit keperawatan transkulturalKonsep sehat sakit keperawatan transkultural
Konsep sehat sakit keperawatan transkultural
 
Appcc. Sistema de autocontrol. Pautas para su implantación en la producción c...
Appcc. Sistema de autocontrol. Pautas para su implantación en la producción c...Appcc. Sistema de autocontrol. Pautas para su implantación en la producción c...
Appcc. Sistema de autocontrol. Pautas para su implantación en la producción c...
 
05 bentuk penyelesaian sengketa
05 bentuk penyelesaian sengketa05 bentuk penyelesaian sengketa
05 bentuk penyelesaian sengketa
 
Proyec tec(1)
Proyec tec(1)Proyec tec(1)
Proyec tec(1)
 
Gdr pres[1]
Gdr pres[1]Gdr pres[1]
Gdr pres[1]
 
Leadership and Organizational Transformation
Leadership and Organizational TransformationLeadership and Organizational Transformation
Leadership and Organizational Transformation
 
CV Reezal 2015
CV Reezal 2015CV Reezal 2015
CV Reezal 2015
 

More from Reggie Niccolo Santos (15)

Introduction to Web 2.0
Introduction to Web 2.0Introduction to Web 2.0
Introduction to Web 2.0
 
UI / UX Engineering for Web Applications
UI / UX Engineering for Web ApplicationsUI / UX Engineering for Web Applications
UI / UX Engineering for Web Applications
 
Computability - Tractable, Intractable and Non-computable Function
Computability - Tractable, Intractable and Non-computable FunctionComputability - Tractable, Intractable and Non-computable Function
Computability - Tractable, Intractable and Non-computable Function
 
Algorithms - Aaron Bloomfield
Algorithms - Aaron BloomfieldAlgorithms - Aaron Bloomfield
Algorithms - Aaron Bloomfield
 
Program Logic Formulation - Ohio State University
Program Logic Formulation - Ohio State UniversityProgram Logic Formulation - Ohio State University
Program Logic Formulation - Ohio State University
 
Abstract Data Types
Abstract Data TypesAbstract Data Types
Abstract Data Types
 
Computational Thinking and Data Representations
Computational Thinking and Data RepresentationsComputational Thinking and Data Representations
Computational Thinking and Data Representations
 
Number Systems
Number SystemsNumber Systems
Number Systems
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Application Testing
Application TestingApplication Testing
Application Testing
 
Application Security
Application SecurityApplication Security
Application Security
 
PHP MVC
PHP MVCPHP MVC
PHP MVC
 
MySQL Transactions
MySQL TransactionsMySQL Transactions
MySQL Transactions
 
MySQL Cursors
MySQL CursorsMySQL Cursors
MySQL Cursors
 
MySQL Views
MySQL ViewsMySQL Views
MySQL Views
 

Securing PHP Applications

  • 1. SSeeccuurriinngg PPHHPP AApppplliiccaattiioonnss RReeggggiiee NNiiccccoolloo SSaannttooss UUPP IITTDDCC AAddaapptteedd ffrroomm RReeggnnaarrdd RRaaqquueeddaann’’ss sseett ooff sslliiddeess
  • 2. OOuuttlliinnee DDeeffiinniittiioonn BBaassiicc PPrriinncciipplleess IInnppuutt FFiilltteerriinngg WWhhiitteelliisstt vvss.. BBllaacckklliisstt AApppprrooaacchh EEssccaappiinngg OOuuttppuutt
  • 3. OOuuttlliinnee PPrreeppaarreedd SSttaatteemmeennttss CCllaassssiiffiiccaattiioonnss ooff AAttttaacckkss FFoorrmm SSppooooffiinngg XXSSSS ((CCrroossss--SSiittee SSccrriippttiinngg)) CCSSRRFF ((CCrroossss--SSiittee RReeqquueesstt FFoorrggeerryy))
  • 4. OOuuttlliinnee CCllaassssiiffiiccaattiioonnss ooff AAttttaacckkss SSQQLL IInnjjeeccttiioonn SSeessssiioonn FFiixxaattiioonn SSeessssiioonn HHiijjaacckkiinngg RReemmoottee CCooddee IInnjjeeccttiioonn
  • 5. WWhhaatt iiss SSeeccuurriittyy?? AAccccoorrddiinngg ttoo tthhee PPHHPP SSeeccuurriittyy CCoonnssoorrttiiuumm:: SSeeccuurriittyy iiss aa mmeeaassuurreemmeenntt,, nnoott aa cchhaarraacctteerriissttiicc SSeeccuurriittyy mmuusstt bbee bbaallaanncceedd wwiitthh eexxppeennssee SSeeccuurriittyy mmuusstt bbee bbaallaanncceedd wwiitthh uussaabbiilliittyy SSeeccuurriittyy mmuusstt bbee ppaarrtt ooff tthhee ddeessiiggnn
  • 6. BBaassiicc PPrriinncciipplleess CCoonnssiiddeerr iilllleeggiittiimmaattee uusseess ooff yyoouurr aapppplliiccaattiioonn EEdduuccaattee yyoouurrsseellff IIff nnootthhiinngg eellssee,, ffiilltteerr aallll eexxtteerrnnaall ddaattaa
  • 7. AA SSeeccuurree MMiinnddsseett AA sseeccuurriittyy--ccoonnsscciioouuss mmiinnddsseett aassssuummeess tthhaatt aallll ddaattaa rreecceeiivveedd iinn iinnppuutt iiss ttaaiinntteedd aanndd tthhiiss ddaattaa mmuusstt bbee ffiilltteerreedd bbeeffoorree uussee aanndd eessccaappeedd wwhheenn lleeaavviinngg tthhee aapppplliiccaattiioonn..
  • 8. AAllll IInnppuutt iiss TTaaiinntteedd IIff tthhee ddaattaa oorriiggiinnaatteess ffrroomm aa ffoorreeiiggnn ssoouurrccee ssuucchh aass uusseerr ffoorrmm iinnppuutt,, tthhee qquueerryy ssttrriinngg,, oorr eevveenn aann RRSSSS ffeeeedd,, iitt ccaannnnoott bbee ttrruusstteedd.. IItt iiss ttaaiinntteedd ddaattaa.. BBeeffoorree pprroocceessssiinngg ttaaiinntteedd ddaattaa,, iitt iiss iimmppoorrttaanntt ttoo ffiilltteerr aanndd ssaanniittiizzee iitt.. OOnnccee tthhee ddaattaa iiss ffiilltteerreedd aanndd ssaanniittiizzeedd,, tthheenn iitt iiss ccoonnssiiddeerreedd ssaaffee ttoo uussee..
  • 9. WWhhiitteelliisstt vvss.. BBllaacckklliisstt BBllaacckklliisstt aapppprrooaacchh tthhee lleessss rreessttrriiccttiivvee ffoorrmm ooff ffiilltteerriinngg tthhaatt aassssuummeess tthhee pprrooggrraammmmeerr kknnoowwss eevveerryytthhiinngg tthhaatt sshhoouulldd nnoott bbee aalllloowweedd ttoo ppaassss tthhrroouugghh WWhhiitteelliisstt ffiilltteerriinngg mmuucchh mmoorree rreessttrriiccttiivvee,, yyeett iitt aaffffoorrddss tthhee pprrooggrraammmmeerr tthhee aabbiilliittyy ttoo aacccceepptt oonnllyy tthhee iinnppuutt ss//hhee eexxppeeccttss ttoo rreecceeiivvee
  • 10. IInnppuutt FFiilltteerriinngg OOnnee ooff tthhee kkeeyy ccoonncceeppttss yyoouu mmuusstt aacccceepptt iiss tthhaatt uusseerr iinnppuutt iiss uunnrreelliiaabbllee aanndd nnoott ttoo bbee ttrruusstteedd PPaarrttiiaallllyy lloosstt iinn ttrraannssmmiissssiioonn bbeettwweeeenn sseerrvveerr aanndd cclliieenntt CCoorrrruupptteedd bbyy ssoommee iinn--bbeettwweeeenn pprroocceessss MMooddiiffiieedd bbyy tthhee uusseerr iinn aann uunneexxppeecctteedd mmaannnneerr IInntteennttiioonnaall aatttteemmpptt ttoo ggaaiinn uunnaauutthhoorriizzeedd aacccceessss oorr ttoo ccrraasshh tthhee aapppplliiccaattiioonn
  • 11. EExxaammppllee:: IInnppuutt FFiilltteerriinngg <<ffoorrmm mmeetthhoodd==""PPOOSSTT"">> UUsseerrnnaammee:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""uusseerrnnaammee"" //>><<bbrr //>> PPaasssswwoorrdd:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""ppaasssswwoorrdd"" //>><<bbrr //>> FFaavvoouurriittee ccoolloouurr:: <<sseelleecctt nnaammee==""ccoolloouurr"">> <<ooppttiioonn>>RReedd<<//ooppttiioonn>> <<ooppttiioonn>>BBlluuee<<//ooppttiioonn>> <<ooppttiioonn>>YYeellllooww<<//ooppttiioonn>> <<ooppttiioonn>>GGrreeeenn<<//ooppttiioonn>> <<//sseelleecctt>><<bbrr //>> <<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>> <<//ffoorrmm>>
  • 12. EExxaammppllee:: IInnppuutt FFiilltteerriinngg $$cclleeaann == aarrrraayy(());; iiff ((ccttyyppee__aallpphhaa(($$__PPOOSSTT[[‘‘uusseerrnnaammee’’]])))) {{ $$cclleeaann[[’’uusseerrnnaammee’’]] == $$__PPOOSSTT[[’’uusseerrnnaammee’’]];; }} if (ctype_alnum($_POST[’password’])) {{ $$cclleeaann[[’’ppaasssswwoorrdd’’]] == $$__PPOOSSTT[[’’ppaasssswwoorrdd’’]];; }} $$ccoolloouurrss == aarrrraayy((’’RReedd’’,, ’’BBlluuee’’,, ’’YYeellllooww’’,, ’’GGrreeeenn’’));; iiff ((iinn__aarrrraayy(($$__PPOOSSTT[[’’ccoolloouurr’’]],, $$ccoolloouurrss)))) {{ $$cclleeaann[[’’ccoolloouurr’’]] == $$__PPOOSSTT[[’’ccoolloouurr’’]];; }}
  • 13. EEssccaappiinngg OOuuttppuutt WWhheerreeaass ffiilltteerriinngg iinnppuutt pprrootteeccttss yyoouurr aapppplliiccaattiioonn ffrroomm bbaadd oorr hhaarrmmffuull ddaattaa,, eessccaappiinngg oouuttppuutt pprrootteeccttss tthhee cclliieenntt aanndd uusseerr ffrroomm ppootteennttiiaallllyy ddaammaaggiinngg ccoommmmaannddss TToo eessccaappee oouuttppuutt iinntteennddeedd ffoorr aa wweebb bbrroowwsseerr,, PPHHPP pprroovviiddeess hhttmmllssppeecciiaallcchhaarrss(()) aanndd hhttmmlleennttiittiieess(()),, tthhee llaatttteerr bbeeiinngg tthhee mmoosstt eexxhhaauussttiivvee aanndd,, tthheerreeffoorree,, rreeccoommmmeennddeedd ffuunnccttiioonn ffoorr eessccaappiinngg
  • 14. EExxaammppllee:: EEssccaappiinngg OOuuttppuutt $$hhttmmll == aarrrraayy();; $$hhttmmll[[’’mmeessssaaggee’’]] == hhttmmlleennttiittiieess($$uusseerr__mmeessssaaggee,, EENNTT__QQUUOOTTEESS,, ’’UUTTFF--88’’);; eecchhoo $$hhttmmll[[’’mmeessssaaggee’’]];;
  • 15. PPrreeppaarreedd SSttaatteemmeennttss //// FFiirrsstt,, ffiilltteerr tthhee iinnppuutt $$cclleeaann == aarrrraayy();; iiff (ccttyyppee__aallpphhaa($$__PPOOSSTT[[’’uusseerrnnaammee’’]])) {{ $$cclleeaann[[’’uusseerrnnaammee’’]] == $$__PPOOSSTT[[’’uusseerrnnaammee’’]];; }} //// SSeett aa nnaammeedd ppllaacceehhoollddeerr iinn tthhee SSQQLL ssttaatteemmeenntt ffoorr uusseerrnnaammee $$ssqqll == ’’SSEELLEECCTT ** FFRROOMM uusseerrss WWHHEERREE uusseerrnnaammee == ::uusseerrnnaammee’’;; //// AAssssuummee tthhee ddaattaabbaassee hhaannddlleerr eexxiissttss;; pprreeppaarree tthhee ssttaatteemmeenntt $$ssttmmtt == $$ddbbhh-->>pprreeppaarree($$ssqqll);; //// BBiinndd aa vvaalluuee ttoo tthhee ppaarraammeetteerr $$ssttmmtt-->>bbiinnddPPaarraamm(’’::uusseerrnnaammee’’,, $$cclleeaann[[’’uusseerrnnaammee’’]]);; //// EExxeeccuuttee aanndd ffeettcchh rreessuullttss $$ssttmmtt-->>eexxeeccuuttee();; $$rreessuullttss == $$ssttmmtt-->>ffeettcchhAAllll();;
  • 16. WWeebbssiittee SSeeccuurriittyy TThhee sseeccuurriittyy ooff tthhee eelleemmeennttss ooff aa wweebbssiittee tthhrroouugghh wwhhiicchh aann aattttaacckkeerr ccaann iinntteerrffaaccee wwiitthh yyoouurr aapppplliiccaattiioonn.. TThheessee vvuullnneerraabbllee ppooiinnttss ooff eennttrryy iinncclluuddee ffoorrmmss aanndd UURRLLss
  • 17. SSppooooffeedd FFoorrmmss TThhee eeaassiieesstt wwaayy iiss ttoo ssiimmppllyy ccooppyy aa ttaarrggeett ffoorrmm aanndd eexxeeccuuttee iitt ffrroomm aa ddiiffffeerreenntt llooccaattiioonn
  • 18. EExxaammppllee:: FFoorrmm SSppooooffiinngg <<ffoorrmm mmeetthhoodd==""PPOOSSTT"" aaccttiioonn==""pprroocceessss..pphhpp"">> <<pp>>SSttrreeeett:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""ssttrreeeett"" mmaaxxlleennggtthh==""110000"" //>><<//pp>> <<pp>>CCiittyy:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""cciittyy"" mmaaxxlleennggtthh==""5500"" //>><<//pp>> <<pp>>SSttaattee:: <<sseelleecctt nnaammee==""ssttaattee"">> <<ooppttiioonn vvaalluuee=="""">>PPiicckk aa ssttaattee......<<//ooppttiioonn>> <<ooppttiioonn vvaalluuee==""AALL"">>AAllaabbaammaa<<//ooppttiioonn>> <<ooppttiioonn vvaalluuee==""AAKK"">>AAllaasskkaa<<//ooppttiioonn>> <<ooppttiioonn vvaalluuee==""AARR"">>AArriizzoonnaa<<//ooppttiioonn>> <<!!-- ooppttiioonnss ccoonnttiinnuuee ffoorr aallll 5500 ssttaatteess -->> <<//sseelleecctt>> <<//pp>> <<pp>>ZZiipp:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""zziipp"" mmaaxxlleennggtthh==""55"" //>><<//pp>> <<pp>><<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>><<//pp>> <<//ffoorrmm>>
  • 19. EExxaammppllee:: FFoorrmm SSppooooffiinngg <<ffoorrmm mmeetthhoodd==""PPOOSSTT"" aaccttiioonn==""hhttttpp::////eexxaammppllee..oorrgg//pprroocceessss..pphhpp"">> <<pp>>SSttrreeeett:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""ssttrreeeett"" //>><<//pp>> <<pp>>CCiittyy:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""cciittyy"" //>><<//pp>> <<pp>>SSttaattee:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""ssttaattee"" //>><<//pp>> <<pp>>ZZiipp:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""zziipp"" //>><<//pp>> <<pp>><<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>><<//pp>> <<//ffoorrmm>>
  • 20. FFoorrmm SSppooooffiinngg:: RRiisskk MMiittiiggaattiioonn CChheecckk tthhee rreeffeerrrreerr NNoott 110000%% sseeccuurree DDoo nnoott rreellyy ssoolleellyy oonn cclliieenntt--ssiiddee vvaalliiddaattiioonn FFiilltteerr iinnppuutt ttoo eennssuurree tthhaatt aallll ddaattaa mmuusstt ccoonnffoorrmm ttoo aa lliisstt ooff aacccceeppttaabbllee vvaalluueess,, aanndd eevveenn ssppooooffeedd ffoorrmmss wwiillll nnoott bbee aabbllee ttoo ggeett aarroouunndd yyoouurr sseerrvveerr--ssiiddee ffiilltteerriinngg rruulleess
  • 21. CCrroossss SSiittee SSccrriippttiinngg ((XXSSSS)) EExxppllooiittss tthhee uusseerr’’ss ttrruusstt iinn tthhee aapppplliiccaattiioonn aanndd iiss uussuuaallllyy aann eeffffoorrtt ttoo sstteeaall uusseerr iinnffoorrmmaattiioonn,, ssuucchh aass ccooookkiieess aanndd ootthheerr ppeerrssoonnaallllyy iiddeennttiiffiiaabbllee ddaattaa AAllll aapppplliiccaattiioonnss tthhaatt ddiissppllaayy iinnppuutt aarree aatt rriisskk
  • 22. EExxaammppllee:: XXSSSS <<ffoorrmm mmeetthhoodd==""PPOOSSTT"" aaccttiioonn==""pprroocceessss..pphhpp"">> <<pp>>AAdddd aa ccoommmmeenntt::<<//pp>> <<pp>> <<tteexxttaarreeaa nnaammee==““ccoommmmeenntt””>><<//tteexxttaarreeaa>> <<//pp>> <<pp>><<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>><<//pp>> <<//ffoorrmm>>
  • 23. EExxaammppllee:: MMaalliicciioouuss IInnppuutt ffoorr XXSSSS <<ssccrriipptt>> ddooccuummeenntt..llooccaattiioonn == ““hhttttpp::////eexxaammppllee..oorrgg//ggeettccooookkiieess..pphhpp??ccooookkiieess==““ ++ ddooccuummeenntt..ccooookkiiee;; <<//ssccrriipptt>> ////bbrriinnggss ttoo aa nneeww llooccaattiioonn wwiitthh ccooookkiieess
  • 24. XXSSSS:: RRiisskk MMiittiiggaattiioonn XXSSSS ffaaiillss iiff aapppplliiccaattiioonn eessccaappeess oouuttppuutt
  • 25. CCrroossss--SSiittee RReeqquueesstt FFoorrggeerriieess ((CCSSRRFF)) AAnn aattttaacckk tthhaatt aatttteemmppttss ttoo ccaauussee aa vviiccttiimm ttoo uunnkknnoowwiinnggllyy sseenndd aarrbbiittrraarryy HHTTTTPP rreeqquueessttss,, uussuuaallllyy ttoo UURRLLss rreeqquuiirriinngg pprriivviilleeggeedd aacccceessss aanndd uussiinngg tthhee eexxiissttiinngg sseessssiioonn ooff tthhee vviiccttiimm ttoo ddeetteerrmmiinnee aacccceessss
  • 26. XXSSSS vveerrssuuss CCSSRRFF WWhheerreeaass aann XXSSSS aattttaacckk eexxppllooiittss tthhee uusseerr’’ss ttrruusstt iinn aann aapppplliiccaattiioonn,, aa ffoorrggeedd rreeqquueesstt eexxppllooiittss aann aapppplliiccaattiioonn’’ss ttrruusstt iinn aa uusseerr,, ssiinnccee tthhee rreeqquueesstt aappppeeaarrss ttoo bbee lleeggiittiimmaattee aanndd iitt iiss ddiiffffiiccuulltt ffoorr tthhee aapppplliiccaattiioonn ttoo ddeetteerrmmiinnee wwhheetthheerr tthhee uusseerr iinntteennddeedd ffoorr iitt ttoo ttaakkee ppllaaccee
  • 27. SScceennaarriioo:: CCSSRRFF AAttttaacckk SSuuppppoossee yyoouu hhaavvee aa wweebb ssiittee iinn wwhhiicchh uusseerrss rreeggiisstteerr ffoorr aann aaccccoouunntt aanndd tthheenn bbrroowwssee aa ccaattaalloogg ooff bbooookkss ffoorr ppuurrcchhaassee AAggaaiinn,, ssuuppppoossee tthhaatt aa mmaalliicciioouuss uusseerr ssiiggnnss uupp ffoorr aann aaccccoouunntt aanndd pprroocceeeeddss tthhrroouugghh tthhee pprroocceessss ooff ppuurrcchhaassiinngg aa bbooookk ffrroomm tthhee ssiittee
  • 28. SScceennaarriioo:: CCSSRRFF AAttttaacckk MMaalliicciioouuss uusseerr ddiissccoovveerrss:: SShhee mmuusstt lloogg iinn ttoo mmaakkee aa ppuurrcchhaassee AAfftteerr sseelleeccttiinngg aa bbooookk ffoorr ppuurrcchhaassee,, sshhee cclliicckkss tthhee bbuuyy bbuuttttoonn,, wwhhiicchh rreeddiirreeccttss hheerr ttoo cchheecckkoouutt..pphhpp SShhee sseeeess tthhaatt tthhee aaccttiioonn ttoo cchheecckkoouutt..pphhpp iiss aa PPOOSSTT aaccttiioonn bbuutt wwoonnddeerrss wwhheetthheerr ppaassssiinngg ppaarraammeetteerrss ttoo cchheecckkoouutt..pphhpp tthhrroouugghh tthhee qquueerryy ssttrriinngg ((GGEETT)) wwiillll wwoorrkk WWhheenn ppaassssiinngg tthhee ssaammee ffoorrmm vvaalluueess tthhrroouugghh tthhee qquueerryy ssttrriinngg ((ii..ee.. cchheecckkoouutt..pphhpp??iissbbnn==00331122886633555511&&qqttyy==11)),, sshhee nnoottiicceess tthhaatt sshhee hhaass,, iinn ffaacctt,, ssuucccceessssffuullllyy ppuurrcchhaasseedd aa bbooookk
  • 29. SScceennaarriioo:: CCSSRRFF AAttttaacckk WWiitthh tthhiiss kknnoowwlleeddggee,, tthhee mmaalliicciioouuss uusseerr ccaann ccaauussee ootthheerrss ttoo mmaakkee ppuurrcchhaasseess aatt yyoouurr ssiittee wwiitthhoouutt tthheeiirr kknnoowwlleeddggee.. <<iimmgg ssrrcc==""hhttttpp::////eexxaammppllee..oorrgg//cchheecckkoouutt..pphhpp ??iissbbnn==00331122886633555511&&qqttyy==11"" //>>
  • 30. CCSSRRFF:: RRiisskk MMiittiiggaattiioonn FFoorrccee tthhee uussee ooff PPOOSSTT oovveerr GGEETT UUssee ttookkeenn mmeetthhoodd
  • 31. TTookkeenn MMeetthhoodd <<??pphhpp sseessssiioonn__ssttaarrtt(());; $$ttookkeenn == mmdd55((uunniiqqiidd((rraanndd(()),, TTRRUUEE))));; $$__SSEESSSSIIOONN[[’’ttookkeenn’’]] == $$ttookkeenn;; ??>> <<ffoorrmm aaccttiioonn==""cchheecckkoouutt..pphhpp"" mmeetthhoodd==""PPOOSSTT"">> <<iinnppuutt ttyyppee==""hhiiddddeenn"" nnaammee==""ttookkeenn"" vvaalluuee==""<<??pphhpp eecchhoo $$ttookkeenn;; ??>>"" />> <<!!---- RReemmaaiinnddeerr ooff ffoorrmm ---->> <</ffoorrmm>>
  • 32. TTookkeenn CChheecckkiinngg iiff ((iisssseett(($$__SSEESSSSIIOONN[[’’ttookkeenn’’]])) &&&& iisssseett(($$__PPOOSSTT[[’’ttookkeenn’’]])) &&&& $$__PPOOSSTT[[’’ttookkeenn’’]] ==== $$__SSEESSSSIIOONN[[’’ttookkeenn’’]])) {{ // TTookkeenn iiss vvaalliidd,, ccoonnttiinnuuee pprroocceessssiinngg ffoorrmm ddaattaa }}
  • 33. DDaattaabbaassee SSeeccuurriittyy AAttttaacckkss oonn ddaattaabbaasseess vviiaa wweebb aapppplliiccaattiioonnss iiss ccoommmmoonnllyy ddoonnee vviiaa SSQQLL iinnjjeeccttiioonnss OOccccuurrss wwhheenn aa mmaalliicciioouuss uusseerr eexxppeerriimmeennttss oonn aa ffoorrmm ttoo ggaaiinn iinnffoorrmmaattiioonn aabboouutt aa ddaattaabbaassee
  • 34. DDaattaabbaassee SSeeccuurriittyy AAfftteerr ggaaiinniinngg ssuuffffiicciieenntt kknnoowwlleeddggee —— uussuuaallllyy ffrroomm ddaattaabbaassee eerrrroorr mmeessssaaggeess —— tthhee aattttaacckkeerr iiss eeqquuiippppeedd ttoo eexxppllooiitt tthhee ffoorrmm ffoorr aannyy ppoossssiibbllee vvuullnneerraabbiilliittiieess bbyy iinnjjeeccttiinngg SSQQLL iinnttoo ffoorrmm ffiieellddss
  • 35. EExxaammppllee:: SSQQLL IInnjjeeccttiioonn <<ffoorrmm mmeetthhoodd==""llooggiinn..pphhpp"" aaccttiioonn==""PPOOSSTT"">> UUsseerrnnaammee:: <<iinnppuutt ttyyppee==""tteexxtt"" nnaammee==""uusseerrnnaammee"" />><<bbrr />> PPaasssswwoorrdd:: <<iinnppuutt ttyyppee==""ppaasssswwoorrdd"" nnaammee==""ppaasssswwoorrdd"" />><<bbrr />> <<iinnppuutt ttyyppee==""ssuubbmmiitt"" vvaalluuee==""LLoogg IInn"" />> <</ffoorrmm>>
  • 36. EExxaammppllee:: SSQQLL IInnjjeeccttiioonn $$uusseerrnnaammee == $$__PPOOSSTT[[’’uusseerrnnaammee’’]];; $$ppaasssswwoorrdd == mmdd55(($$__PPOOSSTT[[’’ppaasssswwoorrdd’’]]));; $$ssqqll == ""SSEELLEECCTT ** FFRROOMM uusseerrss WWHHEERREE uusseerrnnaammee == ’’{{$$uusseerrnnaammee}}’’ ANNDD ppaasssswwoorrdd == ’’{{$$ppaasssswwoorrdd}}’’"";; /** ddaattaabbaassee ccoonnnneeccttiioonn aanndd qquueerryy ccooddee **/ iiff ((ccoouunntt(($$rreessuullttss)) >> 00)) {{ // SSuucccceessssffuull llooggiinn aatttteemmpptt }}
  • 37. SSQQLL IInnjjeeccttiioonn uusseerrnnaammee’’ OORR 11 == 11 ––-- QQuueerryy bbeeccoommeess:: SSEELLEECCTT ** FFRROOMM uusseerrss WWHHEERREE uusseerrnnaammee == ’’uusseerrnnaammee’’ OORR 11 == 11 ----’’ ANNDD ppaasssswwoorrdd == ’’dd4411dd88ccdd9988ff0000bb220044ee99880000999988eeccff88442277ee’’
  • 38. SSQQLL IInnjjeeccttiioonn:: RRiisskk MMiittiiggaattiioonn PPrrooppeerrllyy ffiilltteerriinngg iinnppuutt aanndd eessccaappiinngg tthhee oouuttppuutt ffoorr SSQQLL wwiillll hheellpp mmiinniimmzzee tthhee rriisskk ooff aann aattttaacckk TToo eessccaappee oouuttppuutt ffoorr aann SSQQLL qquueerryy,, uussee tthhee ddrriivveerr-- ssppeecciiffiicc **__eessccaappee__ssttrriinngg(()) ffuunnccttiioonn ffoorr yyoouurr ddaattaabbaassee..
  • 39. BBiinnddiinngg $$qquueerryy == ''sseelleecctt nnaammee,, ddiissttrriicctt ffrroomm cciittyy wwhheerree ccoouunnttrryyccooddee==??'';; iiff (($$ssttmmtt == $$ddbb-->>pprreeppaarree(($$qquueerryy)) )) {{ $$ccoouunnttrryyccooddee == ''AUUSS'';; $$ssttmmtt-->>bbiinndd__ppaarraamm((""ss"",, $$ccoouunnttrryyccooddee));; $$ssttmmtt-->>eexxeeccuuttee(());; $$ssttmmtt-->>bbiinndd__rreessuulltt(($$nnaammee,, $$ddiissttrriicctt));; wwhhiillee (($$ssttmmtt-->>ffeettcchh(()))) {{ eecchhoo $$nnaammee..'',, ''..$$ddiissttrriicctt;; eecchhoo ''<<bbrr />>'';; }} $$ssttmmtt-->>cclloossee(());; }} $$ddbb-->>cclloossee(());;
  • 40. SSeessssiioonn SSeeccuurriittyy WWhheerreeaass mmoosstt ooff tthhee ootthheerr aattttaacckkss ccaann bbee pprreevveenntteedd bbyy ffiilltteerriinngg iinnppuutt aanndd eessccaappiinngg oouuttppuutt,, sseessssiioonn aattttaacckkss ccaannnnoott IInnsstteeaadd,, iitt iiss nneecceessssaarryy ttoo ppllaann ffoorr tthheemm aanndd iiddeennttiiffyy ppootteennttiiaall pprroobblleemm aarreeaass ooff yyoouurr aapppplliiccaattiioonn
  • 41. SScceennaarriioo:: SSeessssiioonn WWhheenn aa uusseerr ffiirrsstt eennccoouunntteerrss aa ppaaggee iinn yyoouurr aapppplliiccaattiioonn tthhaatt ccaallllss sseessssiioonn__ssttaarrtt(()),, aa sseessssiioonn iiss ccrreeaatteedd ffoorr tthhee uusseerr.. PPHHPP ggeenneerraatteess aa rraannddoomm sseessssiioonn iiddeennttiiffiieerr ttoo iiddeennttiiffyy tthhee uusseerr,, aanndd tthheenn iitt sseennddss aa SSeett--CCooookkiiee hheeaaddeerr ttoo tthhee cclliieenntt..
  • 42. SScceennaarriioo:: SSeessssiioonn BByy ddeeffaauulltt,, tthhee nnaammee ooff tthhiiss ccooookkiiee iiss PPHHPPSSEESSSSIIDD,, bbuutt iitt iiss ppoossssiibbllee ttoo cchhaannggee tthhee ccooookkiiee nnaammee iinn pphhpp..iinnii oorr bbyy uussiinngg tthhee sseessssiioonn__nnaammee(()) ffuunnccttiioonn OOnn ssuubbsseeqquueenntt vviissiittss,, tthhee cclliieenntt iiddeennttiiffiieess tthhee uusseerr wwiitthh tthhee ccooookkiiee,, aanndd tthhiiss iiss hhooww tthhee aapppplliiccaattiioonn mmaaiinnttaaiinnss ssttaattee
  • 43. SSeessssiioonn FFiixxaattiioonn AAcctt ooff sseettttiinngg tthhee sseessssiioonn iiddeennttiiffiieerr mmaannuuaallllyy tthhrroouugghh tthhee qquueerryy ssttrriinngg,, ffoorrcciinngg tthhee uussee ooff aa ppaarrttiiccuullaarr sseessssiioonn <<aa hhrreeff==""hhttttpp:://eexxaammppllee..oorrgg/iinnddeexx..pphhpp?? PPHHPPSSEESSSSIIDD==11223344"">>CClliicckk hheerree<</aa>>
  • 44. SSeessssiioonn FFiixxaattiioonn WWhhiillee tthhee uusseerr aacccceesssseess yyoouurr ssiittee tthhrroouugghh tthhiiss sseessssiioonn,, tthheeyy mmaayy pprroovviiddee sseennssiittiivvee iinnffoorrmmaattiioonn oorr eevveenn llooggiinn ccrreeddeennttiiaallss IIff tthhee uusseerr llooggss iinn wwhhiillee uussiinngg tthhee pprroovviiddeedd sseessssiioonn iiddeennttiiffiieerr,, tthhee aattttaacckkeerr mmaayy bbee aabbllee ttoo ““rriiddee”” oonn tthhee ssaammee sseessssiioonn aanndd ggaaiinn aacccceessss ttoo tthhee uusseerr’’ss aaccccoouunntt..
  • 45. SSeessssiioonn FFiixxaattiioonn:: RRiisskk MMiittiiggaattiioonn EEvveerryy ttiimmee aa uusseerr’’ss aacccceessss lleevveell cchhaannggeess,, iitt iiss nneecceessssaarryy ttoo rreeggeenneerraattee tthhee sseessssiioonn iiddeennttiiffiieerr sseessssiioonn__ssttaarrtt(());; // IIff tthhee uusseerr llooggiinn iiss ssuucccceessssffuull,, rreeggeenneerraattee tthhee sseessssiioonn IIDD iiff ((aauutthheennttiiccaattee(()))) {{ sseessssiioonn__rreeggeenneerraattee__iidd(());; }}
  • 46. SSeessssiioonn HHiijjaacckkiinngg GGeenneerriicc tteerrmm uusseedd ttoo ddeessccrriibbee aannyy mmeeaannss bbyy wwhhiicchh aann aattttaacckkeerr ggaaiinnss aa uusseerr’’ss vvaalliidd sseessssiioonn iiddeennttiiffiieerr ((rraatthheerr tthhaann pprroovviiddiinngg oonnee ooff hhiiss//hheerr oowwnn))
  • 47. SSeessssiioonn HHiijjaacckkiinngg FFoorr eexxaammppllee,, ssuuppppoossee tthhaatt aa uusseerr llooggss iinn.. IIff tthhee sseessssiioonn iiddeennttiiffiieerr iiss rreeggeenneerraatteedd,, tthheeyy hhaavvee aa nneeww sseessssiioonn IIDD.. WWhhaatt iiff aann aattttaacckkeerr ddiissccoovveerrss tthhiiss nneeww IIDD aanndd aatttteemmppttss ttoo uussee iitt ttoo ggaaiinn aacccceessss tthhrroouugghh tthhaatt uusseerr’’ss sseessssiioonn?? IItt iiss tthheenn nneecceessssaarryy ttoo uussee ootthheerr mmeeaannss ttoo iiddeennttiiffyy tthhee uusseerr..
  • 48. SSeessssiioonn HHiijjaacckkiinngg:: RRiisskk MMiittiiggaattiioonn OOnnee wwaayy ttoo iiddeennttiiffyy tthhee uusseerr iinn aaddddiittiioonn ttoo tthhee sseessssiioonn iiddeennttiiffiieerr iiss ttoo cchheecckk vvaarriioouuss rreeqquueesstt hheeaaddeerrss sseenntt bbyy tthhee cclliieenntt OOnnee rreeqquueesstt hheeaaddeerr tthhaatt iiss ppaarrttiiccuullaarrllyy hheellppffuull aanndd ddooeess nnoott cchhaannggee bbeettwweeeenn rreeqquueessttss iiss tthhee UUsseerr-- AAggeenntt hheeaaddeerr
  • 49. RRiisskk MMiittiiggaattiioonn:: AAfftteerr llooggggiinngg iinn $$__SSEESSSSIIOONN[[’’uusseerr__aaggeenntt’’]] == $$__SSEERRVVEERR[[’’HHTTTTPP__UUSSEERR__AAGGEENNTT’’]];;
  • 50. RRiisskk MMiittiiggaattiioonn:: CChheecckk iiff (($$__SSEESSSSIIOONN[[’’uusseerr__aaggeenntt’’]] !== $$__SSEERRVVEERR[[’’HHTTTTPP__UUSSEERR__AAGGEENNTT’’]])) {{ //// FFoorrccee uusseerr ttoo lloogg iinn aaggaaiinn eexxiitt;; }}
  • 51. FFiillee SSyysstteemm SSeeccuurriittyy PPHHPP hhaass tthhee aabbiilliittyy ttoo ddiirreeccttllyy aacccceessss tthhee ffiilleessyysstteemm aanndd eevveenn eexxeeccuuttee sshheellll ccoommmmaannddss
  • 52. RReemmoottee CCooddee IInnjjeeccttiioonn OOccccuurrss wwhheenn aann aattttaacckkeerr iiss aabbllee ttoo ccaauussee yyoouurr aapppplliiccaattiioonn ttoo eexxeeccuuttee PPHHPP ccooddee ooff tthheeiirr cchhoooossiinngg..==
  • 53. SSiimmppllee IInncclluuddee && EExxppllooiitt iinncclluuddee ""{{$$__GGEETT[[’’sseeccttiioonn’’]]}}//ddaattaa..iinncc..pphhpp"";; hhttttpp::////eexxaammppllee..oorrgg//??sseeccttiioonn==hhttttpp%%33AA%%22FF %%22FFeevviill..eexxaammppllee..oorrgg%%22FFaattttaacckk..iinncc%%33FF iinncclluuddee ""hhttttpp::////eevviill..eexxaammppllee..oorrgg//aattttaacckk..iinncc??//ddaattaa..iinncc..pphhpp"";;
  • 54. RReemmoottee CCooddee IInnjjeeccttiioonn:: RRiisskk MMiittiiggaattiioonn FFiilltteerriinngg aallll iinnppuutt aanndd nneevveerr uussiinngg ttaaiinntteedd ddaattaa iinn aann iinncclluuddee oorr rreeqquuiirree ssttaatteemmeenntt
  • 55. CCoonnttrroolllleedd IInnppuutt $$cclleeaann == aarrrraayy(());; $$sseeccttiioonnss == aarrrraayy((’’hhoommee’’,, ’’nneewwss’’,, ’’pphhoottooss’’,, ’’bblloogg’’));; iiff ((iinn__aarrrraayy(($$__GGEETT[[’’sseeccttiioonn’’]],, $$sseeccttiioonnss)))) {{ $$cclleeaann[[’’sseeccttiioonn’’]] == $$__GGEETT[[’’sseeccttiioonn’’]];; }} eellssee {{ $$cclleeaann[[’’sseeccttiioonn’’]] == ’’hhoommee’’;; }} iinncclluuddee ""{{cclleeaann[[’’sseeccttiioonn’’]]}}//ddaattaa..iinncc..pphhpp"";;
  • 56. OOuuttlliinnee DDeeffiinniittiioonn BBaassiicc PPrriinncciipplleess IInnppuutt FFiilltteerriinngg WWhhiitteelliisstt vvss.. BBllaacckklliisstt AApppprrooaacchh EEssccaappiinngg OOuuttppuutt
  • 57. OOuuttlliinnee PPrreeppaarreedd SSttaatteemmeennttss CCllaassssiiffiiccaattiioonnss ooff AAttttaacckkss FFoorrmm SSppooooffiinngg XXSSSS ((CCrroossss--SSiittee SSccrriippttiinngg)) CCSSRRFF ((CCrroossss--SSiittee RReeqquueesstt FFoorrggeerryy))
  • 58. OOuuttlliinnee CCllaassssiiffiiccaattiioonnss ooff AAttttaacckkss SSQQLL IInnjjeeccttiioonn SSeessssiioonn FFiixxaattiioonn SSeessssiioonn HHiijjaacckkiinngg RReemmoottee CCooddee IInnjjeeccttiioonn