ÿþP H P 5 . B e z p i e c z n e
p r o g r a m o w a n i e .
L e k s y k o n k i e s z o n k o w y
A u t o r : J a c e k R o s s
I S B N : 8 3 - 2 4 6 - 0 6 3 5 - 1
F o r m a t : 1 1 5 x 1 7 0 , s t r o n : 1 6 0
T w ó r z b e z p i e c z n y k o d w P H P !
" J a k i e r o d z a j e a t a k ó w m o g ¹ C i z a g r o z i æ ?
" J a k s i ê p r z e d n i m i b r o n i æ ?
" J a k p r o d u k o w a æ b e z p i e c z n e o p r o g r a m o w a n i e ?
P H P j e s t z p e w n o Sc i ¹ j e d n y m z n a j b a r d z i e j p o p u l a r n y c h j ê z y k ó w p r o g r a m o w a n i a ,
p o z w a l a j ¹ c y c h n a t w o r z e n i e d y n a m i c z n y c h a p l i k a c j i W W W . S w o j ¹ p o p u l a r n o Sæ z d o b y ³
d z i ê k i p r o s t e j s k ³ a d n i , ³ a t w e j k o n f i g u r a c j i o r a z p r z e j r z y s t y m z a s a d o m d z i a ³ a n i a .
P H P j e s t Sw i e t n y m p r z y k ³ a d e m n a t o , ¿ e p r o s t o t a i e l e g a n c j a b y w a j ¹ l e p s z e n i ¿
n a d m i e r n e z a a w a n s o w a n i e i n i e p o t r z e b n a k o m p l i k a c j a . P o m i m o s w e j p r o s t o t y j ê z y k
P H P j e s t b a r d z o w y m a g a j ¹ c y w s p r a w a c h z w i ¹ z a n y c h z b e z p i e c z e ñ s t w e m . Z m u s z a o n
p r o g r a m i s t ê d o p o Sw i ê c e n i a n i e z w y k ³ e j u w a g i k w e s t i i w y b o r u b e z p i e c z n y c h r o z w i ¹ z a ñ .
Z p e w n o Sc i ¹ b r a k o w a ³ o C i k s i ¹ ¿ k i , k t ó r a w j e d n y m m i e j s c u g r o m a d z i ³ a b y w s z e l k i e
i n f o r m a c j e z w i ¹ z a n e z b e z p i e c z e ñ s t w e m w P H P . D z i ê k i p o z y c j i P H P 5 . B e z p i e c z n e
p r o g r a m o w a n i e . L e k s y k o n k i e s z o n k o w y p o z n a s z p o d s t a w y b e z p i e c z n e g o
p r o g r a m o w a n i a , s p o s o b y o b s ³ u g i d a n y c h p o b r a n y c h z z e w n ¹ t r z o r a z p r z e k a z y w a n i a
i c h p o m i ê d z y s k r y p t a m i . A u t o r p r z e d s t a w i C i r o d z a j e a t a k ó w n a a p l i k a c j e P H P
o r a z n a j l e p s z e m e t o d y o b r o n y p r z e d n i m i . P o n a d t o n a u c z y s z s i ê w e w ³ a Sc i w y s p o s ó b
k o n f i g u r o w a æ P H P o r a z z d o b ê d z i e s z w i e d z ê n a t e m a t z a s a d b e z p i e c z n e j p r o d u k c j i
o p r o g r a m o w a n i a . J e ¿ e l i c h c e s z t w o r z y æ b e z p i e c z n e r o z w i ¹ z a n i a w P H P , k o n i e c z n i e
z a p o z n a j s i ê z t ¹ k s i ¹ ¿ k ¹ !
" O b s ³ u g a d a n y c h z e w n ê t r z n y c h
" W s t r z y k i w a n i e k o d u
" D o b ó r o d p o w i e d n i c h u p r a w n i e ñ
" S p o s o b y u w i e r z y t e l n i a n i a u ¿ y t k o w n i k a
" B e z p i e c z n e o b s ³ u g i w a n i e b ³ ê d ó w
" R o d z a j e a t a k ó w n a a p l i k a c j e n a p i s a n e w P H P
" O b r o n a p r z e d a t a k a m i X S S
" Z a g r o ¿ e n i e w s t r z y k n i ê c i e m k o d u S Q L
" A t a k i D O S i D D O S
" B e z p i e c z n a k o n f i g u r a c j a P H P
" S p o s o b y t w o r z e n i a b e z p i e c z n e g o o p r o g r a m o w a n i a
W y k o r z y s t a j m o ¿ l i w o Sc i P H P w p e ³ n i i b e z p i e c z n i e !
S p i s t r e c i
1 . W s t p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 . P o d s t a w y b e z p i e c z n e g o p r o g r a m o w a n i a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 . 1 . O b s u g a d a n y c h z z e w n t r z 7
2 . 2 . W s t r z y k i w a n i e k o d u 9
2 . 3 . N a d m i a r u p r a w n i e 1 0
2 . 4 . P r z e k a z y w a n i e d a n y c h m i d z y s k r y p t a m i 1 2
2 . 5 . N i e u p r a w n i o n e u y c i e s k r y p t u 1 3
2 . 6 . U w i e r z y t e l n i a n i e u y t k o w n i k a 1 8
2 . 7 . U y c i e n i e b e z p i e c z n y c h i n s t r u k c j i 2 3
2 . 8 . B e z p i e c z n a o b s u g a b d ó w 2 7
2 . 9 . B e z p i e c z e s t w o s y s t e m u p l i k ó w 3 0
3 . R o d z a j e a t a k ó w n a a p l i k a c j e P H P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2
3 . 1 . A t a k s i o w y n a h a s o 3 2
3 . 2 . P r z e c h w y c e n i e h a s a p r z e z n i e u p r a w n i o n o s o b 3 4
3 . 3 . W a m a n i e n a s e r w e r b a z y d a n y c h 3 4
3 . 4 . W a m a n i e n a s e r w e r P H P 3 8
3 . 5 . C r o s s s i t e s c r i p t i n g ( X S S ) 4 0
3 . 6 . W s t r z y k i w a n i e k o d u S Q L ( S Q L i n j e c t i o n ) 4 2
3 . 7 . W s t r z y k i w a n i e p o l e c e s y s t e m o w y c h ( s h e l l i n j e c t i o n ) 5 4
3 . 8 . W s t r z y k i w a n i e n a g ó w k ó w H T T P
d o w i a d o m o c i e - m a i l ( e - m a i l i n j e c t i o n ) 5 6
3 . 9 . C r o s s s i t e r e q u e s t f o r g e r y ( X S R F ) 5 7
3 . 1 0 . P r z e g l d a n i e s y s t e m u p l i k ó w ( d i r e c t o r y t r a v e r s a l ) 6 1
3
3 . 1 1 . P r z e j c i e k o n t r o l i n a d s e s j ( s e s s i o n f i x a t i o n ) 6 2
3 . 1 2 . Z a t r u w a n i e s e s j i ( s e s s i o n p o i s o n i n g ) 6 8
3 . 1 3 . H T T P r e s p o n s e s p l i t t i n g 8 4
3 . 1 4 . W y k r y w a n i e r o b o t ó w 8 4
3 . 1 5 . A t a k i t y p u D O S i D D O S 9 7
3 . 1 6 . C r o s s s i t e t r a c i n g 1 0 1
3 . 1 7 . B e z p i e c z e s t w o p l i k ó w c o o k i e 1 0 1
3 . 1 8 . D z i u r a w p r e g _ m a t c h 1 0 2
4 . K o n f i g u r a c j a s e r w e r a P H P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 5
4 . 1 . D y r e k t y w a r e g i s t e r _ g l o b a l s 1 0 5
4 . 2 . T r y b b e z p i e c z n y ( s a f e m o d e ) 1 0 6
4 . 3 . U k r y w a n i e P H P , d y r e k t y w a e x p o s e _ p h p 1 0 7
5 . M e t o d y p r o d u k c j i b e z p i e c z n e g o o p r o g r a m o w a n i a . . . . . . . . . . . . . . . . 1 0 9
5 . 1 . A r c h i t e k t u r a p r o g r a m u a b e z p i e c z e s t w o 1 0 9
5 . 2 . O c h r o n a p r z e z u k r y c i e i n f o r m a c j i
( s e c u r i t y b y o b s c u r i t y ) 1 1 1
5 . 3 . P o z o s t a w i a n i e t y l n y c h w e j i k o d u t y m c z a s o w e g o 1 1 3
5 . 4 . A k t u a l i z o w a n i e w e r s j i P H P i u y w a n y c h b i b l i o t e k 1 1 4
5 . 5 . U y c i e g o t o w y c h b i b l i o t e k i f r a m e w o r k ó w 1 1 5
5 . 6 . Z a c i e m n i a n i e k o d u P H P 1 2 0
5 . 7 . K o d o w a n i e r ó d e P H P 1 2 6
5 . 8 . P s y c h o l o g i c z n e a s p e k t y
b e z p i e c z e s t w a a p l i k a c j i s i e c i o w y c h 1 2 7
6 . R o z w ó j j z y k a P H P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 8
6 . 1 . P o r ó w n a n i e z m i a n w p y w a j c y c h n a b e z p i e c z e s t w o
w P H P 5 w s t o s u n k u d o w y d a n i a 4 . 1 3 8
6 . 2 . K i e r u n k i r o z w o j u j z y k a P H P w w e r s j i 6 . 1 3 9
S o w n i c z e k p o j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1
S k o r o w i d z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 1
4 S p i s t r e c i
5 . M e t o d y p r o d u k c j i
b e z p i e c z n e g o o p r o g r a m o w a n i a
5 . 1 . A r c h i t e k t u r a p r o g r a m u a b e z p i e c z e s t w o
A r c h i t e k t u r a p r o g r a m u m o e m i e i s t o t n y w p y w n a p o z i o m j e g o
b e z p i e c z e s t w a . N i e m a z b y t w i e l u o g ó l n y c h r e g u d o t y c z c y c h
t e g o , j a k p r a w i d o w o p o w i n n a b y z a p r o j e k t o w a n a a p l i k a c j a s i e -
c i o w a , w i e l e z a l e y b o w i e m o d : u y t y c h t e c h n o l o g i i , p r z y j t e j
m e t o d o l o g i i p r o j e k t o w e j , r o z m i a r u p r o j e k t u i z e s p o u , o p r o g r a -
m o w a n i a u y w a n e g o p o d c z a s t w o r z e n i a a p l i k a c j i , a t a k e o d
s a m e g o j e j r o d z a j u i w s z y s t k i c h s z c z e g ó ó w j e j d z i a a n i a . I s t n i e j e
j e d n a k k i l k a z a s a d , o k t ó r y c h p o w i n i e n p a m i t a p r o g r a m i s t a
i p r o j e k t a n t :
P r o s t o t a . T r a w e s t u j c E i n s t e i n a , m o n a b y p o w i e d z i e , e
k o d p o w i n i e n b y t a k p r o s t y , j a k t o m o l i w e , a l e n i e b a r d z i e j .
W p r o s t y m , e l e g a n c k i m i p r z e j r z y s t y m k o d z i e z n a j d z i e s i
p r a w d o p o d o b n i e z n a c z n i e m n i e j b d ó w n i w z a w i y m ,
p e n y m n a d m i a r o w o c i i t r i c k ó w p r o g r a m i s t y c z n y c h . K o d
k r ó t s z y n i e z a w s z e j e s t p r o s t s z y i b a r d z i e j p r z e j r z y s t y . W a r t o
c z a s e m n a p i s a g o w i c e j , l e c z c z y t e l n i e j w s p o s ó b b a r -
d z i e j z r o z u m i a y . M o e o n z o s t a p o t e m a t w i e j p r z e a n a l i -
z o w a n y p r z e z i n n e g o p r o g r a m i s t , k t ó r y , j e l i z n a j d z i e w n i m
b d y , b d z i e m ó g z a s u g e r o w a p o p r a w k i . J e s t t o s z c z e g ó l -
n i e i s t o t n e p r z y p r o g r a m a c h t y p u o p e n s o u r c e .
K o n t r o l a j a k o c i . W p r z y p a d k u a d n e j w i k s z e j a p l i k a c j i n i e
j e s t d o b r y m r o z w i z a n i e m p r z e r z u c a n i e k o n t r o l i j a k o c i
n a p r o g r a m i s t ó w c z y u y t k o w n i k ó w . B d y w y k r y t e p r z e z
t y c h o s t a t n i c h s k o s z t o w n e w n a p r a w i e , p o g a r s z a j w i z e -
r u n e k p r o g r a m u , a w p r z y p a d k u g d y d o t y c z z a b e z p i e c z e ,
m o g s t a n o w i p r z y c z y n d u e j l i c z b y u d a n y c h a t a k ó w n a
5 . M e t o d y p r o d u k c j i b e z p i e c z n e g o o p r o g r a m o w a n i a 1 0 9
a p l i k a c j ( n i e k a d y u y t k o w n i k z g o s i b d p r o d u c e n t o w i
n i e k t ó r z y m o g p o s t a n o w i w y k o r z y s t a g o d o w a s n y c h
c e l ó w ) . P r o g r a m i c i z k o l e i n i e s z a z w y c z a j w s t a n i e w y k r y
w i e l u n i e p r a w i d o w o c i z e w z g l d u n a b r a k o b i e k t y w i z m u
w z g l d e m w a s n e g o k o d u i p r o b l e m z d o s t r z e e n i e m t y c h
b d ó w , k t ó r e u m k n y i c h u w a d z e n a e t a p i e i m p l e m e n t a c j i .
W a r t o w i c p o d z i e l i t e s t o w a n i e n a e t a p y , u c i l i j e g o p r o -
c e d u r y i s c e n a r i u s z e o r a z s k o r z y s t a z t a k i c h t e c h n i k , j a k
t e s t y j e d n o s t k o w e ( t w o r z o n e p r z e z p r o g r a m i s t ó w ) , a u t o m a -
t y c z n e , f u n k c j o n a l n e ( r c z n e ) , b e z p i e c z e s t w a c z y t e t e s t y
o b c i e n i a ( k t ó r e m o g t a k e m i e w p y w n a b e z p i e c z e s t w o ,
m i n i m a l i z u j c r y z y k o a t a k ó w t y p u D O S i D D O S ) .
S k u p i e n i e k l u c z o w y c h e l e m e n t ó w a p l i k a c j i . J e l i n a s z p r o -
g r a m m o e m i e n a s t p u j c e w y w o a n i a : l o g i n . p h p ? u s e r
= 5 4 , b a s k e t . p h p ? w h a t = a d d &