տուն » Առողջություն » Զվարճալի փաստեր սեքսի մասին, որոնք ոչ ոք ձեզ նախկինում չի ասել. Զվարճալի փաստեր սեքսի մասին, որոնք ոչ ոք ձեզ նախկինում չի ասել: Ամբողջական ավարտը պարզ է 4

Զվարճալի փաստեր սեքսի մասին, որոնք ոչ ոք ձեզ նախկինում չի ասել. Զվարճալի փաստեր սեքսի մասին, որոնք ոչ ոք ձեզ նախկինում չի ասել: Ամբողջական ավարտը պարզ է 4

Դուք պետք է սահմանեք լավագույն ժամանակհղիանալ, կանխել անցանկալի հղիությունը, թե՞ պարզել, թե երբ է լավագույնը ձեր զուգընկերոջ հետ սեքսը: Նախկինում դրա համար կանայք պետք է խորհրդակցեին իրենց բժշկի հետ, իսկ այժմ նրանք ունեն նոր լավագույն ընկեր՝ սմարթֆոն։

IN վերջին տարիներըԿան բազմաթիվ հավելվածներ կանանց համար, որոնք հեշտացնում են բեղմնավոր օրերի և օվուլյացիայի հետևելը, ինչպես նաև անձնական նշումներ կատարելը: Բացի այդ, նրանք ունեն բազմաթիվ այլ գործառույթներ: Այդպիսի հավելվածներից է Glow-ն, որն արդեն օգտագործում է 47 միլիոն կին։ Glow-ը թույլ է տալիս հետևել այնպիսի բաների, ինչպիսիք են կանանց տրամադրությունը և սեքսի որակն ու հաճախականությունը: Այս հավելվածի շնորհիվ հնարավոր դարձավ ստանալ դրանք Հետաքրքիր փաստերամբողջ աշխարհի կանանց ինտիմ կյանքի մասին։

Կանանց համար լավագույն երկրները

1. Ձեզ մոտ մտերմության պակաս կա՞: Գնացեք Կանադա: Պարզվում է, որ կանադացիները 45%-ով ավելի հաճախ են սեքսով զբաղվում, քան հավելվածների միջին օգտագործողները։

2. Բայց զգուշացեք՝ Կանադան հիանալի վայր է հղիանալու համար: Կանադացի կանայք կարող են հղիանալ 21%-ով ավելի հեշտ, քան մյուս կանայք։

3. Ավստրալացի կանայք նույնպես հաճախ են սեքսով զբաղվում՝ 37%-ով ավելի, քան հավելվածների միջին օգտագործողները։

4. Ավելորդ է ասել, որ Ավստրալիայում կանայք նույնպես հղիանալու լավ հնարավորություններ ունեն: Նրանք 14%-ով ավելի բարձր են, քան մյուս օգտատերերը:

5. ԱՄՆ - լավ տեղերջանիկ դառնալ։ Ամերիկացի կանայք 16%-ով ավելի հաճախ են սեքսով զբաղվում, քան մյուս կանայք։

6. Երջանիկ լինելու ամենավատ վայրը. Լատինական Ամերիկա. Այստեղ կանայք սեքսով են զբաղվում 4%-ով ավելի քիչ, քան հավելվածների միջին օգտագործողները։

սեռական ախորժակները

1. Կնոջ սեռական ախորժակը համապատասխանում է նրան: ամսական ցիկլը. Ցիկլի առաջին օրը համարվում է դաշտանի առաջին օրը, որը տևում է մոտավորապես հինգ օր։ Այսպիսով, կանայք ամենից քիչ հետաքրքրված են սեքսի նկատմամբ ամսական մեկից հինգ օր:

2. Շատ կանայք նշում են այս ժամանակահատվածում էներգիայի մակարդակի կամ տրամադրության փոփոխության մասին, և դա սովորաբար կապված է սեռական ցանկությունների նվազման հետ: Բացի այդ, կանայք ավելի քիչ են հետաքրքրվում սեքսով դաշտանից հետո մի ամբողջ շաբաթ:

3. Կանանց մեծամասնությունը նորից սկսում է սեքսով զբաղվել ցիկլի 12-րդ օրը։

4. Շատ կանայք կանոնավոր սեռական հարաբերություններ են ունենում ցիկլի 12-ից 14-րդ օրը։ Glow հավելվածն այս օրերն անվանում է «սեքսուալության գագաթնակետ»:

5. Իրականում, կանայք իրենց ամենասեքսուալ զգացողությունն են զգում ցիկլի 13-րդ և 14-րդ օրը: Բայց ահա թե ինչն է հետաքրքիր. պարտադիր չէ, որ նրանք այս պահին ամենալավ և գոհացուցիչ սեքսով զբաղվեն:

6. Ամենից շատ կանայք սեքսից հաճույք են ստանում ցիկլի վերջին՝ 30-րդ օրը։ Այս օրը Glow-ում կոչվում է «գագաթնակետային օրգազմ»:

Կանայք գո՞հ են։

1. Կանայք ամենաերջանիկ են զգում իրենց ցիկլի 15-րդ և 16-րդ օրերին, ինչպես նաև այն ժամանակ, երբ նախորդ օրերին շատ են սեքսով զբաղվել:

2. Glow-ի օգտատերերը երկու տարվա ընթացքում գրանցել են 7,6 միլիոն սեռական շփում։

3. Սա նշանակում է, որ ամեն րոպե առնվազն յոթ կին, ովքեր օգտվում են Glow հավելվածից, սեքսով են զբաղվում։

4. Ի դեպ, օգտատերերը նույնպես 2 միլիոն անգամ հայտնել են սիրահարված լինելու մասին։ Հավելվածը նաև հետևում է 88000 զույգերի սեռական ցիկլերին և պտղաբերությանը:

5. Ցավոք, չնայած առկա սեռական շփումներին, ոչ բոլոր կանայք են գոհ դրանցից։ Կանանց գրեթե մեկ երրորդը պատրաստ է հրաժարվել սեքսից, այլ ոչ թե սմարթֆոնից։

6. Բայց դա դեռ նշանակում է, որ երկու երրորդը նախընտրում է հրաժարվել հեռախոսներից, քան սեքսից:

Բարեւ. Ես Սաշա Բարաննիկն եմ։ Mail.Ru Group-ում ղեկավարում եմ վեբ ծրագրավորման բաժինը, որը բաղկացած է 15 աշխատակիցներից։ Մենք սովորել ենք, թե ինչպես ստեղծել կայքեր տասնյակ միլիոնավոր օգտատերերի համար և հեշտությամբ կարող ենք հաղթահարել մի քանի միլիոն ամենօրյա լսարանը: Ես ինքս զբաղվում եմ վեբ մշակմամբ մոտ 20 տարի, և աշխատանքի վերջին 15 տարիների ընթացքում ծրագրավորումը հիմնականում PHP-ով է եղել։ Թեև այս ընթացքում լեզվի առանձնահատկությունները և զարգացման մոտեցումը շատ են փոխվել, հիմնական խոցելիության ըմբռնումը և դրանցից պաշտպանվելու ունակությունը մնում են առանցքային հմտություններ ցանկացած մշակողի համար:

Ինտերնետում անվտանգության վերաբերյալ բազմաթիվ հոդվածներ և ուղեցույցներ կան: Այս գիրքն ինձ թվում էր բավականին մանրամասն, բայց հակիրճ և հասկանալի: Հուսով եմ, որ դա կօգնի ձեզ նոր բան սովորել և ձեր կայքերն ավելի անվտանգ և հուսալի դարձնել:

P.S. Գիրքը երկար է, ուստի թարգմանությունը կներկայացվի մի քանի հոդվածներով: Այսպիսով, եկեք սկսենք ...

Մեկ այլ գիրք PHP անվտանգության մասին:

PHP անվտանգության գիրք սկսելու բազմաթիվ եղանակներ կան: Ցավոք սրտի, ես դրանցից ոչ մեկը չեմ կարդացել, ուստի պետք է զբաղվեմ դրա հետ գրելու ընթացքում: Թերևս կսկսեմ ամենահիմնականից և հույս ունեմ, որ ամեն ինչ կստացվի։

Եթե ​​հաշվի առնենք X ընկերության կողմից առցանց գործարկված վերացական վեբ հավելվածը, կարող ենք ենթադրել, որ այն պարունակում է մի շարք բաղադրիչներ, որոնք կոտրվելու դեպքում կարող են զգալի վնաս հասցնել: Ինչ, օրինակ.

  1. Վնասը օգտվողներին.էլեկտրոնային փոստի, գաղտնաբառերի, անձնական տվյալների, մանրամասների հասանելիություն բանկային քարտեր, բիզնես գաղտնիքներ, կոնտակտների ցուցակներ, գործարքների պատմություններ և խորապես պահպանված գաղտնիքներ (ինչպես, օրինակ, ինչ-որ մեկն իր շանն անվանել է Փայլեր): Այս տվյալների արտահոսքը վնասում է օգտատերերին (անհատներին և ընկերություններին): Վեբ հավելվածները, որոնք չարաշահում են նման տվյալները և կայքերը, որոնք օգտվում են օգտատերերի վստահությունից, նույնպես կարող են վնաս պատճառել:
  2. Ինքն X ընկերության վնասը.Օգտատիրոջ վնասը հանգեցնում է հեղինակության վնասի, փոխհատուցման, կարևոր բիզնես տեղեկատվության կորստի, լրացուցիչ ծախսերի, ինչպիսիք են ենթակառուցվածքները, անվտանգության բարելավումները, վերականգնումը, իրավական ծախսերը, բարձրագույն ղեկավարների աշխատանքից ազատվելու մեծ օգուտները և այլն:
Ես կկենտրոնանամ այս երկու կատեգորիաների վրա, քանի որ դրանք ներառում են այն տհաճությունների մեծ մասը, որոնք ենթադրաբար պետք է կանխի վեբ հավելվածների անվտանգությունը: Բոլոր ընկերությունները, որոնք բախվել են անվտանգության լուրջ խախտումների, շտապում են մամուլի հաղորդագրություններում և վեբկայքերում գրել, թե ինչպես են ակնածանքով վերաբերվում դրան: Այսպիսով, ես ձեզ խորհուրդ եմ տալիս նախապես զգալ այս խնդրի կարևորությունը, նախքան գործնականում հանդիպելը:

Ցավոք, անվտանգության խնդիրները հաճախ լուծվում են փաստից հետո: Ենթադրվում է, որ ամենակարևորը օգտատերերի կարիքները բավարարող աշխատանքային հավելված ստեղծելն է՝ ընդունելի բյուջեով և ժամանակային շրջանակով: Դա հասկանալի առաջնահերթությունների շարք է, բայց դուք չեք կարող հավերժ անտեսել անվտանգությունը: Շատ ավելի լավ է դա միշտ նկատի ունենալ՝ մշակման ընթացքում կոնկրետ որոշումներ կիրառելով, երբ փոփոխության արժեքը ցածր է:

Երկրորդային անվտանգությունը հիմնականում ծրագրավորման մշակույթի արդյունք է: Որոշ ծրագրավորողներ սառը քրտինքով են լցվում՝ մտածելով խոցելիության մասին, մինչդեռ մյուսները կարող են վիճարկել խոցելիության գոյությունը, մինչև որ կարողանան ապացուցել, որ դա ամենևին էլ խոցելի չէ: Այս երկու ծայրահեղությունների արանքում կան բազմաթիվ ծրագրավորողներ, ովքեր պարզապես կթոթվեն իրենց ուսերը, քանի որ դեռ չեն սխալվել։ Նրանց համար դժվար է հասկանալ այս տարօրինակ աշխարհը։

Քանի որ վեբ հավելվածների անվտանգության համակարգը պետք է պաշտպանի հավելվածի ծառայություններին վստահող օգտվողներին, անհրաժեշտ է իմանալ հարցերի պատասխանները.

  1. Ո՞վ է ուզում հարձակվել մեզ վրա:
  2. Ինչպե՞ս կարող են մեզ վրա հարձակվել։
  3. Ինչպե՞ս կարող ենք կանգնեցնել նրանց:

Ո՞վ է ուզում հարձակվել մեզ վրա:

Առաջին հարցի պատասխանը շատ պարզ է՝ ամեն ինչ և ամեն ինչ։ Այո, ամբողջ տիեզերքը ցանկանում է ձեզ դաս տալ: Երեխա գերկլոկավորված համակարգչով, որն աշխատում է Kali Linux-ով: Նա հավանաբար արդեն հարձակվել է ձեզ վրա: Կասկածելի մարդ, ով սիրում է ձողիկներ դնել անիվների մեջ: Նա, հավանաբար, արդեն վարձել է ինչ-որ մեկին, որպեսզի հարձակվի ձեզ վրա: Վստահելի REST API, որի միջոցով ամենժամյա տվյալներ եք ստանում: Հավանաբար այն կոտրվել է մեկ ամիս առաջ՝ ձեզ վարակված տվյալներ տալու համար: Նույնիսկ ես կարող եմ հարձակվել քեզ վրա: Այնպես որ, կուրորեն մի հավատացեք այս գրքին: Համարեք, որ ես ստում եմ: Եվ գտեք ծրագրավորող, ով կառաջնորդի ինձ մաքուր ջուրև բացահայտիր իմ վատ խորհուրդը: Մյուս կողմից, միգուցե նա քեզ էլ է կոտրելու...

Այս պարանոյայի իմաստն այն է, որ հեշտացվի մտովի դասակարգել այն ամենը, ինչ փոխազդում է ձեր վեբ հավելվածի հետ (Օգտվող, Հաքեր, Տվյալների բազա, Անվստահելի Ներածում, Մենեջեր, REST API) և այնուհետև յուրաքանչյուր կատեգորիա նշանակել վստահության ինդեքս: Ակնհայտ է, որ «Հաքերին» չի կարելի վստահել, իսկ «Տվյալների շտեմարան»-ը: «Անվստահելի մուտքագրումը» ստացել է իր անունը ինչ-որ պատճառով, բայց իսկապե՞ս զտել եք բլոգի գրառումը գործընկերոջ վստահելի Atom հոսքից:

Նրանք, ովքեր լրջորեն են զբաղվում վեբ հավելվածները կոտրելու հարցում, սովորում են օգտվել այս մտածելակերպից՝ ավելի հաճախ հարձակվելով տվյալների ոչ խոցելի աղբյուրների վրա, այլ վստահելի աղբյուրների վրա, որոնք ավելի քիչ հավանական է, որ ունեն լավ պաշտպանության համակարգ: Սա պատահական որոշում չէ. իրական կյանքավելի բարձր վստահության ինդեքս ունեցող առարկաները ավելի քիչ կասկածներ են առաջացնում: Հենց այս տվյալների աղբյուրներին ես առաջին հերթին ուշադրություն եմ դարձնում հավելվածը վերլուծելիս։

Եկեք վերադառնանք տվյալների բազաներին: Ենթադրելով, որ հաքերը կարող է մուտք գործել տվյալների բազա (և մենք՝ պարանոիդները միշտ ենթադրում ենք), ապա դրան երբեք չի կարելի վստահել: Հավելվածների մեծ մասը վստահում է տվյալների բազաներին առանց հարցի: Արտաքինից վեբ հավելվածը կարծես մեկ էակ է, բայց ներսում այն ​​առանձին բաղադրիչներից բաղկացած համակարգ է, որը փոխանակում է տվյալներ: Եթե ​​այս բոլոր բաղադրիչները համարենք վստահելի, ապա եթե դրանցից մեկը կոտրվի, բոլոր մյուսները արագ կվտանգվեն։ Անվտանգության նման աղետալի խնդիրները հնարավոր չէ լուծել «Եթե բազան կոտրել են, ուրեմն մենք դեռ պարտվել ենք» արտահայտությամբ։ Դուք կարող եք այդպես ասել, բայց ամենևին էլ փաստ չէ, որ դուք ստիպված կլինեք դա անել, եթե ի սկզբանե չեք վստահում բազային և գործեք համապատասխանաբար:

Ինչպե՞ս կարող են մեզ վրա հարձակվել։

Երկրորդ հարցի պատասխանը բավականին ընդարձակ ցանկ է։ Դուք կարող եք հարձակման ենթարկվել ցանկացած վայրից, որտեղ վեբ հավելվածի յուրաքանչյուր բաղադրիչ կամ շերտ ստանում է իր տվյալները: Ըստ էության, վեբ հավելվածները պարզապես մշակում են տվյալները և տեղափոխում դրանք տեղից տեղ: Օգտատիրոջ հարցումներ, տվյալների բազաներ, API-ներ, բլոգային հոսքեր, ձևեր, թխուկներ, պահոցներ, PHP միջավայրի փոփոխականներ, կազմաձևման ֆայլեր, նորից կազմաձևման ֆայլեր, նույնիսկ ձեր կատարած PHP ֆայլերը, որոնք բոլորը կարող են վարակվել անվտանգության խախտման տվյալներով և վնասով: Իրականում, եթե վնասակար տվյալները բացահայտորեն առկա չեն հարցման համար օգտագործվող PHP կոդում, ապա այն, ամենայն հավանականությամբ, կգա որպես «վճարման բեռ»: Սա ենթադրում է, որ ա) դուք գրել եք PHP սկզբնական կոդը, բ) այն պատշաճ կերպով վերանայվել է, և գ) դուք չեք վճարվել հանցավոր կազմակերպությունների կողմից:

Եթե ​​դուք օգտագործում եք տվյալների աղբյուրները՝ առանց ստուգելու, որ տվյալները լիովին անվտանգ են և պիտանի են օգտագործման համար, ապա դուք պոտենցիալ բաց եք հարձակման համար: Դուք նաև պետք է ստուգեք, որ ստացված տվյալները համընկնում են ձեր ուղարկած տվյալների հետ: Եթե ​​տվյալները լիովին անվտանգ չեն հանվելու համար, ապա դուք նույնպես լուրջ խնդիրներ կունենաք։ Այս ամենը կարող է արտահայտվել որպես կանոն PHP-ի համար «Validate input; փախչել արդյունքից»:

Սրանք տվյալների ակնհայտ աղբյուրներն են, որոնք մենք պետք է ինչ-որ կերպ վերահսկենք: Աղբյուրները կարող են ներառել նաև հաճախորդի կողմից պահոցներ: Օրինակ, հավելվածների մեծ մասը ճանաչում է օգտատերերին՝ նրանց հատկացնելով եզակի նստաշրջանի ID-ներ, որոնք կարող են պահվել թխուկներում: Եթե ​​հարձակվողը ստանում է արժեքը թխուկից, ապա նա կարող է անձնավորել մեկ այլ օգտվողի: Թեև մենք կարող ենք նվազեցնել որոշ ռիսկեր, որոնք կապված են օգտատիրոջ տվյալների խափանման կամ կեղծման հետ, մենք չենք կարող երաշխավորել օգտատիրոջ համակարգչի ֆիզիկական անվտանգությունը: Մենք նույնիսկ չենք կարող երաշխավորել, որ օգտվողները կգտնեն «123456» ամենահիմար գաղտնաբառը «password»-ից հետո։ Համեմունք ավելացնելն այն է, որ այսօր թխուկները օգտատիրոջ կողմից պահվող միակ տեսակը չեն:

Մեկ այլ ռիսկ, որը հաճախ անտեսվում է, վերաբերում է ձեր ամբողջականությանը աղբյուր կոդը. PHP-ում գնալով ավելի տարածված է դառնում հավելվածների վրա հիմնված մշակումը մեծ թվովՇրջանակների համար թույլ միացված գրադարաններ, մոդուլներ և փաթեթներ: Դրանցից շատերը ներբեռնվում են հանրային պահեստներից, ինչպիսին է Github-ը, տեղադրվում են փաթեթների տեղադրողների միջոցով, ինչպիսիք են Composer-ը և նրա վեբ ուղեկիցը՝ Packagist.org-ը: Հետևաբար, սկզբնական կոդի անվտանգությունը լիովին կախված է բոլոր այս երրորդ կողմի ծառայությունների և բաղադրիչների անվտանգությունից: Եթե ​​Github-ը վտանգված է, ապա, ամենայն հավանականությամբ, այն կօգտագործվի վնասակար հավելումով ծածկագիրը տարածելու համար: Եթե ​​Packagist.org - ապա հարձակվողը կկարողանա փաթեթի հարցումները վերահղել սեփական, վնասակար փաթեթներին:

Այսօր Composer-ը և Packagist.org-ը տուժում են կախվածության հայտնաբերման և փաթեթների բաշխման հայտնի խոցելիությունից, այնպես որ միշտ կրկնակի ստուգեք ամեն ինչ ձեր արտադրական միջավայրում և ստուգեք բոլոր փաթեթների աղբյուրը Packagist.org-ի միջոցով:

Ինչպե՞ս կարող ենք կանգնեցնել նրանց:

Վեբ հավելվածի անվտանգության խախտումը կարող է լինել և՛ ծիծաղելիորեն հեշտ, և՛ ժամանակատար: Արդար է ենթադրել, որ յուրաքանչյուր վեբ հավելված ինչ-որ տեղ խոցելիություն ունի: Պատճառը պարզ է՝ բոլոր դիմումները կատարվում են մարդկանց կողմից, իսկ մարդիկ սխալվում են։ Այսպիսով, կատարյալ անվտանգությունը խողովակի երազանք է: Բոլոր հավելվածները կարող են պարունակել խոցելիություններ, իսկ ծրագրավորողների խնդիրն է նվազագույնի հասցնել ռիսկերը։

Դուք պետք է ուշադիր մտածեք վեբ հավելվածի վրա հարձակման հետևանքով վնաս պատճառելու հավանականությունը նվազեցնելու համար: Պատմության ընթացքում կխոսեմ հարձակման հնարավոր մեթոդների մասին։ Դրանցից մի քանիսն ակնհայտ են, մյուսները՝ ոչ։ Բայց ամեն դեպքում, խնդիրը լուծելու համար անհրաժեշտ է հաշվի առնել անվտանգության որոշ հիմնական սկզբունքներ։

Անվտանգության հիմնական սկզբունքները

Պաշտպանության միջոցներ մշակելիս դրանց արդյունավետությունը կարելի է գնահատել՝ օգտագործելով հետևյալ նկատառումները. Ոմանք, որոնք ես արդեն նշեցի վերևում:
  1. Մի վստահիր ոչ մեկին և ոչ մի բանի:
  2. Միշտ ենթադրեք ամենավատ սցենարը:
  3. Կիրառել բազմամակարդակ պաշտպանություն (Defence-in-Depth):
  4. Հավատարիմ մնալ «որքան պարզ, այնքան լավ» սկզբունքին (Keep It Simple Stupid, KISS):
  5. Հավատարիմ մնալ «նվազագույն արտոնության» սկզբունքին։
  6. Հարձակվողներից անորոշության հոտ է գալիս.
  7. Կարդացեք փաստաթղթերը (RTFM), բայց երբեք մի վստահեք դրան:
  8. Եթե ​​այն չի փորձարկվել, ուրեմն չի աշխատում։
  9. Միշտ քո մեղքն է:
Համառոտ անդրադառնանք բոլոր կետերին։

1. Մի վստահիր ոչ մեկին կամ ոչ մի բանի

Ինչպես քննարկվեց վերևում, ճիշտ վերաբերմունքն այն է, որ ենթադրենք, որ այն ամենը և բոլորը, որոնց հետ շփվում է ձեր վեբ հավելվածը, ցանկանում են կոտրել այն: Սա ներառում է հավելվածի այլ բաղադրիչներ կամ շերտեր, որոնք անհրաժեշտ են հարցումները մշակելու համար: Բոլորը և բոլորը: Առանց բացառությունների:

2. Միշտ ենթադրեք ամենավատ սցենարը

Անվտանգության շատ համակարգեր ունեն ընդհանուր հատկություն. անկախ նրանից, թե որքան լավ են դրանք պատրաստված, յուրաքանչյուրը կարող է խախտվել: Եթե ​​սա հաշվի առնեք, ապա արագ կհասկանաք երկրորդ կետի առավելությունը։ Վատագույն սցենարի վրա կենտրոնանալը կօգնի գնահատել հարձակման ծավալն ու ծանրությունը: Եվ եթե դա իսկապես տեղի ունենա, ապա դուք կարող եք նվազեցնել տհաճ հետևանքները լրացուցիչ պաշտպանության և ճարտարապետության փոփոխությունների միջոցով: Միգուցե ավանդական լուծումը, որը դուք օգտագործում եք, արդեն փոխարինվել է ավելի լավ բանով:

3. Կիրառել Depth-ի պաշտպանությունը

Շերտավոր պաշտպանությունը փոխառված է ռազմական գիտությունից, քանի որ մարդիկ վաղուց են հասկացել, որ բազմաթիվ պատերը, ավազի պարկերը, սարքավորումները, զրահաբաճկոնները և տափակները, որոնք ծածկում են կենսական օրգանները թշնամու փամփուշտներից և շեղբերից, անվտանգության ճիշտ մոտեցում են: Դուք երբեք չգիտեք, թե վերը նշվածներից որը չի պաշտպանի, և դուք պետք է համոզվեք, որ պաշտպանության մի քանի մակարդակները թույլ են տալիս ապավինել մեկից ավելի դաշտային ամրացման կամ մարտական ​​կազմավորման: Իհարկե, խոսքը միայն միայնակ անհաջողությունների մասին չէ: Պատկերացրեք, որ հարձակվողը բարձրանում է միջնադարյան հսկա պատի վրա՝ օգտագործելով սանդուղքը և հայտնաբերում, որ դրա հետևում կա ևս մեկ պատ, որտեղից իրենց նետերը հեղեղում են: Հաքերները նույն կերպ կզգան։

4. Կառչեք «որքան պարզ, այնքան լավ» սկզբունքին (Keep It Simple Stupid, KISS)

Լավագույն պաշտպանությունը միշտ պարզ է: Դրանք հեշտ է մշակել, իրականացնել, հասկանալ, օգտագործել և փորձարկել: Պարզությունը նվազեցնում է սխալները, խրախուսում ճիշտ աշխատանքկիրառում և հեշտացնում է իրագործումը նույնիսկ ամենաբարդ և թշնամական միջավայրում:

5. Հավատարիմ մնալ «նվազագույն արտոնության» սկզբունքին.

Տեղեկատվության փոխանակման յուրաքանչյուր մասնակից (օգտագործող, գործընթաց, ծրագիր) պետք է ունենա միայն այն մուտքի իրավունքները, որոնք իրեն անհրաժեշտ են իր գործառույթները կատարելու համար:

6. Հարձակվողները երկիմաստության հոտ են գալիս

«Անվտանգությունը անհայտության միջով» հիմնված է այն ենթադրության վրա, որ եթե դուք օգտագործում եք պաշտպանությունը A և ոչ մեկին չեք ասում, թե դա ինչ է, ինչպես է այն աշխատում կամ ընդհանրապես գոյություն ունի, ապա այն կախարդական կերպով օգնում է ձեզ, քանի որ հարձակվողները վնաս են կրում: Իրականում սա միայն փոքր առավելություն է տալիս։ Հաճախ, հմուտ հարձակվողը կարող է պարզել, թե ինչ եք արել, այնպես որ դուք պետք է օգտագործեք նաև հստակ պաշտպանություն: Նրանք, ովքեր անտեղի համոզված են, որ անորոշ պաշտպանությունը վերացնում է իրական պաշտպանության անհրաժեշտությունը, պետք է պատժվեն հատուկ պատրանքներից ազատվելու համար։

7. Կարդացեք փաստաթղթերը (RTFM), բայց երբեք մի վստահեք դրան

PHP ձեռնարկը Աստվածաշունչն է: Իհարկե, այն չի գրվել Թռչող Սպագետի Հրեշի կողմից, ուստի տեխնիկապես այն կարող է պարունակել մի շարք կիսաճշմարտություններ, բացթողումներ, սխալ մեկնաբանություններ կամ դեռ չնկատված կամ ուղղված սխալներ: Նույնը վերաբերում է Stack Overflow-ին:

Անվտանգության իմաստության մասնագիտացված աղբյուրները (կենտրոնացած PHP-ի վրա և դրանից դուրս) ընդհանուր առմամբ ավելի մանրամասն գիտելիքներ են տալիս: PHP անվտանգության աստվածաշնչին ամենամոտ բանը OWASP-ն է՝ հոդվածներով, ձեռնարկներով և խորհուրդներով: Եթե ​​ինչ-որ բան հուսահատվում է OWASP-ում, երբեք մի արեք դա:

8. Եթե այն չի փորձարկվել, այն չի աշխատում

Պաշտպանություններ իրականացնելիս դուք պետք է գրեք բոլոր անհրաժեշտ թեստերը, որոնք աշխատում են ստուգելու համար: Այդ թվում՝ ձևացնել, թե դուք հաքեր եք, ում համար բանտը լացում է։ Դա կարող է հեռու թվալ, բայց վեբ հավելվածների կոտրման տեխնիկայի հետ ծանոթ լինելը լավ պրակտիկա է. դուք կիմանաք հնարավոր խոցելիության մասին, և ձեր պարանոյան կաճի: Միևնույն ժամանակ, չարժե ղեկավարությանը պատմել վեբ հավելվածը կոտրելու համար նոր ձեռք բերված երախտագիտության մասին։ Համոզվեք, որ օգտագործեք ավտոմատացված գործիքներ՝ խոցելիությունները հայտնաբերելու համար: Դրանք օգտակար են, բայց, իհարկե, չեն փոխարինում որակյալ կոդերի ակնարկներին և նույնիսկ հավելվածի ձեռքով փորձարկմանը: Որքան շատ ռեսուրսներ ծախսեք թեստավորման վրա, այնքան ավելի հուսալի կլինի ձեր դիմումը:

9. Միշտ դու ես մեղավոր!

Ծրագրավորողները սովոր են հավատալ, որ անվտանգության խոցելիությունները կհայտնաբերվեն որպես ցրված հարձակումներ, և դրանց հետևանքները աննշան են:

Օրինակ, տվյալների խախտումները (հաքերի լավ փաստաթղթավորված և տարածված ձև) հաճախ դիտվում են որպես անվտանգության փոքր խնդիրներ, քանի որ դրանք ուղղակիորեն չեն ազդում օգտատերերի վրա: Այնուամենայնիվ, ծրագրային ապահովման տարբերակների, մշակման լեզուների, ելակետային կոդի տեղակայման, կիրառական տրամաբանության և բիզնես տրամաբանության, տվյալների բազայի կառուցվածքի և վեբ հավելվածի միջավայրի և ներքին գործառնությունների այլ ասպեկտների մասին տեղեկատվության արտահոսքը հաճախ էական է հաջող հարձակման համար:

Միևնույն ժամանակ, անվտանգության համակարգերի վրա հարձակումները հաճախ հարձակումների համակցություն են: Առանձին-առանձին դրանք աննշան են, բայց միևնույն ժամանակ երբեմն ճանապարհ են բացում այլ հարձակումների համար։ Օրինակ, SQL ներարկումը երբեմն պահանջում է հատուկ օգտանուն, որը կարելի է ձեռք բերել՝ օգտագործելով ժամանակային հարձակումը վարչական ինտերֆեյսի դեմ՝ շատ ավելի թանկ և նկատելի կոպիտ ուժի փոխարեն: Իր հերթին, SQL ներարկումը թույլ է տալիս իրականացնել XSS հարձակում կոնկրետ ադմինիստրատիվ հաշվի վրա՝ առանց ուշադրություն հրավիրելու մատյանում մեծ թվով կասկածելի գրառումների վրա:

Խոցելի կողմերին առանձին դիտարկելու վտանգը կայանում է նրանում, որ նրանք թերագնահատեն սպառնալիքը և, հետևաբար, չափազանց անզգույշ վերաբերվենք դրանց: Ծրագրավորողները հաճախ չափազանց ծույլ են շտկելու խոցելիությունը, քանի որ նրանք համարում են այն չափազանց փոքր: Կիրառվում է նաև անվտանգ մշակման պատասխանատվությունը վերջնական ծրագրավորողների կամ օգտատերերի վրա դնելը, և հաճախ առանց կոնկրետ խնդիրների փաստաթղթավորման. նույնիսկ այդ խոցելիության առկայությունը չի ճանաչվում:

Թվացյալ աննշանությունը կարևոր չէ։ Անպատասխանատու է ստիպել ծրագրավորողներին կամ օգտատերերին շտկել ձեր խոցելիությունը, հատկապես, եթե դուք նույնիսկ չեք տեղեկացրել դրանց մասին։

Ներածման վավերացում

Ներածման վավերացումը ձեր վեբ հավելվածի արտաքին պաշտպանական շրջագիծն է: Այն պաշտպանում է հիմնական բիզնեսի տրամաբանությունը, տվյալների մշակումը և արտադրանքի ստեղծումը: Բառացի իմաստով այս պարագծից դուրս ամեն ինչ, բացառությամբ ընթացիկ խնդրանքով կատարված կոդի, համարվում է թշնամու տարածք։ Պարագծի բոլոր հնարավոր մուտքերն ու ելքերը օր ու գիշեր հսկում են ռազմատենչ պահակները, որոնք նախ կրակում են, իսկ հետո հարցեր են տալիս: Պարագծին միացված են առանձին հսկվող (և շատ կասկածելի տեսք ունեցող) «դաշնակիցները», այդ թվում՝ «Model», «Database» և «File System»: Ոչ ոք չի ուզում կրակել նրանց վրա, բայց եթե նրանք փորձեն իրենց բախտը… bang. Յուրաքանչյուր դաշնակից ունի իր ուրվագիծը, որը կարող է վստահել կամ չվստահել մերին:

Հիշո՞ւմ եք իմ խոսքերն այն մասին, թե ում կարող եք վստահել: Ոչ ոք և ոչինչ. PHP աշխարհում խորհուրդ է տրվում ամենուր չվստահել «օգտատիրոջ մուտքին»: Սա կատեգորիաներից մեկն է՝ ըստ վստահության աստիճանի։ Ենթադրելով, որ օգտատերերին չի կարելի վստահել, մենք կարծում ենք, որ մնացած ամեն ինչին կարելի է վստահել։ Սա ճիշտ չէ. Օգտատերերը մուտքագրման ամենաակնհայտ անվստահելի աղբյուրն են, քանի որ մենք նրանց չգիտենք և չենք կարող վերահսկել:

Ստուգման չափանիշներ

Ներածման վավերացումը վեբ հավելվածի և՛ ամենաակնհայտ, և՛ ամենաանապահով պաշտպանությունն է: Խոցելիության ճնշող մեծամասնությունը պայմանավորված է ստուգման համակարգի խափանումներով, ուստի շատ կարևոր է, որ պաշտպանության այս հատվածը ճիշտ աշխատի: Այն կարող է ձախողվել, բայց այնուամենայնիվ հավատարիմ մնալ հետևյալ նկատառումներին. Պատվերով վավերացնող սարքերի ներդրման և երրորդ կողմի վավերացման գրադարանների օգտագործման ժամանակ միշտ հիշեք, որ երրորդ կողմի լուծումները հակված են կատարել ընդհանուր առաջադրանքներ և բաց թողնել վավերացման հիմնական ռեժիմները, որոնք կարող են անհրաժեշտ լինել ձեր հավելվածին: Անվտանգության կարիքների համար նախատեսված ցանկացած գրադարան օգտագործելիս համոզվեք, որ ինքներդ ստուգեք դրանք խոցելիության և ճիշտ աշխատանքի համար: Ես նաև խորհուրդ եմ տալիս չմոռանալ, որ PHP-ն կարող է տարօրինակ և, հնարավոր է, վտանգավոր վարքագիծ դրսևորել: Նայեք այս օրինակին՝ վերցված ֆիլտրի գործառույթներից.

Filter_var ("php://example.org", FILTER_VALIDATE_URL);
Զտիչը աշխատում է առանց խնդիրների: Խնդիրն այն է, որ ընդունված php:// URL-ը կարող է փոխանցվել PHP ֆունկցիայի, որն ակնկալում է ստանալ հեռավոր HTTP հասցե, այլ ոչ թե վերադարձնել տվյալները կատարող PHP սկրիպտից (PHP մշակողի միջոցով): Խոցելիությունն առաջանում է, քանի որ զտիչի տարբերակը չունի թույլատրված URI-ները սահմանափակող մեթոդ: Թեև հավելվածն ակնկալում է http, https կամ mailto հղում, այլ ոչ թե PHP-ին հատուկ URI: Պետք է անպայման խուսափել ստուգման նման չափից դուրս ընդհանուր մոտեցումից։

Ուշադիր եղեք համատեքստում

Մուտքի վավերացումը պետք է կանխի անապահով տվյալների մուտքագրումը վեբ հավելված: Հիմնական խոչընդոտ. տվյալների անվտանգության ստուգումները սովորաբար կատարվում են միայն առաջին նպատակային օգտագործման համար:

Ասենք, ես ստացել եմ անուն պարունակող տվյալներ։ Ես հեշտությամբ կարող եմ ստուգել այն ապոստրոֆների, գծիկների, փակագծերի, բացատների և յունիկոդի այբբենական թվային նիշերի մի ամբողջ շարքի համար: Անունը վավեր տվյալ է, որը կարող է օգտագործվել ցուցադրման համար (առաջին նպատակային օգտագործումը): Բայց եթե այն օգտագործում եք այլ տեղ (օրինակ՝ տվյալների բազայի հարցում), ապա այն կլինի նոր համատեքստում։ Եվ որոշ նիշեր, որոնք թույլատրվում են անվան մեջ, վտանգավոր կլինեն այս համատեքստում. եթե անունը փոխարկվի տողի՝ SQL ներարկում կատարելու համար:

Ստացվում է, որ մուտքագրման վավերացումը էապես անվստահելի է: Այն առավել արդյունավետ է միանշանակ անվավեր արժեքները կրճատելու համար: Ասեք, երբ ինչ-որ բան պետք է լինի ամբողջ թիվ, կամ այբբենական թվային տող կամ HTTP URL: Նման ձևաչափերն ու արժեքներն ունեն իրենց սահմանափակումները և, եթե ճիշտ ստուգվեն, ավելի քիչ հավանական է, որ վտանգ ներկայացնեն: Այլ արժեքներ (անսահմանափակ տեքստ, GET/POST զանգվածներ և HTML) ավելի դժվար է ստուգել և ավելի հավանական է, որ վնասակար տվյալներ պարունակեն:

Քանի որ ժամանակի մեծ մասը մեր հավելվածը տվյալներ է փոխանցելու համատեքստերի միջև, մենք չենք կարող պարզապես ստուգել բոլոր մուտքերը և համարել կատարված աշխատանքը: Ստուգումը միայն պաշտպանության առաջին օղակն է, բայց ոչ միակը:

Մուտքային տվյալների վավերացման հետ մեկտեղ շատ հաճախ օգտագործվում է այնպիսի պաշտպանության մեթոդ, ինչպիսին է փախուստը: Դրանով յուրաքանչյուր նոր համատեքստ մուտքագրելիս տվյալները ստուգվում են անվտանգության համար։ Սովորաբար այս մեթոդը օգտագործվում է միջկայքի սկրիպտավորումից (XSS) պաշտպանվելու համար, սակայն այն նաև պահանջված է բազմաթիվ այլ առաջադրանքներում՝ որպես զտիչ գործիք:

Փախուստը պաշտպանում է ելքային տվյալների ստացողի կողմից սխալ մեկնաբանությունից: Բայց սա բավարար չէ. քանի որ տվյալները մտնում են նոր համատեքստ, ստուգում է անհրաժեշտ հատուկ կոնկրետ համատեքստի համար:

Թեև սա կարող է ընկալվել որպես սկզբնական մուտքային վավերացման կրկնօրինակում, իրականում վավերացման լրացուցիչ քայլերն ավելի լավ են համապատասխանում ներկա համատեքստին, երբ տվյալների պահանջները շատ տարբեր են: Օրինակ, ձևից ստացվող տվյալները կարող են տոկոս պարունակել: Առաջին անգամ մենք այն օգտագործում ենք, մենք ստուգում ենք, որ արժեքը իսկապես ամբողջ թիվ է: Բայց երբ այն փոխանցենք մեր հավելվածի մոդելին, կարող են առաջանալ նոր պահանջներ՝ արժեքը պետք է տեղավորվի որոշակի տիրույթում, որը պարտադիր է հավելվածի բիզնես տրամաբանության գործելու համար։ Իսկ եթե այդ լրացուցիչ ստուգումը նոր համատեքստում չկատարվի, ապա կարող են լուրջ խնդիրներ առաջանալ։

Օգտագործեք միայն սպիտակ ցուցակները, ոչ թե սև ցուցակները

«Սև ցուցակը» և «սպիտակ ցուցակը» մուտքագրման վավերացման երկու հիմնական մոտեցումներ են: Սևը նշանակում է անվավեր տվյալների ստուգում, իսկ սպիտակը նշանակում է վավեր տվյալների ստուգում: Սպիտակ ցուցակը նախընտրելի է, քանի որ վավերացման ընթացքում փոխանցվում են միայն այն տվյալները, որոնք մենք ակնկալում ենք: Իր հերթին, սև ցուցակները հաշվի են առնում միայն ծրագրավորողների ենթադրությունները բոլոր հնարավոր սխալ տվյալների վերաբերյալ, ուստի այստեղ շատ ավելի հեշտ է շփոթվել, ինչ-որ բան բաց թողնել կամ սխալվել:

Լավ օրինակ է ցանկացած վավերացման ընթացակարգ, որը նախատեսված է HTML-ն անվտանգ դարձնելու համար կաղապարում չփախված ելքի տեսանկյունից: Եթե ​​մենք օգտագործում ենք սև ցուցակ, ապա մենք պետք է ստուգենք, որ HTML-ը չի պարունակում վտանգավոր տարրեր, ատրիբուտներ, ոճեր և գործարկվող JavaScript: Դա շատ աշխատանք է, և սև ցուցակի վրա հիմնված HTML մաքրողները միշտ կարողանում են անտեսել կոդի վտանգավոր համակցությունները: Իսկ սպիտակ ցուցակի գործիքները վերացնում են այս երկիմաստությունը՝ թույլ տալով միայն հայտնի թույլատրելի տարրերն ու հատկանիշները: Բոլոր մյուսները պարզապես կբաժանվեն, կմեկուսացվեն կամ հեռացվեն, անկախ նրանից, թե ինչ են նրանք:

Այսպիսով, սպիտակ ցուցակը նախընտրելի է ցանկացած ստուգման ընթացակարգի համար՝ ավելի բարձր անվտանգության և հուսալիության պատճառով:

Երբեք մի փորձեք ուղղել մուտքագրումը

Ներածման վավերացումը հաճախ ուղեկցվում է զտմամբ: Եթե ​​ստուգման ժամանակ մենք պարզապես գնահատում ենք տվյալների ճշգրտությունը (դրական կամ բացասական արդյունքի դեպքում), ապա զտումը փոխում է ստուգվող տվյալները, որպեսզի այն համապատասխանի կոնկրետ կանոններին։

Սա սովորաբար որոշ չափով վնասակար է: Ավանդական զտիչները ներառում են, օրինակ, հեռախոսահամարներից բոլոր նիշերը, բացի թվերից (ներառյալ լրացուցիչ փակագծերը և գծիկները) հեռացնելը կամ անհարկի հորիզոնական կամ ուղղահայաց տարածությունը կտրելը: Նման իրավիճակներում նվազագույն մաքրում է կատարվում ցուցադրման կամ փոխանցման սխալները վերացնելու համար: Այնուամենայնիվ, դուք կարող եք չափից դուրս տարվել վնասակար տվյալների արգելափակման համար զտման միջոցով:

Ներածումը շտկելու փորձի հետևանքներից մեկն այն է, որ հարձակվողը կարող է կանխատեսել ձեր ուղղումների ազդեցությունը: Ենթադրենք, որ կա տողի անվավեր արժեք: Դուք որոնում եք այն, ջնջում և ավարտում եք զտումը։ Ի՞նչ անել, եթե հարձակվողը ստեղծի տողերով առանձնացված արժեք՝ ձեր զտիչը խաբելու համար:

ipt>alert(document.cookie);ipt>
В этом примере простая фильтрация по тэгу ничего не даст: удаление явного тэга

Նախորդ հոդվածը. Հաջորդ հոդվածը.


© 2015 թ .
Կայքի մասին | Կոնտակտներ
| կայքի քարտեզ