Mavzu: PHP dasturlash tilida havfsizlik (to'liq)
1. BahhTeeUz (M) (4797) [off] | TXT | 59| 10 Jan 2019, 02:29
Har bir dasturlashni o'rganuvchilar uchun uning proyektining havfsizligi eng asosiy o'rinda bo'lishi aniq. Bu mavzuda imkon jiddiyroq qadar to'liq ma'lumot bermoqchiman. Bu esa menimcha UzNET ma'lumotlarida bo'ladi :-)
Demak boshladim, xatolik turlari va ularni yopish:
1) Xatolik haqida foydalanuvchiga xabar berish
Bu jiddiy xatolik emas ammo bu orqali ham "kerakli" xatolikni topish mumkin.
Himoyasi:
.htaccess fayliga
php_flag error_reporting 0
Buyrug'ini yozish. Bu buyruq orqali xatolikni ko'rdatmaydi.

2) Sistema haqida foydalanuvchiga ochiq ma'lumot ko'rsatish
Bu ham jiddiy "qaramlik" emasku ammo sistema haqidagi ma'lumotni ham ko'rsatib berish "yaxshi amakilar" uchun qo'l kelishi mumkin. Bunga misol qilib, phpinfo.php fayli bo'la oladi. CMS yoki biror fremworkni aytmasak ham bo'ladi...
Himoya:
.htaccess fayliga
Order Deny,Allow
<FilesMatch <"\.php">
Deny from all
</FilesMatch>
Kodini kiritish orqali php fayllarni to'g'ridan-to'g'ri ko'rish yoki yuklab olishini yopishingiz mumkin.

3) Admin paneldagi oddiy parol
Bu ham jiddiy havf solmaydi ammo sistemadagi holatni bu orqali olish imkoniyati ko'proq.
4) Global o'zgaruvchilarni to'g'ri sozlamaslik
Bu endi jiddiy havflardan biri hisloblanadi. Ya'ni ichki sozlamalar orqali kerakli tomonlarni yopmaslik.
Himoya:
.htaccess fayliga
php_flag register_globals off
Kodini orqali global o'zgaruvchilarni o'zgarishini oldini olasiz.

5) PHP - Ineksiya
Bu haqida ko'p eshitganmiz ammo aniq ma'lumotga ega emas edik. Bu havfli holat

<?php

eval(), preg_replace(), require_once(), include_once(), include(), require(), create_function(), readfile(), dir(), fopen()

?>



Bu php funksiyalari orqali "yaxshi amakilar" sizning tashqi yo'naltirilgan so'rov orqali sizning sistemasidagi haqida ma'lumotga ega bo'lishi va yoki kerakli fayllaringizni olish imkoniga ham ega. Bu funksiyalardan imkon qadar foydalanmang va agar foydalanayotgan bo'lsangiz ham to'g'ri yozishga harakat qiling.
6) Fayl yuklnish vaqtida PHP Ineksiya
Bu turda foydalanuvchi fayl tanlaydigan va yuklayotgan vaqtidagi faylga ichki holatida uni ichiga kod kiritish hisoblanadi. Bu holatda, agar faylni tekshiruvlardan o'tkazmasdan serverga joylashga ruxsat bersangiz u holatda balkim, sizning global sozlamalaringizga o'zgarishlar haqidagi buyruqlar berilgan yoki shunga o'xshash havfli buyruq berilgan bo'lishi mumkin. Buni yo'qotish uchun siz faylni tekshirishni to'g'ri va to'liq amalga oshirishingiz kerak. Ya'ni, "moderatsiydan o'tmagunicha" degan qandaydur hayol emas, haqiqiy tekshiruv nazarda tutilmoqda.
7) e-mail ineksiya
Bu turda dasturlovchilar foydalanuvchiga xabarni to'g'ri va to'liq yetib borishi uchun chetdagi kutubxonalardan foydalangan holda amalga oshirishga harakat qiladi va u chetdagi kutubxona muallifi kodni o'zgartirgan holda saytni istagan kuyiga solishi mumkinligi haqida o'ylab ham ko'rmaydi...
8) SQL ineksiya
Bu tur haqida ham ko'p eshitganmiz ammo to'liq bilmaymiz. Bu usul orqali ma'lumotlar bazasidagi strukturani bilib olishi yoki istalgan holatda ko'rishi, saqlashi, o'zgartirishi, o'chirishi ham mumkin.
Bu holatga misol qilib:

<?php

mysql_query
("SELECT * FROM `users` WHERE `id` = '".$_GET['id']."' LIMIT 1);

?>




Bu kodda oddiy qilib aytganda
$_GET so'rovini o'zgartirish mumkin, aytaylik

<?php

mysql_query
("SELECT * FROM `users` WHERE `id` = '1; or select * ...' LIMIT 1);

?>




So'rovli orqali istaganini qila oladi.
9)
Qisqasi bu postga yana qo'shimcha yozib boraman. Sababi hozir yo'qotib qo'yishim mmkin shuncha yozganimni...
Oxirgi o'zgarish: BahhTeeUz (10 Jan 2019, 02:33)
Ijobiy (1): Arey,
2. Tayotabek (1511) [off] | TXT | 58| 10 Jan 2019, 02:41
5 - require va include dan juda köp foydalanamiz. Ammo, bunda ham xavf borligini endi eshityapman. Iloji bölsa nimalarga ahamiyat berishimiz va qanday yozish kerakligini ham yozib ötsangiz:-)
misol men doim
require (yoki include) ('papka/fayl.php'); tarzida ulayman. Ammo yana nimaga e'tibor berish kerak tushunmadim...:nima:
3. MasterOS (1420) [off] | TXT | 58| 10 Jan 2019, 02:44
Tayotabek, menimcha xavf requireda
4. Tayotabek (1511) [off] | TXT | 58| 10 Jan 2019, 02:47
MasterOS, Aynan nima uchun degan savol miyaga kelyapti??
.
7ga ochig'i tushunmadim!)))
5. MasterOS (1420) [off] | TXT | 58| 10 Jan 2019, 02:51
Tayotabek, 7 ni manosi.Saytga hujum qiluvchi "Ogayni" email orqali biror bir ssilka jonatib, shu ssilka orqali buzib kirishi mumkin.
Ijobiy (1): Besthakker,
Raxmat aytdi (1): Tayotabek,
6. Besthakker (1772) [off] | TXT | 58| 10 Jan 2019, 03:29
8.



<?php

mysql_query
("SELECT * FROM `users` WHERE `id` = '".$_GET['id']."' LIMIT 1);

?>






bu qanaqa kod batafsilroq malumot bersayiz iltimos men shu kodni qayerdadur korgandim
7. UmA (457) [off] | TXT | 55| 10 Jan 2019, 07:14
Rostdan ham require() include() larda nima ayb :D men ham aynan shunisiga tushunmadim :koz:
Ma'lumotlar
Mavzu id raqami: 3041
Mavzuga oid xabarlar soni: 19 ta
So'ngi faollik vaqti: 22 Nov 2019, 13:08
Mavzuni ko'rishgan: 60 kishi
» txt shaklida yuklab olish
» Mavzudagi yangi xabarlardan xabardor bo'lishni rad etish
uzmasters.ru Onlayn 164 (0/164)
uzmasters.ru Forumga a'zo bo'lish
uzmasters.ru Forumdan qidirish
uzmasters.ru Bosh sahifa
Яндекс.Метрика UzMasterS.Ru