III. НАЗАРИЙ МАТЕРИАЛЛАР
95
write back
→
2
Аммо, тезкор мурожаат натижасида қуйидаги ҳолат келиб чиқди:
Thread 1
Thread 2
Integer value
0
read value
←
0
read value
←
0
increase value
0
increase value
0
write back
→
1
write back
→
1
Бу таҳдид мавжуд дастурий маҳсулотларда time-of-check-to-time-of-use
(TOCTTOU) заифлиги мавжуд бўлади.
Одатда бу таҳдидларни олдини олишда
дастурлаш тилларида глобал
ўзгарувчини қулфлаб қўйиш усулларидан фойдаланилади.
SQL инексия (SQL injection). SQL инексия таҳдиди маълумотлар
базасига тегишли бўлган таҳдид бўлиб, SQL сўровларга тақиқланган
белгиларни киритиш ва бунинг натижасида маълумотлар базасида бошқа
натижа олишга қаратилган. Бу таҳдид тури энг кўп учрайдиган таҳдид тури
бўлиб, унинг ҳажми йилдан – йилга ортиб бормоқда.
Бу таҳдид асосан тақиқланган белгиларни
текширмаслик натижасида
келиб чиқади. Қуйида ушбу заифликни ўз ичига олган SQL сўрови
келтирилган:
statement = "
SELECT *
FROM users
WHERE name = '" +
userName + "';"
Бу сўровга асосан айнан керакли фойдаланувчи номи маълумотлар
базасидан қидирилмоқда. Агар бу сўров бузғунчи
томонидан userName
ўрнига ' OR '1'='1 киритилса, қуйидиги сўров ҳосил бўлади:
Do'stlaringiz bilan baham: