To'liq oxiri oddiy 4 harfdan iborat. Hech kim sizga aytmagan jinsiy aloqa haqida qiziqarli faktlar. Qora roʻyxatlardan emas, faqat oq roʻyxatlardan foydalaning

Homilador bo'lish, istalmagan homiladorlikning oldini olish yoki sherigingiz bilan qachon jinsiy aloqa qilish yaxshiroq bo'lishini aniqlash uchun eng yaxshi vaqtni aniqlash kerakmi? Ilgari ayollar maslahat uchun shifokorga borishlari kerak edi, endi esa ularning yangi eng yaxshi do‘sti – smartfon bor.

So'nggi yillarda ayollar uchun turli xil ilovalar paydo bo'ldi, ular unumdor kunlar va ovulyatsiya vaqtlarini kuzatishni osonlashtiradi, shuningdek, shaxsiy qaydlar qiladi. Bundan tashqari, ular boshqa ko'plab xususiyatlarga ega. Shunday ilovalardan biri Glow bo'lib, undan allaqachon 47 million ayol foydalanadi. Glow sizga ayollarning kayfiyati, jinsiy aloqa sifati va chastotasi kabi narsalarni kuzatish imkonini beradi. Ushbu ilova tufayli butun dunyo ayollarining intim hayotiga oid qiziqarli faktlarni olish mumkin.

Ayollar uchun eng yaxshi mamlakatlar

1. Sizga yaqinlik etishmayaptimi? Kanadaga boring. Ma'lum bo'lishicha, kanadalik ayollar o'rtacha ilova foydalanuvchilariga qaraganda 45% tez-tez jinsiy aloqada bo'lishadi.

2. Lekin ehtiyot bo'ling: Kanada homilador bo'lish uchun ajoyib joy. Kanadalik ayollar boshqalarga qaraganda 21% osonroq homilador bo'lishlari mumkin.

3. Avstraliyalik ayollar ham tez-tez jinsiy aloqada bo'lishadi - o'rtacha ilova foydalanuvchilaridan 37% ko'proq.

4. Aytishga hojat yo'q, Avstraliyadagi ayollar ham homilador bo'lish imkoniyatiga ega? Ular boshqa foydalanuvchilarga qaraganda 14% yuqori.

5. AQSh baxtli bo'lish uchun yaxshi joy. Amerikalik ayollar boshqa ayollarga qaraganda 16% ko'proq jinsiy aloqada bo'lishadi.

6. Baxtli bo'lish uchun eng yomon joy? Lotin Amerikasi. Bu erda ayollar o'rtacha ilova foydalanuvchilariga qaraganda 4% kamroq jinsiy aloqada bo'lishadi.

Jinsiy tuyadi

1. Ayolning jinsiy ishtahasi uning oylik tsikliga mos keladi. Tsiklning birinchi kuni hayz ko'rishning birinchi kuni bo'lib, u taxminan besh kun davom etadi. Shunday qilib, ayollar oyiga bir kundan besh kungacha jinsiy aloqaga eng kam qiziqishadi.

2. Ko'p ayollar bu vaqt ichida energiya darajasi yoki kayfiyatning o'zgarishi haqida xabar berishadi va bu odatda jinsiy istakning pasayishi bilan bog'liq. Ayollar, shuningdek, hayz ko'rganidan keyin bir hafta davomida jinsiy aloqaga kamroq qiziqishadi.

3. Aksariyat ayollar tsiklning 12-kunida yana jinsiy aloqa qilishni boshlaydilar.

4. Ko'p ayollar tsiklning 12 dan 14 kunigacha muntazam jinsiy aloqada bo'lishadi. Glow ilovasi bugungi kunlarni "cho'qqi sexy" deb ataydi.

5. Ayollar, aslida, tsiklning 13 va 14-kunlarida o'zlarini eng seksual his qiladilar. Ammo qiziq tomoni shundaki, ular bu vaqtda eng yaxshi, eng qoniqarli jinsiy aloqani olishlari shart emas.

6. Ayollar tsiklning oxirgi, 30-kunida jinsiy aloqadan eng ko'p zavqlanishadi. Glowdagi bu kun "cho'qqi orgazm" deb belgilangan.

Ayollar mamnunmi?

1. Ayollar tsiklning 15 va 16 kunida, shuningdek, oldingi kunlarda ko'p jinsiy aloqada bo'lgan bo'lsa, o'zlarini eng baxtli his qilishadi.

2. Glow foydalanuvchilari ikki yil davomida 7,6 million jinsiy aloqani qayd etishgan.

3. Bu har daqiqada Glow ilovasidan foydalanuvchi kamida yetti nafar ayol jinsiy aloqada bo‘lishini anglatadi.

4. Darvoqe, foydalanuvchilar ham 2 million marta o'z sevgilarini bildirishgan. Ilova, shuningdek, 88 000 juftlikning jinsiy sikli va tug'ilish darajasini ham kuzatib boradi.

5. Afsuski, jinsiy aloqa mavjud bo'lishiga qaramay, hamma ayollar ham ulardan mamnun emas. Ayollarning deyarli uchdan bir qismi smartfondan ko'ra jinsiy aloqadan voz kechishni afzal ko'radi.

6. Lekin bu hali ham uchdan ikki qismi jinsiy aloqa qilishdan ko'ra telefonlaridan voz kechishni afzal ko'rishini anglatadi.

Salom. Mening ismim Sasha Barannik. Mail.Ru Group-da men 15 nafar xodimdan iborat veb-ishlab chiqish bo'limiga rahbarlik qilaman. Biz o'n millionlab foydalanuvchilar uchun veb-saytlarni qanday yaratishni o'rgandik va bir necha million kundalik auditoriyani osongina engishimiz mumkin. Men o'zim 20 yildan beri veb-ishlab chiqish bilan shug'ullanaman va oxirgi 15 yil davomida men o'z ishim uchun asosan PHP da dasturlash bilan shug'ullanaman. Garchi bu vaqt ichida tilning imkoniyatlari va rivojlanishga bo'lgan yondashuv sezilarli darajada o'zgargan bo'lsa-da, asosiy zaifliklarni tushunish va ulardan himoya qilish har qanday ishlab chiquvchi uchun asosiy qobiliyat bo'lib qolmoqda.

Internetda siz ko'plab xavfsizlik maqolalari va qo'llanmalarini topishingiz mumkin. Men bu kitobni juda batafsil, ammo qisqa va tushunarli deb topdim. Umid qilamanki, bu sizga yangi narsalarni o'rganishga va saytlaringizni yanada ishonchli va xavfsizroq qilishga yordam beradi.

P.S. Kitob uzoq, shuning uchun tarjimasi bir nechta maqolalarda chop etiladi. Demak, boshlaylik...

PHP xavfsizligi bo'yicha yana bir kitob? PHP xavfsizligi haqida kitobni boshlashning ko'plab usullari mavjud. Afsuski, men ularning hech birini o‘qimaganman, shuning uchun yozayotganda buni tushunishga majbur bo‘laman. Ehtimol, men eng asosiysidan boshlayman va hamma narsa amalga oshishiga umid qilaman.

Agar X kompaniyasi tomonidan onlayn ravishda ishga tushirilgan mavhum veb-ilovani ko'rib chiqsak, unda bir qator komponentlar mavjud, deb taxmin qilishimiz mumkin, agar buzib tashlangan bo'lsa, jiddiy zarar etkazishi mumkin. Masalan, qaysi biri?

  • Foydalanuvchilarga zarar: elektron pochta, parollar, shaxsiy ma'lumotlar, bank kartasi ma'lumotlari, biznes sirlari, kontaktlar ro'yxati, tranzaktsiyalar tarixi va chuqur himoyalangan sirlarga kirish (masalan, kimdir o'z itiga Sparkle deb nom bergan). Ushbu ma'lumotlarning tarqalishi foydalanuvchilarga (jismoniy shaxslar va kompaniyalar) zarar etkazadi. Bunday ma'lumotlarni suiiste'mol qiladigan veb-ilovalar va foydalanuvchi ishonchidan foydalanadigan xostlar ham zarar keltirishi mumkin.
  • X kompaniyasining o'ziga zarar: foydalanuvchilarga etkazilgan zarar tufayli obro'si yomonlashadi, tovon to'lanishi kerak, muhim biznes ma'lumotlari yo'qoladi, qo'shimcha xarajatlar kelib chiqadi - infratuzilma, xavfsizlikni yaxshilash, oqibatlarni bartaraf etish, yuridik xarajatlar, ishdan bo'shatilganlar uchun katta imtiyozlar. top menejerlar va boshqalar.
  • Men ushbu ikki toifaga e'tibor qarataman, chunki ular veb-ilovalar xavfsizligi oldini olishi kerak bo'lgan ko'pgina muammolarni o'z ichiga oladi. Jiddiy xavfsizlik buzilishlarini boshdan kechirgan barcha kompaniyalar press-relizlarda va veb-saytlarida bunga qanchalik sezgir ekanligini tezda yozishadi. Shuning uchun men sizga ushbu muammoning ahamiyatini amalda duch kelmasdan oldin butun qalbingiz bilan his qilishingizni maslahat beraman.

    Afsuski, xavfsizlik masalalari ko'pincha haqiqatdan keyin hal qilinadi. Eng muhimi, maqbul byudjet va vaqt oralig'ida foydalanuvchilarning ehtiyojlarini qondiradigan ishchi ilovani yaratishdir, deb ishoniladi. Bu tushunarli ustuvorliklar to'plami, ammo xavfsizlikni abadiy e'tibordan chetda qoldirib bo'lmaydi. O'zgarishlar qiymati hali ham kichik bo'lsa, ishlab chiqish jarayonida aniq echimlarni amalga oshirib, uni doimo yodda tutish yaxshiroqdir.

    Xavfsizlikning ikkinchi darajali xususiyati asosan dasturlash madaniyatining natijasidir. Ba'zi dasturchilar zaiflik haqida o'ylab sovuq ter to'kib yuborishadi, boshqalari esa bu zaiflik umuman emasligini isbotlamagunlaricha zaiflikning mavjudligi haqida bahslashishlari mumkin. Bu ikki ekstremal o'rtasida ko'plab dasturchilar bor, ular shunchaki yelkalarini qisib qo'yishadi, chunki ular uchun ishlar hali yomon bo'lmagan. Ular uchun bu g'alati dunyoni tushunish qiyin.

    Veb-ilova xavfsizligi ilova xizmatlariga ishonadigan foydalanuvchilarni himoya qilishi kerakligi sababli, quyidagi savollarga javoblarni bilish kerak:

  • Kim bizga hujum qilmoqchi?
  • Ular bizga qanday hujum qilishlari mumkin?
  • Qanday qilib biz ularni to'xtata olamiz?
  • Kim bizga hujum qilmoqchi? Birinchi savolga javob juda oddiy: hamma narsa va hamma narsa. Ha, butun olam sizga saboq bermoqchi. Kali Linux bilan ishlayotgan overclock qilingan kompyuterga ega yigitmi? Ehtimol, u allaqachon sizga hujum qilgan. Odamlarning g'ildiraklariga spiker qo'yishni yaxshi ko'radigan shubhali odammi? Ehtimol, u allaqachon sizga hujum qilish uchun kimnidir yollagan. Sizga soatlik ma'lumotlarni uzatadigan ishonchli REST API? Ehtimol, bir oy oldin sizni zararlangan ma'lumotlar bilan ta'minlash uchun buzilgan. Men ham sizga hujum qila olaman! Demak, bu kitobga ko'r-ko'rona ishonishingiz shart emas. Meni yolg'on gapiryapman deb hisoblang. Va meni toza suvga olib keladigan va zararli maslahatlarimni ochib beradigan dasturchi toping. Boshqa tomondan, ehtimol u ham sizni buzmoqchi ...

    Ushbu paranoyaning maqsadi veb-ilovangiz bilan o'zaro ta'sir qiladigan barcha narsalarni aqliy ravishda tasniflashni osonlashtirishdir ("Foydalanuvchi", "Hacker", "Ma'lumotlar bazasi", "Ishonchsiz kiritish", "Menejer", "REST API" va). keyin har bir toifaga ishonch indeksini tayinlang. Shubhasiz, "Hacker" ga ishonib bo'lmaydi, ammo "Ma'lumotlar bazasi" haqida nima deyish mumkin? “Ishonchsiz maʼlumotlar” oʻz nomini bir sababga koʻra oldi, lekin siz hamkasbingizning ishonchli Atom tasmasidan blog postini filtrlaysizmi?

    Veb-ilovalarni buzish bilan jiddiy shug'ullanadiganlar bu fikrdan foydalanishni o'rganadilar, ko'pincha zaif bo'lganlarga emas, balki ishonchli ma'lumotlar manbalariga hujum qilishadi, ular yaxshi xavfsizlikka ega. Bu tasodifiy qaror emas: haqiqiy hayotda yuqori ishonch indeksiga ega sub'ektlar kamroq shubhali. Ilovani tahlil qilishda men birinchi navbatda ushbu ma'lumotlar manbalariga e'tibor beraman.

    Keling, "Ma'lumotlar bazalari" ga qaytaylik. Agar xaker ma'lumotlar bazasiga kira oladi deb faraz qilsak (va biz paranoidlar har doim buni taxmin qilamiz), unda unga hech qachon ishonib bo'lmaydi. Aksariyat ilovalar hech qanday savolsiz ma'lumotlar bazalariga ishonadi. Tashqi tomondan veb-ilova bir butunga o'xshaydi, lekin uning ichida ma'lumotlar almashinadigan alohida komponentlar tizimi mavjud. Agar biz ushbu komponentlarning barchasini ishonchli deb hisoblasak, ulardan biri buzilgan bo'lsa, qolganlari tezda buziladi. Bunday halokatli xavfsizlik muammolarini "Agar ma'lumotlar bazasi buzilgan bo'lsa, biz hali ham yo'qotamiz" iborasi bilan hal qilib bo'lmaydi. Siz shunday deyishingiz mumkin, lekin agar siz dastlab bazaga ishonmasangiz va shunga ko'ra harakat qilmasangiz, buni qilishingiz kerakligi haqiqat emas!

    Qanday qilib ular bizga hujum qilishlari mumkin? Ikkinchi savolga javob - bu juda keng ro'yxat. Veb-ilovaning har bir komponenti yoki qatlami ma'lumot oladigan joydan sizga hujum qilish mumkin. Asosan, veb-ilovalar shunchaki ma'lumotlarni qayta ishlaydi va ularni bir joydan boshqa joyga ko'chiradi. Foydalanuvchi so'rovlari, ma'lumotlar bazalari, API'lar, blog tasmasi, shakllar, cookie-fayllar, omborlar, PHP muhit o'zgaruvchilari, konfiguratsiya fayllari, konfiguratsiya fayllari, hatto siz bajaradigan PHP fayllari - ularning barchasi xavfsizlikni buzish va zarar etkazish uchun ma'lumotlar bilan ifloslanishi mumkin. Aslida, agar so'rovni amalga oshirish uchun foydalanilgan PHP kodida zararli ma'lumotlar aniq bo'lmasa, u "foydali yuk" sifatida keladi. Bu a) siz PHP manba kodini yozgansiz, b) u to'g'ri ko'rib chiqilgan va c) jinoiy tashkilotlar tomonidan sizga to'lanmagan deb taxmin qilinadi.

    Agar siz ma'lumotlar manbalaridan ma'lumotlarning to'liq xavfsiz va foydalanishga yaroqliligini tekshirmasdan foydalansangiz, siz hujumga ochiq bo'lasiz. Shuningdek, siz olgan ma'lumotlar yuborilayotgan ma'lumotlarga mos kelishini tekshirishingiz kerak. Agar ma'lumotlar chiqish uchun to'liq xavfsiz bo'lmasa, sizda ham jiddiy muammolar bo'ladi. Bularning barchasi PHP uchun qoida sifatida ifodalanishi mumkin “Validate input; chiqishdan qoching."

    Bu biz qandaydir tarzda nazorat qilishimiz kerak bo'lgan aniq ma'lumotlar manbalari. Manbalar mijoz tomonida saqlashni ham o'z ichiga olishi mumkin. Masalan, ko'pgina ilovalar foydalanuvchilarni cookie fayllarida saqlanishi mumkin bo'lgan noyob sessiya identifikatorlarini belgilash orqali taniydi. Agar tajovuzkor cookie-fayldan qiymat olsa, u boshqa foydalanuvchi nomini o'zgartirishi mumkin. Biz foydalanuvchi maʼlumotlarini ushlash yoki buzish bilan bogʻliq baʼzi xavflarni kamaytirishimiz mumkin boʻlsa-da, foydalanuvchi kompyuterining jismoniy xavfsizligini kafolatlay olmaymiz. Foydalanuvchilar “123456” ni “parol”dan keyingi eng ahmoq parol deb hisoblashlariga ham kafolat bera olmaymiz. Bugungi kunda cookie-fayllar foydalanuvchi tomonidan saqlashning yagona turi emasligi qo'shimcha o'tkirlik bilan ta'minlanadi.

    Ko'pincha e'tibordan chetda qoladigan yana bir xavf - bu manba kodingizning yaxlitligi. PHPda ko'p sonli erkin bog'langan kutubxonalar, modullar va ramkalar uchun paketlarga asoslangan ilovalarni ishlab chiqish tobora ommalashib bormoqda. Ularning aksariyati Github kabi ommaviy omborlardan yuklab olinadi va Composer va uning veb hamkori Packagist.org kabi paket o'rnatuvchilari yordamida o'rnatiladi. Shuning uchun, manba kodining xavfsizligi butunlay ushbu uchinchi tomon xizmatlari va komponentlarining xavfsizligiga bog'liq. Agar Github buzilgan bo'lsa, u zararli qo'shimchalar bilan kodni tarqatish uchun ishlatiladi. Packagist.org - bo'lsa, tajovuzkor paket so'rovlarini o'zining zararli paketlariga yo'naltirishi mumkin bo'ladi.

    Hozirda Composer va Packagist.org bog'liqlikni aniqlash va paketlarni taqsimlashda ma'lum zaifliklarga duchor bo'ladi, shuning uchun har doim ishlab chiqarish muhitingizdagi hamma narsani ikki marta tekshiring va Packagist.org dan barcha paketlar manbasini tekshiring.

    Qanday qilib biz ularni to'xtata olamiz? Veb-ilovaning xavfsizligini buzish kulgili oddiydan juda ko'p vaqt talab qiladigan vazifa bo'lishi mumkin. Har bir veb-ilovada biror joyda zaiflik bor deb taxmin qilish adolatli. Sababi oddiy: barcha ilovalar odamlar tomonidan amalga oshiriladi va odamlar xato qiladilar. Shunday qilib, mukammal xavfsizlik - bu haqiqiy orzu. Barcha ilovalarda zaifliklar bo'lishi mumkin va dasturchilarning vazifasi xavflarni minimallashtirishdir.

    Veb-ilovaga hujumdan zarar ko'rish ehtimolini kamaytirish uchun yaxshilab o'ylab ko'rishingiz kerak bo'ladi. Hikoya davom etar ekan, men hujumning mumkin bo'lgan usullari haqida gapiraman. Ulardan ba'zilari aniq, boshqalari esa yo'q. Lekin har qanday holatda, muammoni hal qilish uchun siz ba'zi asosiy xavfsizlik tamoyillarini hisobga olishingiz kerak.

    Xavfsizlikning asosiy tamoyillari Xavfsizlik choralarini ishlab chiqishda ularning samaradorligini quyidagi fikrlardan foydalangan holda baholash mumkin. Men allaqachon yuqorida ba'zilarini keltirganman.
  • Hech kimga va hech narsaga ishonmang.
  • Har doim eng yomon stsenariyni qabul qiling.
  • Ko'p darajali himoyani qo'llang (Chuqur mudofaa).
  • “Keep It Simple Stupid” (KISS) tamoyiliga amal qiling.
  • "Eng kam imtiyoz" tamoyiliga amal qiling.
  • Hujumchilar noaniqlik hidini sezadilar.
  • Hujjatlarni (RTFM) o'qing, lekin hech qachon ishonmang.
  • Agar u sinovdan o'tmagan bo'lsa, u ishlamaydi.
  • Bu har doim sizning aybingiz!
  • Keling, barcha fikrlarni qisqacha ko'rib chiqaylik.1. Hech kimga yoki hech narsaga ishonmang Yuqorida aytib o'tilganidek, to'g'ri pozitsiya sizning veb-ilovangiz bilan aloqada bo'lgan hamma narsa va har bir kishi uni buzishni xohlaydi deb taxmin qilishdir. Bunga so'rovlarni qayta ishlash uchun zarur bo'lgan boshqa dastur komponentlari yoki qatlamlari kiradi. Hamma narsa va hamma narsa. Istisnolar yo'q.2. Har doim eng yomon stsenariyni qabul qiling Ko'pgina xavfsizlik tizimlarining umumiy bir jihati bor: ular qanchalik yaxshi yaratilgan bo'lishidan qat'i nazar, ularning har biri buzilishi mumkin. Agar buni hisobga olsangiz, ikkinchi nuqtaning afzalligini tezda tushunasiz. Eng yomon stsenariyga e'tibor qaratish sizga hujumning ko'lami va jiddiyligini baholashga yordam beradi. Va agar bu sodir bo'lsa, qo'shimcha xavfsizlik choralari va me'moriy o'zgarishlar bilan noxush oqibatlarni kamaytirishingiz mumkin. Balki siz ishlatayotgan an'anaviy yechim allaqachon yaxshiroq narsa bilan almashtirilgandir?3. Ko'p darajali himoyadan foydalaning (Chuqurlikdagi mudofaa) Ko'p darajali himoya harbiy fandan olingan, chunki odamlar dushman o'qlari va pichoqlaridan hayotiy organlarni qoplaydigan ko'p sonli devorlar, qum qoplari, jihozlar, zirhlar va kolbalar to'g'ri ekanligini tushunishgan. xavfsizlikka yondashuv. Yuqoridagilardan qaysi biri himoya qilmasligini hech qachon bilmaysiz va bir necha himoya qatlamlari sizga dala istehkomi yoki jangovar tuzilishdan ko'ra ko'proq tayanishga imkon berishiga ishonch hosil qilishingiz kerak. Albatta, bu faqat bitta muvaffaqiyatsizlik haqida emas. Tasavvur qiling-a, hujumchi zinapoyadan o'rta asrlardagi ulkan devorga ko'tarilib, uning orqasida o'qlar yog'dirilgan boshqa devor borligini topdi. Xakerlar ham xuddi shunday his qilishadi.4. Keep It Simple Stupid (KISS) Eng yaxshi himoya har doim oddiy. Ularni ishlab chiqish, amalga oshirish, tushunish, ishlatish va sinab ko'rish oson. Oddiylik xatolarni kamaytiradi, dasturning to'g'ri ishlashini rag'batlantiradi va hatto eng murakkab va dushman muhitlarda ham amalga oshirishni osonlashtiradi.5. “Eng kam imtiyoz” tamoyiliga amal qiling Axborot almashinuvining har bir ishtirokchisi (foydalanuvchi, jarayon, dastur) faqat o'z funksiyalarini bajarishi uchun zarur bo'lgan kirish huquqlariga ega bo'lishi kerak.6. Attackers Smell Obscurity by Obscurity Xavfsizligi, agar siz Mudofaa A dan foydalansangiz va uning nima ekanligini, qanday ishlashini yoki hatto mavjudligini hech kimga aytmasangiz, u sizga sehrli tarzda yordam beradi, chunki tajovuzkorlar yutqazib qo'yadi, degan taxminga asoslanadi. Aslida, bu faqat bir oz afzallik beradi. Ko'pincha, tajribali hujumchi siz ko'rgan choralarni aniqlay oladi, shuning uchun siz aniq himoya vositalaridan foydalanishingiz kerak. Noaniq himoya haqiqiy himoyaga bo'lgan ehtiyojni bekor qilishiga haddan tashqari ishonganlar illyuziyalardan xalos bo'lish uchun maxsus jazolanishi kerak.7. Hujjatlarni (RTFM) o'qing, lekin hech qachon PHP qo'llanmasi Bibliyaga ishonmang. Albatta, u Flying Spagetti Monster tomonidan yozilmagan, shuning uchun texnik jihatdan u hali sezilmagan yoki tuzatilmagan ba'zi yarim haqiqatlar, kamchiliklar, noto'g'ri talqinlar yoki xatolarni o'z ichiga olishi mumkin. Xuddi shu narsa Stack Overflow uchun ham amal qiladi.

    Xavfsizlik donoligining ixtisoslashgan manbalari (PHP-ga yo'naltirilgan va boshqa) odatda batafsilroq ma'lumot beradi. PHP xavfsizligi bo'yicha Injilga eng yaqin narsa bu OWASP bo'lib, u maqolalar, qo'llanmalar va maslahatlarni taqdim etadi. Agar OWASP da biror narsa qilish tavsiya etilmasa, buni hech qachon qilmang!

    8. Agar u sinovdan o'tmagan bo'lsa, u ishlamayapti. Xavfsizlik choralarini ko'rayotganda, tekshirish uchun zarur bo'lgan barcha ishchi testlarni yozishingiz kerak. Jumladan, qamoqxona yig'layotgan xaker ekanligingizni ko'rsatish. Bu juda qiyin bo'lib tuyulishi mumkin, ammo veb-ilovalarni buzish usullari bilan tanishish yaxshi amaliyotdir; mumkin bo'lgan zaifliklar haqida bilib olasiz va sizning paranoyyangiz kuchayadi. Shu bilan birga, veb-ilovani buzish uchun yangi sotib olingan minnatdorchilik haqida rahbariyatga aytish shart emas. Zaifliklarni aniqlash uchun avtomatlashtirilgan vositalardan foydalanganingizga ishonch hosil qiling. Ular foydalidir, lekin, albatta, ular yuqori sifatli kod ko'rib chiqishlarini va hatto ilovani qo'lda tekshirishni almashtirmaydi. Sinovga qancha ko'p resurslar sarflasangiz, arizangiz shunchalik ishonchli bo'ladi.9. Bu har doim sizning aybingiz! Dasturchilar xavfsizlikning zaif tomonlari alohida hujumlarda topiladi va ularning oqibatlari ahamiyatsiz deb o'ylashga odatlangan.

    Misol uchun, ma'lumotlarning buzilishi (yaxshi hujjatlashtirilgan va keng tarqalgan xakerlik turi) ko'pincha kichik xavfsizlik muammolari sifatida qaraladi, chunki ular foydalanuvchilarga bevosita ta'sir qilmaydi. Biroq, dasturiy ta'minot versiyalari, ishlab chiqish tillari, manba kodlari joylashuvi, dastur va biznes mantig'i, ma'lumotlar bazasi tuzilishi va veb-ilovaning muhiti va ichki operatsiyalarining boshqa jihatlari haqidagi ma'lumotlarning sizib chiqishi ko'pincha muvaffaqiyatli hujum uchun juda muhimdir.

    Shu bilan birga, xavfsizlik tizimlariga hujumlar ko'pincha hujumlarning kombinatsiyasi hisoblanadi. Individual ravishda ular ahamiyatsiz, lekin ba'zida ular boshqa hujumlar uchun yo'l ochadi. Misol uchun, SQL in'ektsiyasi ba'zan ma'lum foydalanuvchi nomini talab qiladi, uni ancha qimmatroq va ko'rinadigan qo'pol kuch o'rniga ma'muriy interfeysga qarshi Vaqt hujumi yordamida olish mumkin. O'z navbatida, SQL in'ektsiyasi jurnallardagi ko'p sonli shubhali yozuvlar bilan e'tiborni jalb qilmasdan, ma'lum bir ma'muriy hisobga XSS hujumini amalga oshirish imkonini beradi.

    Zaifliklarni alohida-alohida ko'rib chiqish xavfi ularning tahdidini etarlicha baholamaslik va shuning uchun ularga nisbatan beparvo munosabatda bo'lishdir. Dasturchilar ko'pincha zaiflikni tuzatishga dangasa bo'lishadi, chunki ular buni juda kichik deb bilishadi. Xavfsiz rivojlanish uchun mas'uliyatni ko'pincha muayyan muammolarni hujjatlashtirmasdan yakuniy dasturchilar yoki foydalanuvchilarga topshirish odatiy holdir: hatto bu zaifliklarning mavjudligi ham tan olinmaydi.

    Ko'rinib turgan ahamiyatsizlik muhim emas. Dasturchilar yoki foydalanuvchilarni zaifliklaringizni tuzatishga majburlash mas'uliyatsizlikdir, ayniqsa ular haqida sizga ma'lumot berilmagan bo'lsa.

    Kirishni tekshirish Kirishni tekshirish veb-ilovangizning tashqi himoya perimetridir. U asosiy biznes mantig'ini, ma'lumotlarni qayta ishlash va ishlab chiqarishni himoya qiladi. Tom ma'noda, ushbu perimetrdan tashqarida bo'lgan hamma narsa, joriy so'rov bo'yicha bajarilgan koddan tashqari, dushman hududi hisoblanadi. Perimetrning barcha mumkin bo'lgan kirish va chiqishlari kechayu kunduz jangari soqchilar tomonidan qo'riqlanadi, ular avval o'q otib, keyinroq savol beradi. Alohida himoyalangan (va juda shubhali ko'rinadigan) "ittifoqchilar" perimetrga, jumladan "Model", "Ma'lumotlar bazasi" va "Fayl tizimi" ga ulangan. Hech kim ularga o'q otishni xohlamaydi, lekin agar ular o'z omadlarini sinab ko'rsalar ... portlashlar. Har bir ittifoqchining o'z perimetri bor, u biznikiga ishonishi yoki ishonmasligi mumkin.

    Kimga ishonishingiz mumkinligi haqida aytganlarimni eslaysizmi? Hech kimga va hech narsaga. PHP dunyosida "foydalanuvchi kiritishiga" ishonmaslik maslahati hamma joyda mavjud. Bu ishonch darajasiga ko'ra toifalardan biridir. Foydalanuvchilarga ishonish mumkin emas deb hisoblasak, qolgan hamma narsaga ishonish mumkin deb o'ylaymiz. Bu noto'g'ri. Foydalanuvchilar kirishning eng aniq ishonchsiz manbaidir, chunki biz ularni bilmaymiz va biz ularni nazorat qila olmaymiz.

    Tasdiqlash mezonlari Kirish ma'lumotlarini tekshirish veb-ilovaning eng aniq va eng ishonchsiz himoyasi hisoblanadi. Zaifliklarning aksariyati tekshirish tizimidagi nosozliklar tufayli yuzaga keladi, shuning uchun himoyaning bu qismi to'g'ri ishlashi juda muhimdir. Bu muvaffaqiyatsiz bo'lishi mumkin, ammo baribir quyidagi fikrlarga rioya qiling. Maxsus tekshirgichlarni qo'llashda va uchinchi tomon tekshirish kutubxonalaridan foydalanishda doimo yodda tutingki, uchinchi tomon yechimlari umumiy vazifalarni bajarishga moyil bo'ladi va ilovangizga kerak bo'lishi mumkin bo'lgan asosiy tekshirish protseduralarini o'tkazib yuboradi. Xavfsizlik ehtiyojlari uchun mo'ljallangan har qanday kutubxonalardan foydalanganda, zaifliklar va to'g'ri ishlash uchun ularni mustaqil ravishda tekshirib ko'ring. Bundan tashqari, PHP g'alati va ehtimol xavfli xatti-harakatlarni ko'rsatishi mumkinligini yodda tutishni tavsiya qilaman. Filtrlash funksiyalaridan olingan ushbu misolga qarang:

    Filtr_var("php://example.org", FILTER_VALIDATE_URL);
    Filtr hech qanday savolsiz o'tadi. Muammo shundaki, qabul qilingan php:// URL manzili bajarilayotgan PHP skriptidan (PHP ishlov beruvchisi orqali) maʼlumotlarni qaytarish oʻrniga masofaviy HTTP manzilini olishni kutuvchi PHP funksiyasiga oʻtkazilishi mumkin. Zaiflik filtrlash opsiyasida joriy URI-larni cheklash usuli yo'qligi sababli yuzaga keladi. Ilova PHP-ga xos URI emas, balki http, https yoki mailto havolasini kutsa ham. Sinovga bunday haddan tashqari umumiy yondashuvdan har qanday holatda ham qochish kerak.

    Kontekstdan ehtiyot bo'ling Kiritilgan ma'lumotlarni tekshirish veb-ilovaga xavfli ma'lumotlarni kiritishning oldini olishi kerak. Katta to'siq: Ma'lumotlar xavfsizligi testi odatda faqat birinchi mo'ljallangan foydalanish uchun amalga oshiriladi.

    Aytaylik, men ismni o'z ichiga olgan ma'lumotlarni oldim. Men uni apostroflar, defislar, qavslar, bo'shliqlar va ko'plab alfanumerik Unicode belgilar uchun juda oson tekshira olaman. Ism ko'rsatish uchun ishlatilishi mumkin bo'lgan haqiqiy ma'lumotdir (birinchi mo'ljallangan foydalanish). Ammo agar siz uni boshqa joyda ishlatsangiz (masalan, ma'lumotlar bazasi so'rovida), u yangi kontekstda tugaydi. Va ismda qonuniy bo'lgan ba'zi belgilar bu kontekstda xavfli bo'lib chiqadi: agar ism SQL in'ektsiyasini amalga oshirish uchun satrga aylantirilsa.

    Ma'lum bo'lishicha, kiritilgan ma'lumotlarni tekshirish mohiyatan ishonchsizdir. Bu aniq noto'g'ri qiymatlarni kesish uchun eng samarali hisoblanadi. Aytaylik, qachon biror narsa butun son, alfanumerik satr yoki HTTP URL bo'lishi kerak. Bunday formatlar va qiymatlar o'z cheklovlariga ega va agar to'g'ri tekshirilsa, xavf tug'dirish ehtimoli kamroq. Boshqa qiymatlarni (cheksiz matn, GET/POST massivlari va HTML) tekshirish qiyinroq va ularda zararli maʼlumotlar boʻlishi ehtimoli yuqori.

    Ko'pincha bizning ilovamiz kontekstlar o'rtasida ma'lumotlarni uzatadi, shuning uchun biz barcha kiritilgan ma'lumotlarni tekshirib, uni bir kunda chaqira olmaymiz. Kirish joyida tekshirish faqat birinchi himoya chizig'i, ammo yagona emas.

    Kirish ma'lumotlarini tekshirish bilan bir qatorda, ekranlash kabi himoya usuli juda tez-tez ishlatiladi. Uning yordami bilan har bir yangi kontekstga kirishda ma'lumotlar xavfsizligi tekshiriladi. Ushbu usul odatda saytlararo skriptlardan (XSS) himoya qilish uchun ishlatiladi, lekin u filtrlash vositasi sifatida ko'plab boshqa vazifalarda ham qo'llaniladi.

    Himoyalash chiquvchi ma'lumotlarni qabul qiluvchi tomonidan noto'g'ri talqin qilinishidan himoya qiladi. Ammo bu etarli emas - ma'lumotlar yangi kontekstga kirganda, maxsus kontekst uchun tekshirish kerak.

    Bu dastlabki kirish tekshiruvini takrorlash sifatida qabul qilinishi mumkin bo'lsa-da, qo'shimcha tekshirish bosqichlari ma'lumotlar talablari juda boshqacha bo'lsa, joriy kontekstning o'ziga xos xususiyatlarini yaxshiroq hal qiladi. Misol uchun, formadan keladigan ma'lumotlar foizli raqamni o'z ichiga olishi mumkin. Biz uni birinchi marta ishlatganimizda, biz qiymat haqiqatan ham butun son ekanligini tekshiramiz. Ammo bizning dastur modelimizga o'tkazilganda, yangi talablar paydo bo'lishi mumkin: qiymat ilovaning biznes mantig'i ishlashi uchun zarur bo'lgan ma'lum diapazonga mos kelishi kerak. Va agar bu qo'shimcha tekshiruv yangi kontekstda amalga oshirilmasa, unda jiddiy muammolar paydo bo'lishi mumkin.

    Qora roʻyxatlardan emas, faqat oq roʻyxatlardan foydalaning Qora roʻyxatlar va oq roʻyxatlar kiritilgan maʼlumotlarni tekshirishning ikkita asosiy usuli hisoblanadi. Qora rang noto'g'ri ma'lumotlarni tekshirishni anglatadi va oq rang haqiqiy ma'lumotlarni tekshirishni anglatadi. Oq ro'yxatlar afzalroq, chunki tekshirish vaqtida faqat biz kutgan ma'lumotlar uzatiladi. O'z navbatida, qora ro'yxatlar faqat dasturchilarning barcha mumkin bo'lgan noto'g'ri ma'lumotlar haqidagi taxminlarini hisobga oladi, shuning uchun chalkashlik, biror narsani o'tkazib yuborish yoki xato qilish ancha oson.

    Yaxshi misol, shablondagi chiqishsiz chiqish nuqtai nazaridan HTMLni xavfsiz qilish uchun mo'ljallangan har qanday tekshirish protsedurasi. Agar biz qora ro'yxatni ishlatadigan bo'lsak, HTMLda xavfli elementlar, atributlar, uslublar va bajariladigan JavaScript-ni o'z ichiga olmaganligini tekshirishimiz kerak. Bu juda ko'p ish va qora ro'yxatga asoslangan HTML tozalash vositalari har doim xavfli kod birikmalarini o'tkazib yuborishga muvaffaq bo'lishadi. Oq ro'yxatga olish vositalari faqat ma'lum ruxsat etilgan elementlar va atributlarga ruxsat berish orqali bu noaniqlikni yo'q qiladi. Qolganlarning barchasi, nima bo'lishidan qat'i nazar, shunchaki ajratiladi, ajratiladi yoki olib tashlanadi.

    Shunday qilib, yuqori xavfsizlik va ishonchlilik tufayli har qanday tekshirish protseduralari uchun oq ro'yxatlar afzalroqdir.

    Hech qachon kiritilgan maʼlumotlarni toʻgʻrilashga urinmang. Kirish maʼlumotlarini tekshirish koʻpincha filtrlash bilan birga boʻladi. Agar tekshirish paytida biz shunchaki ma'lumotlarning to'g'riligini baholasak (ijobiy yoki salbiy natija beradigan bo'lsak), filtrlash tekshirilayotgan ma'lumotlarni muayyan qoidalarga mos keladigan tarzda o'zgartiradi.

    Bu odatda biroz zararli. An'anaviy filtrlar, masalan, telefon raqamlaridan raqamlardan tashqari barcha belgilarni olib tashlashni (shu jumladan, qo'shimcha qavslar va defislarni) yoki keraksiz gorizontal yoki vertikal bo'shliqlarni kesishni o'z ichiga oladi. Bunday holatlarda displey yoki uzatishdagi xatolarni bartaraf etish uchun minimal tozalash amalga oshiriladi. Biroq, siz zararli ma'lumotlarni blokirovka qilish uchun filtrlashdan foydalanish bilan juda ko'p ovora bo'lishingiz mumkin.

    Kiritilgan ma'lumotlarni to'g'irlashga urinishning bir natijasi shundaki, tajovuzkor sizning tuzatishlaringiz ta'sirini taxmin qilishi mumkin. Aytaylik, yaroqsiz qator qiymati bor. Siz uni qidirasiz, o'chirasiz va filtrlashni tugatasiz. Agar tajovuzkor filtringizdan o'tib ketish uchun satr bilan ajratilgan qiymat yaratsa nima bo'ladi?

    ogohlantirish (document.cookie);
    Ushbu misolda teg bo'yicha filtrlash hech narsa qilmaydi: aniq tegni olib tashlash ma'lumotlarning HTML skriptining to'liq yaroqli elementi sifatida ko'rib chiqilishiga olib keladi. Xuddi shu narsani har qanday maxsus format bo'yicha filtrlash haqida ham aytish mumkin. Bularning barchasi kirish ma'lumotlarini tekshirish nima uchun dasturning oxirgi xavfsizlik tsikli bo'lmasligi kerakligini aniq ko'rsatadi.

    Kirishni tuzatishga urinish o'rniga, oq ro'yxatga asoslangan validatordan foydalaning va bunday kiritish urinishlarini butunlay rad eting. Filtrlash kerak bo'lgan joyda, tekshirishdan oldin filtrlang, keyin hech qachon.

    Hech qachon tashqi tekshirish vositalariga ishonmang va zaifliklarni doimo kuzatib boring, men avvalroq maʼlumotlar yangi kontekstga oʻtkazilganda tekshirish zarurligini taʼkidlagan edim. Bu veb-ilovadan tashqarida amalga oshirilgan tekshirishga ham tegishli. Bularga brauzerda HTML shakllariga qo'llaniladigan tekshirish yoki boshqa cheklovlar kiradi. HTML 5 dan ushbu shaklga qarang (yorliqlar olib tashlangan):

    Rep. Irlandiya Buyuk Britaniya
    HTML shakllari kiritilgan ma'lumotlarga cheklovlar qo'yishi mumkin. Ruxsat etilgan elementlar ro'yxati yordamida tanlovni cheklashingiz, minimal va maksimal qiymatlarni belgilashingiz, shuningdek, matn uzunligini cheklashingiz mumkin. HTML 5 ning imkoniyatlari yanada kengroq. Brauzerlar URL va elektron pochta manzillarini tekshirishlari, sanalar, raqamlar va diapazonlarni nazorat qilishlari mumkin (garchi oxirgi ikkitasini qo'llab-quvvatlash juda noaniq). Brauzerlar, shuningdek, shablon atributiga kiritilgan JavaScript oddiy ifodalari yordamida kiritilgan ma'lumotlarni tekshirishi mumkin.

    Ushbu boshqaruv elementlarining barchasi mavjud bo'lganda, ularning maqsadi ilovangizdan foydalanish qulayligini yaxshilash ekanligini unutmaslik kerak. Har qanday tajovuzkor asl shaklingizdagi cheklovlarni o'z ichiga olmaydigan shakl yaratishi mumkin. Siz hatto avtomatlashtirilgan shaklni to'ldirish uchun HTTP mijozini yaratishingiz mumkin!

    Tashqi tekshirish vositalarining yana bir misoli Twitter kabi uchinchi tomon API-laridan ma'lumotlarni olishdir. Ushbu ijtimoiy tarmoq yaxshi obro'ga ega va odatda shubhasiz ishoniladi. Ammo biz paranoyak bo'lganimiz uchun Twitterga ham ishonmasligimiz kerak. Agar buzilgan bo'lsa, uning javoblarida biz tayyor bo'lmaydigan xavfli ma'lumotlar bo'ladi. Shuning uchun, agar biror narsa yuz bersa, himoyasiz bo'lmaslik uchun bu erda ham o'zingizning chekingizdan foydalaning.

    Tashqi tekshirish vositalariga ishonchimiz komil bo'lsa, zaifliklarni kuzatish qulay. Misol uchun, agar HTML formasi maksimal uzunlik chegarasini o'rnatsa va biz hajmi chegaraga yetgan kirishni qabul qilsak, foydalanuvchi chekni chetlab o'tishga harakat qilmoqda deb taxmin qilish mantiqan to'g'ri keladi. Shunday qilib, biz tashqi vositalardagi buzilishlarni qayd qilishimiz va kirish yoki so'rovlar sonini cheklash orqali potentsial hujumlarga qarshi qo'shimcha choralar ko'rishimiz mumkin.

    PHP-da turlarni o'zgartirishdan saqlaning PHP qattiq terilgan til emas va uning ko'pgina funktsiyalari va operatsiyalari xavflidir. Bu jiddiy muammolarga olib kelishi mumkin. Bundan tashqari, qadriyatlarning o'zi emas, balki tasdiqlovchilar ayniqsa zaifdir. Masalan:

    Assert(0 == "0ABC"); //TRUE assertni qaytaradi(0 == "ABC"); //TRUE qaytaradi (boshida raqam bo'lmasa ham!) assert(0 === "0ABC"); //NULLni qaytaradi/Bayonotni tekshirishning mumkin emasligi haqida ogohlantirish beradi
    Tasdiqlovchilarni loyihalashda, kirish yoki chiqish qiymatlari satr bo'lishi mumkin bo'lsa, qat'iy taqqoslash va qo'lda turdagi konvertatsiyadan foydalanganingizga ishonch hosil qiling. Misol uchun, formalar satrni qaytarishi mumkin, shuning uchun agar siz butun son bo'lishi kerak bo'lgan ma'lumotlar bilan ishlayotgan bo'lsangiz, uning turini tekshiring:

    Funktsiya checkIntegerRange($int, $min, $max) ( if (is_string($int) && !ctype_digit($int)) ( return false; // raqamli boʻlmagan belgilarni oʻz ichiga oladi ) if (!is_int((int) $int) )) ( return false; // boshqa butun son bo‘lmagan qiymat yoki kattaroq PHP_MAX_INT ) qaytarish ($int >= $min && $int = $min && $int massivi("verify_peer" => TRUE))); $body = file_get_contents("https://api.example.com/search?q=sphinx", noto'g'ri, $kontekst);
    UPD. PHP 5.6+ da ssl.verify_peer opsiyasi sukut bo'yicha TRUE ga o'rnatiladi.

    cURL kengaytmasi serverni tekshirishni o'z ichiga oladi, shuning uchun siz hech narsani sozlashingiz shart emas. Biroq, dasturchilar ba'zan o'z kutubxonalari va ilovalari xavfsizligiga o'ylamasdan yondashadilar. Ushbu yondashuvni ilovangiz bog'liq bo'lgan har qanday kutubxonalarda topish mumkin.

    Curl_setopt(CURLOPT_SSL_VERIFYPEER, noto'g'ri);
    SSL kontekstida yoki curl_setopt() dan foydalanganda server tekshiruvini o'chirib qo'yish o'rtadagi odam hujumlari uchun zaiflikka olib keladi. Ammo SSL sertifikati noto'g'ri sozlangan yoki muddati o'tgan xost bilan bog'lanishga urinayotgan hujum yoki dasturni ko'rsatadigan zerikarli xatolar muammosini hal qilish uchun u aniq o'chirilgan.

    Veb-ilovalar ko'pincha Twitter mijozi kabi foydalanuvchi faoliyati uchun proksi-server sifatida harakat qilishi mumkin. Biz qila oladigan eng kam narsa - bu foydalanuvchilarni ogohlantiruvchi va ularni shubhali serverlarga ulanishdan himoya qilishga harakat qiladigan brauzerlar tomonidan o'rnatilgan yuqori standartlarga ilovalarimizni saqlash.

    Xulosa Ko'pincha bizda xavfsiz dastur yaratish uchun barcha imkoniyatlar mavjud. Ammo biz o'zimiz rivojlanishni osonlashtirish, disk raskadrovka qilish va zerikarli xatolarning chiqishini o'chirish uchun ba'zi oqilona cheklovlarni chetlab o'tamiz. Yoki yaxshi niyat bilan biz dastur mantig'ini keraksiz tarzda murakkablashtirishga harakat qilyapmiz.

    Lekin xakerlar ham nonini bekorga yemaydilar. Ular bizning nomukammal himoyalarimizni chetlab o'tishning yangi usullarini qidirmoqdalar va biz foydalanadigan modullar va kutubxonalardagi zaifliklarni o'rganmoqdalar. Va agar bizning maqsadimiz xavfsiz veb-ilovani yaratish bo'lsa, unda ular bizning xizmatlar va ma'lumotlarimizni buzishdir. Oxir oqibat, barchamiz mahsulotlarimizni yaxshilash uchun harakat qilamiz.

    Bo'limdagi so'nggi materiallar:

    Hayz ko'rish paytida qabristonga borish: oqibatlari qanday bo'lishi mumkin?
    Hayz ko'rish paytida qabristonga borish: oqibatlari qanday bo'lishi mumkin?

    Odamlar hayz paytida qabristonga boradilarmi? Albatta qiladilar! Oqibatlari haqida kam o'ylaydigan ayollar, boshqa dunyoviy narsalar, nozik ...

    Trikotaj naqshlari Iplar va naqshli ignalarni tanlash
    Trikotaj naqshlari Iplar va naqshli ignalarni tanlash

    Batafsil naqsh va tavsiflarga ega ayollar uchun moda yozgi pullover modelini to'qish. O'zingiz uchun yangi narsalarni tez-tez sotib olishingiz shart emas, agar siz ...

    Moda rangli ko'ylagi: fotosuratlar, g'oyalar, yangi narsalar, tendentsiyalar
    Moda rangli ko'ylagi: fotosuratlar, g'oyalar, yangi narsalar, tendentsiyalar

    Ko'p yillar davomida frantsuz manikyurasi eng ko'p qirrali dizaynlardan biri bo'lib, har qanday ko'rinishga mos keladi, masalan, ofis uslubi,...