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

Securing PHP Applications

  • 1.
    SSeeccuurriinngg PPHHPP AApppplliiccaattiioonnss RReeggggiiee NNiiccccoolloo SSaannttooss UUPP IITTDDCC AAddaapptteedd ffrroomm RReeggnnaarrdd RRaaqquueeddaann’’ss sseett ooff sslliiddeess
  • 2.
    OOuuttlliinnee DDeeffiinniittiioonn BBaassiiccPPrriinncciipplleess 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 ooffAAttttaacckkss 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 CCoonnssiiddeerriilllleeggiittiimmaattee 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 iissTTaaiinntteedd 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 OOnneeooff 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 WWhheerreeaassffiilltteerriinngg 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 TThheesseeccuurriittyy 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 TThheeeeaassiieesstt 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:: RRiisskkMMiittiiggaattiioonn 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 <<ffoorrmmmmeetthhoodd==""PPOOSSTT"" aaccttiioonn==""pprroocceessss..pphhpp"">> <<pp>>AAdddd aa ccoommmmeenntt::<<//pp>> <<pp>> <<tteexxttaarreeaa nnaammee==““ccoommmmeenntt””>><<//tteexxttaarreeaa>> <<//pp>> <<pp>><<iinnppuutt ttyyppee==""ssuubbmmiitt"" //>><<//pp>> <<//ffoorrmm>>
  • 23.
    EExxaammppllee:: MMaalliicciioouuss IInnppuuttffoorr 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 AAttttaacckkssoonn 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 AAfftteerrggaaiinniinngg 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:: RRiisskkMMiittiiggaattiioonn 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 WWhheerreeaassmmoosstt 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 WWhheennaa 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 BByyddeeffaauulltt,, 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 AAccttooff 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 WWhhiilleetthhee 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 GGeenneerriicctteerrmm 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 FFoorreexxaammppllee,, 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:: AAfftteerrllooggggiinngg 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 BBaassiiccPPrriinncciipplleess 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 ooffAAttttaacckkss SSQQLL IInnjjeeccttiioonn SSeessssiioonn FFiixxaattiioonn SSeessssiioonn HHiijjaacckkiinngg RReemmoottee CCooddee IInnjjeeccttiioonn