સંપૂર્ણ અંત સરળ 4 અક્ષરો છે. સેક્સ વિશેના મજેદાર તથ્યો જે તમને પહેલા કોઈએ કહ્યું ન હતું. માત્ર વ્હાઇટલિસ્ટનો ઉપયોગ કરો, બ્લેકલિસ્ટનો નહીં

શું તમારે ગર્ભ ધારણ કરવાનો શ્રેષ્ઠ સમય નક્કી કરવાની જરૂર છે, અનિચ્છનીય ગર્ભાવસ્થાને રોકવાની અથવા તમારા જીવનસાથી સાથે સેક્સ ક્યારે શ્રેષ્ઠ રહેશે તે શોધવાની જરૂર છે? પહેલાં, મહિલાઓને સલાહ માટે તેમના ડૉક્ટર પાસે જવું પડતું હતું, પરંતુ હવે તેમની પાસે એક નવો શ્રેષ્ઠ મિત્ર છે - સ્માર્ટફોન.

તાજેતરના વર્ષોમાં, સ્ત્રીઓ માટે વિવિધ એપ્લિકેશનો ઉભરી આવી છે જે ફળદ્રુપ દિવસો અને ઓવ્યુલેશનના સમયને ટ્રેક કરવા તેમજ વ્યક્તિગત નોંધો બનાવવાનું સરળ બનાવે છે. આ સિવાય તેમની પાસે બીજી ઘણી વિશેષતાઓ છે. આવી જ એક એપ્લીકેશન ગ્લો છે, જેનો ઉપયોગ 47 મિલિયન મહિલાઓ કરી રહી છે. ગ્લો તમને મહિલાઓના મૂડ અને સેક્સની ગુણવત્તા અને આવર્તન જેવી વસ્તુઓને ટ્રૅક કરવાની મંજૂરી આપે છે. આ એપ્લિકેશનનો આભાર, વિશ્વભરની મહિલાઓના ઘનિષ્ઠ જીવન વિશે આ રસપ્રદ તથ્યો મેળવવાનું શક્ય છે.

મહિલાઓ માટે શ્રેષ્ઠ દેશો

1. શું તમારી પાસે આત્મીયતાનો અભાવ છે? કેનેડા જાઓ. તે તારણ આપે છે કે કેનેડિયન મહિલાઓ સરેરાશ એપ વપરાશકર્તાઓ કરતાં 45% વધુ વખત સેક્સ કરે છે.

2. પરંતુ સાવચેત રહો: ​​કેનેડા ગર્ભવતી થવા માટે શ્રેષ્ઠ સ્થળ છે. કેનેડિયન મહિલાઓ અન્ય કરતા 21% સરળતાથી ગર્ભવતી થઈ શકે છે.

3. ઓસ્ટ્રેલિયન મહિલાઓ પણ વારંવાર સેક્સ કરે છે - સરેરાશ એપ્લિકેશન વપરાશકર્તાઓ કરતાં 37% વધુ.

4. કહેવાની જરૂર નથી કે ઓસ્ટ્રેલિયામાં મહિલાઓને પણ ગર્ભવતી થવાની સારી તક છે? તેઓ અન્ય વપરાશકર્તાઓ કરતાં 14% વધારે છે.

5. ખુશ રહેવા માટે યુએસએ એક સારી જગ્યા છે. અમેરિકન મહિલાઓમાં અન્ય મહિલાઓ કરતાં સેક્સ કરવાની શક્યતા 16% વધુ હોય છે.

6. ખુશ રહેવાની સૌથી ખરાબ જગ્યા? લેટિન અમેરિકા. અહીં, મહિલાઓ સરેરાશ એપ યુઝર્સ કરતા 4% ઓછી વાર સેક્સ કરે છે.

જાતીય ભૂખ

1. સ્ત્રીની જાતીય ભૂખ તેના માસિક ચક્રને અનુરૂપ છે. ચક્રનો પ્રથમ દિવસ માસિક સ્રાવનો પ્રથમ દિવસ છે, જે લગભગ પાંચ દિવસ ચાલે છે. આમ, મહિલાઓને મહિનામાં એકથી પાંચ દિવસ સેક્સમાં સૌથી ઓછો રસ હોય છે.

2. ઘણી સ્ત્રીઓ આ સમય દરમિયાન ઊર્જા સ્તર અથવા મૂડમાં ફેરફારની જાણ કરે છે, અને આ સામાન્ય રીતે જાતીય ઇચ્છામાં ઘટાડો સાથે સંકળાયેલું છે. પીરિયડ્સ પછી એક આખું અઠવાડિયું સેક્સમાં પણ સ્ત્રીઓને ઓછો રસ હોય છે.

3. મોટાભાગની સ્ત્રીઓ તેમના ચક્રના 12મા દિવસે ફરીથી સેક્સ કરવાનું શરૂ કરે છે.

4. ઘણી સ્ત્રીઓ ચક્રના 12 થી 14 દિવસ સુધી નિયમિત જાતીય સંબંધો ધરાવે છે. ગ્લો એપ આ દિવસોમાં "પીક સેક્સી" કહે છે.

5. સ્ત્રીઓ વાસ્તવમાં તેમના ચક્રના 13 અને 14મા દિવસે સૌથી સેક્સી લાગે છે. પરંતુ અહીં રસપ્રદ બાબત છે: તેઓ આ સમયે શ્રેષ્ઠ, સૌથી સંતોષકારક સેક્સ મેળવે તે જરૂરી નથી.

6. સ્ત્રીઓ તેમના ચક્રના છેલ્લા 30મા દિવસે સૌથી વધુ સેક્સ માણે છે. ગ્લોમાં આ દિવસને "પીક ઓર્ગેઝમ" તરીકે નિયુક્ત કરવામાં આવ્યો છે.

શું સ્ત્રીઓ સંતુષ્ટ છે?

1. સ્ત્રીઓ તેમના ચક્રના 15 અને 16મા દિવસે સૌથી વધુ ખુશ અનુભવે છે, અને એ પણ જો તેઓ અગાઉના દિવસોમાં ઘણો સેક્સ કરે છે.

2. ગ્લો યુઝર્સે બે વર્ષમાં 7.6 મિલિયન સેક્સ્યુઅલ એન્કાઉન્ટર નોંધાવ્યા છે.

3. મતલબ કે દર મિનિટે ઓછામાં ઓછી સાત મહિલાઓ જે ગ્લો એપનો ઉપયોગ કરે છે તે સેક્સ કરી રહી છે.

4. માર્ગ દ્વારા, વપરાશકર્તાઓએ પણ તેમના ક્રશની 2 મિલિયન વખત જાણ કરી. આ એપ 88,000 યુગલોના સેક્સ ચક્ર અને પ્રજનન ક્ષમતાને પણ ટ્રેક કરે છે.

5. કમનસીબે, હાલના જાતીય સંપર્કો હોવા છતાં, બધી સ્ત્રીઓ તેમનાથી સંતુષ્ટ નથી. લગભગ ત્રીજા ભાગની મહિલાઓ સ્માર્ટફોન કરતાં સેક્સ છોડી દે છે.

6. પરંતુ હજુ પણ તેનો અર્થ એ છે કે બે તૃતીયાંશ લોકો સેક્સ કરતાં તેમના ફોન છોડી દેશે.

હેલો. મારું નામ શાશા બારનિક છે. Mail.Ru ગ્રુપમાં I વેબ ડેવલપમેન્ટ વિભાગના વડા છે, જેમાં 15 કર્મચારીઓનો સમાવેશ થાય છે. અમે લાખો વપરાશકર્તાઓ માટે વેબસાઇટ્સ કેવી રીતે બનાવવી તે શીખ્યા છીએ અને કેટલાક મિલિયન દૈનિક પ્રેક્ષકોનો સરળતાથી સામનો કરી શકીએ છીએ. હું પોતે લગભગ 20 વર્ષથી વેબ ડેવલપમેન્ટ કરી રહ્યો છું, અને છેલ્લા 15 વર્ષથી હું મારા કામ માટે મુખ્યત્વે PHPમાં પ્રોગ્રામિંગ કરું છું. જો કે આ સમય દરમિયાન ભાષાની ક્ષમતાઓ અને વિકાસનો અભિગમ ઘણો બદલાઈ ગયો છે, મુખ્ય નબળાઈઓને સમજવી અને તેમની સામે રક્ષણ કરવાની ક્ષમતા કોઈપણ વિકાસકર્તા માટે મુખ્ય કૌશલ્યો રહે છે.

તમે ઇન્ટરનેટ પર ઘણા સલામતી લેખો અને માર્ગદર્શિકાઓ શોધી શકો છો. મને આ પુસ્તક તદ્દન વિગતવાર, છતાં સંક્ષિપ્ત અને સમજી શકાય તેવું લાગ્યું. મને આશા છે કે તે તમને કંઈક નવું શીખવામાં અને તમારી સાઇટ્સને વધુ વિશ્વસનીય અને સુરક્ષિત બનાવવામાં મદદ કરશે.

P.S. પુસ્તક લાંબુ છે, તેથી અનુવાદ કેટલાક લેખોમાં પ્રકાશિત થશે. તો ચાલો શરુ કરીએ...

PHP સુરક્ષા પર અન્ય પુસ્તક? PHP સુરક્ષા વિશે પુસ્તક શરૂ કરવાની ઘણી રીતો છે. કમનસીબે, મેં તેમાંથી એક પણ વાંચ્યું નથી, તેથી હું લખતી વખતે તે શોધવાનું રહેશે. કદાચ હું સૌથી મૂળભૂત સાથે શરૂ કરીશ અને આશા રાખું છું કે બધું કામ કરશે.

જો આપણે કંપની X દ્વારા ઓનલાઈન લોન્ચ કરાયેલી અમૂર્ત વેબ એપ્લિકેશનને ધ્યાનમાં લઈએ, તો અમે ધારી શકીએ છીએ કે તેમાં સંખ્યાબંધ ઘટકો છે જે, જો હેક કરવામાં આવે તો, નોંધપાત્ર નુકસાન પહોંચાડી શકે છે. કયું, ઉદાહરણ તરીકે?

  • વપરાશકર્તાઓને નુકસાન: ઇમેઇલ, પાસવર્ડ્સ, વ્યક્તિગત ડેટા, બેંક કાર્ડની વિગતો, વ્યવસાયિક રહસ્યો, સંપર્ક સૂચિ, વ્યવહાર ઇતિહાસ અને ઊંડા સુરક્ષિત રહસ્યો (જેમ કે કોઈ તેમના કૂતરાને સ્પાર્કલ નામ આપતું હોય) સુધી પહોંચવું. આ ડેટા લીક થવાથી વપરાશકર્તાઓ (વ્યક્તિઓ અને કંપનીઓ)ને નુકસાન થાય છે. વેબ એપ્લીકેશનો કે જે આવા ડેટાનો દુરુપયોગ કરે છે અને વપરાશકર્તાના વિશ્વાસનો લાભ લે છે તેવા હોસ્ટ પણ નુકસાન પહોંચાડી શકે છે.
  • કંપની Xને જ નુકસાન: વપરાશકર્તાઓને થયેલા નુકસાનને કારણે, પ્રતિષ્ઠા બગડે છે, વળતર ચૂકવવું પડે છે, મહત્વપૂર્ણ વ્યવસાય માહિતી ખોવાઈ જાય છે, વધારાના ખર્ચો ઊભા થાય છે - ઈન્ફ્રાસ્ટ્રક્ચર માટે, સુરક્ષામાં સુધારો, પરિણામોને દૂર કરવા, કાનૂની ખર્ચ, બરતરફી માટે મોટા લાભો. ટોચના સંચાલકો, વગેરે.
  • હું આ બે શ્રેણીઓ પર ધ્યાન કેન્દ્રિત કરીશ કારણ કે તેમાં મોટાભાગની મુશ્કેલીઓનો સમાવેશ થાય છે જે વેબ એપ્લિકેશન સુરક્ષાને અટકાવવી જોઈએ. ગંભીર સુરક્ષા ભંગનો અનુભવ કરતી તમામ કંપનીઓ પ્રેસ રીલીઝમાં અને તેમની વેબસાઇટ્સ પર લખવા માટે ઝડપી છે કે તેઓ તેના પ્રત્યે કેટલા સંવેદનશીલ છે. તેથી હું તમને સલાહ આપું છું કે તમે વ્યવહારમાં આ સમસ્યાનો સામનો કરો તે પહેલાં તમારા હૃદયથી આ સમસ્યાનું મહત્વ અનુભવો.

    કમનસીબે, સુરક્ષા સમસ્યાઓ ઘણી વાર હકીકત પછી ઉકેલાઈ જાય છે. એવું માનવામાં આવે છે કે સ્વીકાર્ય બજેટ અને સમયમર્યાદામાં, વપરાશકર્તાઓની જરૂરિયાતોને પૂર્ણ કરતી કાર્યકારી એપ્લિકેશન બનાવવી એ સૌથી મહત્વની બાબત છે. તે પ્રાથમિકતાઓનો સમજી શકાય તેવો સમૂહ છે, પરંતુ સુરક્ષાને કાયમ અવગણી શકાતી નથી. તેને સતત ધ્યાનમાં રાખવું વધુ સારું છે, વિકાસ દરમિયાન ચોક્કસ ઉકેલોને અમલમાં મૂકવું, જ્યારે ફેરફારોની કિંમત હજુ પણ ઓછી હોય.

    સુરક્ષાની ગૌણ પ્રકૃતિ મોટે ભાગે પ્રોગ્રામિંગ સંસ્કૃતિનું પરિણામ છે. કેટલાક પ્રોગ્રામરો નબળાઈના વિચારથી ઠંડા પરસેવો છૂટી જાય છે, જ્યારે અન્ય લોકો નબળાઈના અસ્તિત્વ પર વિવાદ કરી શકે છે જ્યાં સુધી તેઓ સાબિત ન કરી શકે કે તે બિલકુલ નબળાઈ નથી. આ બે ચરમસીમાઓ વચ્ચે, ઘણા પ્રોગ્રામરો છે જેઓ ફક્ત તેમના ખભાને ધ્રુજાવી દેશે કારણ કે તેમના માટે હજી સુધી વસ્તુઓ ખોટી થઈ નથી. આ વિચિત્ર દુનિયાને સમજવી તેમના માટે મુશ્કેલ છે.

    કારણ કે વેબ એપ્લિકેશન સુરક્ષાએ એપ્લીકેશનની સેવાઓ પર વિશ્વાસ કરતા વપરાશકર્તાઓનું રક્ષણ કરવું આવશ્યક છે, નીચેના પ્રશ્નોના જવાબો જાણવા જરૂરી છે:

  • કોણ આપણા પર હુમલો કરવા માંગે છે?
  • તેઓ આપણા પર કેવી રીતે હુમલો કરી શકે?
  • અમે તેમને કેવી રીતે રોકી શકીએ?
  • કોણ આપણા પર હુમલો કરવા માંગે છે? પ્રથમ પ્રશ્નનો જવાબ ખૂબ જ સરળ છે: બધું અને બધું. હા, સમગ્ર બ્રહ્માંડ તમને પાઠ ભણાવવા માંગે છે. કાલી લિનક્સ ચલાવતો ઓવરક્લોક કમ્પ્યુટર ધરાવતો વ્યક્તિ? તેણે કદાચ પહેલાથી જ તમારા પર હુમલો કર્યો છે. એક શંકાસ્પદ માણસ જે લોકોના પૈડામાં સ્પોક મૂકવાનું પસંદ કરે છે? તેણે કદાચ પહેલાથી જ તમારા પર હુમલો કરવા માટે કોઈને રાખ્યા છે. એક વિશ્વસનીય REST API કે જે તમને કલાકદીઠ ડેટા ફીડ કરે છે? સંભવતઃ એક મહિના પહેલા તમને ચેપગ્રસ્ત ડેટા ફીડ કરવા માટે તે હેક કરવામાં આવ્યું હતું. હું પણ તમારા પર હુમલો કરી શકું છું! તેથી તમારે આ પુસ્તક પર આંધળો વિશ્વાસ રાખવાની જરૂર નથી. મને જૂઠું બોલું ગણો. અને એક પ્રોગ્રામર શોધો જે મને સ્વચ્છ પાણીમાં લાવશે અને મારી હાનિકારક સલાહને ઉજાગર કરશે. બીજી બાજુ, કદાચ તે પણ તમને હેક કરવા જઈ રહ્યો છે...

    આ પેરાનોઇયાનો મુદ્દો એ છે કે તમારી વેબ એપ્લિકેશન (“વપરાશકર્તા”, “હેકર”, “ડેટાબેસ”, “અવિશ્વસનીય ઇનપુટ”, “મેનેજર”, “REST API” , અને) સાથે ક્રિયાપ્રતિક્રિયા કરતી દરેક વસ્તુને માનસિક રીતે વર્ગીકૃત કરવાનું સરળ બનાવવું પછી દરેક શ્રેણીને ટ્રસ્ટ ઇન્ડેક્સ સોંપો. દેખીતી રીતે, "હેકર" પર વિશ્વાસ કરી શકાતો નથી, પરંતુ "ડેટાબેઝ" વિશે શું? "અવિશ્વસનીય ઇનપુટ" ને તેનું નામ એક કારણસર મળ્યું, પરંતુ શું તમે ખરેખર તમારા સાથીદારની વિશ્વસનીય એટમ ફીડમાંથી બ્લોગ પોસ્ટને ફિલ્ટર કરશો?

    જેઓ વેબ એપ્લીકેશન હેક કરવા અંગે ગંભીર છે તેઓ આ વિચારસરણીનો લાભ લેવાનું શીખે છે, જેઓ ઘણીવાર સંવેદનશીલ માહિતીને બદલે વિશ્વસનીય ડેટા સ્ત્રોતો પર હુમલો કરે છે, જેની જગ્યાએ સારી સુરક્ષા હોવાની શક્યતા ઓછી હોય છે. આ કોઈ રેન્ડમ નિર્ણય નથી: વાસ્તવિક જીવનમાં, ઉચ્ચ ટ્રસ્ટ ઇન્ડેક્સ ધરાવતા વિષયો ઓછા શંકાસ્પદ હોય છે. એપ્લિકેશનનું વિશ્લેષણ કરતી વખતે હું આ ડેટા સ્ત્રોતો છે જેના પર હું પ્રથમ ધ્યાન આપું છું.

    ચાલો "ડેટાબેઝ" પર પાછા ફરીએ. માની લઈએ કે હેકર ડેટાબેઝમાં પ્રવેશ મેળવી શકે છે (અને અમે પેરાનોઇડ્સ હંમેશા આ ધારીએ છીએ), તો તેના પર ક્યારેય વિશ્વાસ કરી શકાય નહીં. મોટાભાગની એપ્લિકેશનો કોઈપણ પ્રશ્નો વિના ડેટાબેઝ પર વિશ્વાસ કરે છે. બહારથી, વેબ એપ્લિકેશન એક સંપૂર્ણ જેવી લાગે છે, પરંતુ તેની અંદર વ્યક્તિગત ઘટકોની સિસ્ટમ છે જે ડેટાનું વિનિમય કરે છે. જો આપણે આ બધા ઘટકોને વિશ્વાસપાત્ર ગણીએ, તો જો તેમાંથી એક હેક થઈ જાય, તો બાકીના બધા સાથે ઝડપથી સમાધાન થઈ જશે. આવી આપત્તિજનક સુરક્ષા સમસ્યાઓ "જો ડેટાબેઝ હેક કરવામાં આવે છે, તો પણ આપણે ગુમાવીએ છીએ" વાક્ય વડે હલ કરી શકાતી નથી. તમે આમ કહી શકો છો, પરંતુ તે બિલકુલ હકીકત નથી કે જો તમે શરૂઆતમાં આધાર પર વિશ્વાસ ન કરો અને તે મુજબ કાર્ય કરો તો તમારે આ કરવું પડશે!

    તેઓ આપણા પર કેવી રીતે હુમલો કરી શકે? બીજા પ્રશ્નનો જવાબ એકદમ વ્યાપક યાદી છે. વેબ એપ્લિકેશનના દરેક ઘટક અથવા સ્તરને ડેટા પ્રાપ્ત થાય ત્યાંથી તમારા પર હુમલો થઈ શકે છે. અનિવાર્યપણે, વેબ એપ્લિકેશનો ફક્ત ડેટા પર પ્રક્રિયા કરે છે અને તેને એક જગ્યાએથી બીજી જગ્યાએ ખસેડે છે. વપરાશકર્તા વિનંતીઓ, ડેટાબેસેસ, API, બ્લોગ ફીડ્સ, ફોર્મ્સ, કૂકીઝ, રીપોઝીટરીઝ, PHP પર્યાવરણ વેરિયેબલ્સ, રૂપરેખાંકન ફાઇલો, રૂપરેખાંકન ફાઇલો, તમે એક્ઝિક્યુટ કરો છો તે પણ PHP ફાઇલો - તે તમામ સુરક્ષાનો ભંગ કરવા અને નુકસાન પહોંચાડવા માટે સંભવિત રીતે દૂષિત થઈ શકે છે. આવશ્યકપણે, જો વિનંતી કરવા માટે ઉપયોગમાં લેવાતા PHP કોડમાં દૂષિત ડેટા સ્પષ્ટપણે હાજર ન હોય, તો તે સંભવિતપણે "પેલોડ" તરીકે આવશે. આ ધારે છે કે a) તમે PHP સ્રોત કોડ લખ્યો છે, b) તેની યોગ્ય રીતે પીઅર-સમીક્ષા કરવામાં આવી છે, અને c) તમને ગુનાહિત સંસ્થાઓ દ્વારા ચૂકવણી કરવામાં આવી નથી.

    જો તમે ડેટા સંપૂર્ણપણે સુરક્ષિત અને ઉપયોગ માટે યોગ્ય છે તે તપાસ્યા વિના ડેટા સ્ત્રોતોનો ઉપયોગ કરો છો, તો તમે સંભવિત રીતે હુમલો કરવા માટે ખુલ્લા છો. તમારે એ પણ તપાસવાની જરૂર છે કે તમે જે ડેટા પ્રાપ્ત કરો છો તે તમે મોકલો છો તે ડેટા સાથે મેળ ખાય છે. જો ડેટાને આઉટપુટ માટે સંપૂર્ણપણે સુરક્ષિત બનાવવામાં ન આવે, તો તમને ગંભીર સમસ્યાઓ પણ થશે. આ બધું PHP માટેના નિયમ તરીકે વ્યક્ત કરી શકાય છે “Validate input; આઉટપુટથી બચી જાઓ."

    આ ડેટાના સ્પષ્ટ સ્ત્રોત છે જેને આપણે કોઈક રીતે નિયંત્રિત કરવું જોઈએ. સ્ત્રોતોમાં ક્લાયંટ-સાઇડ સ્ટોરેજ પણ શામેલ હોઈ શકે છે. ઉદાહરણ તરીકે, મોટાભાગની એપ્લિકેશનો વપરાશકર્તાઓને અનન્ય સત્ર ID સોંપીને ઓળખે છે, જે કૂકીઝમાં સંગ્રહિત કરી શકાય છે. જો કોઈ હુમલાખોર કૂકીમાંથી મૂલ્ય મેળવે છે, તો તે બીજા વપરાશકર્તાનો ઢોંગ કરી શકે છે. જો કે અમે વપરાશકર્તાના ડેટાના વિક્ષેપ અથવા ચેડા સાથે સંકળાયેલા કેટલાક જોખમોને ઘટાડી શકીએ છીએ, અમે વપરાશકર્તાના કમ્પ્યુટરની ભૌતિક સુરક્ષાની ખાતરી આપી શકતા નથી. અમે ખાતરી પણ આપી શકતા નથી કે વપરાશકર્તાઓ "પાસવર્ડ" પછીનો સૌથી મૂર્ખ પાસવર્ડ "123456" ગણશે. વધારાની તીક્ષ્ણતા એ હકીકત દ્વારા આપવામાં આવે છે કે આજે કૂકીઝ એ વપરાશકર્તાની બાજુમાં સ્ટોરેજનો એકમાત્ર પ્રકાર નથી.

    અન્ય જોખમ કે જેને ઘણીવાર અવગણવામાં આવે છે તે તમારા સ્રોત કોડની અખંડિતતા છે. PHP માં, ફ્રેમવર્ક માટે મોટી સંખ્યામાં ઢીલી રીતે જોડાયેલ લાઇબ્રેરીઓ, મોડ્યુલો અને પેકેજો પર આધારિત એપ્લિકેશન ડેવલપમેન્ટ વધુને વધુ લોકપ્રિય બની રહ્યું છે. તેમાંના ઘણાને ગીથબ જેવા સાર્વજનિક ભંડારમાંથી ડાઉનલોડ કરવામાં આવે છે અને કંપોઝર અને તેના વેબ સાથી Packagist.org જેવા પેકેજ ઇન્સ્ટોલર્સનો ઉપયોગ કરીને ઇન્સ્ટોલ કરવામાં આવે છે. તેથી, સ્ત્રોત કોડની સુરક્ષા સંપૂર્ણપણે આ તમામ તૃતીય-પક્ષ સેવાઓ અને ઘટકોની સુરક્ષા પર આધારિત છે. જો ગીથબ સાથે ચેડા કરવામાં આવે છે, તો તેનો ઉપયોગ મોટે ભાગે દૂષિત ઉમેરણ સાથે કોડ વિતરિત કરવા માટે કરવામાં આવશે. જો Packagist.org - તો હુમલાખોર પેકેજ વિનંતીઓને તેમના પોતાના, દૂષિત પેકેજો પર રીડાયરેક્ટ કરવામાં સક્ષમ હશે.

    હાલમાં, Composer અને Packagist.org નિર્ભરતા શોધ અને પેકેજ વિતરણમાં જાણીતી નબળાઈઓને આધીન છે, તેથી હંમેશા તમારા ઉત્પાદન વાતાવરણમાં દરેક વસ્તુને બે વાર તપાસો અને Packagist.org માંથી તમામ પેકેજોના સ્ત્રોતને ચકાસો.

    અમે તેમને કેવી રીતે રોકી શકીએ? વેબ એપ્લિકેશનની સુરક્ષાને તોડવું એ એક કાર્ય હોઈ શકે છે જે હાસ્યાસ્પદ રીતે સરળથી લઈને અત્યંત સમય માંગી લે તેવું હોઈ શકે છે. દરેક વેબ એપ્લીકેશનમાં ક્યાંક ને ક્યાંક નબળાઈ હોય છે એવું માનવું વાજબી છે. કારણ સરળ છે: બધી એપ્લિકેશન લોકો દ્વારા કરવામાં આવે છે, અને લોકો ભૂલો કરે છે. તેથી સંપૂર્ણ સુરક્ષા એ પાઇપ ડ્રીમ છે. બધી એપ્લિકેશનમાં નબળાઈઓ હોઈ શકે છે, અને પ્રોગ્રામરોનું કાર્ય જોખમો ઘટાડવાનું છે.

    વેબ એપ્લિકેશન પરના હુમલાથી નુકસાનની સંભાવના ઘટાડવા માટે તમારે કાળજીપૂર્વક વિચારવું પડશે. જેમ જેમ વાર્તા આગળ વધશે, હું હુમલાની સંભવિત પદ્ધતિઓ વિશે વાત કરીશ. તેમાંના કેટલાક સ્પષ્ટ છે, અન્ય નથી. પરંતુ કોઈ પણ સંજોગોમાં, સમસ્યાને ઉકેલવા માટે, તમારે કેટલાક મૂળભૂત સુરક્ષા સિદ્ધાંતો ધ્યાનમાં લેવાની જરૂર છે.

    મૂળભૂત સુરક્ષા સિદ્ધાંતો જ્યારે સુરક્ષા પગલાં વિકસાવવામાં આવે છે, ત્યારે નીચેની બાબતોનો ઉપયોગ કરીને તેમની અસરકારકતાનું મૂલ્યાંકન કરી શકાય છે. મેં પહેલાથી જ ઉપરના કેટલાક ટાંક્યા છે.
  • કોઈની કે કોઈ વસ્તુ પર વિશ્વાસ ન કરો.
  • હંમેશા સૌથી ખરાબ પરિસ્થિતિ ધારો.
  • મલ્ટિ-લેવલ પ્રોટેક્શન લાગુ કરો (ડિફેન્સ-ઇન-ડેપ્થ).
  • “કીપ ઇટ સિમ્પલ સ્ટુપિડ” (KISS) સિદ્ધાંતને વળગી રહો.
  • "ઓછામાં ઓછા વિશેષાધિકાર" ના સિદ્ધાંતને વળગી રહો.
  • હુમલાખોરોને અસ્પષ્ટતાની ગંધ આવે છે.
  • દસ્તાવેજીકરણ (RTFM) વાંચો, પરંતુ તેના પર ક્યારેય વિશ્વાસ ન કરો.
  • જો તેનું પરીક્ષણ કરવામાં આવ્યું નથી, તો તે કામ કરતું નથી.
  • તે હંમેશા તમારી ભૂલ છે!
  • ચાલો ટૂંકમાં બધા મુદ્દાઓ પર જઈએ.1. ઉપર જણાવ્યા મુજબ, કોઈપણ વ્યક્તિ કે કોઈ પણ વસ્તુ પર વિશ્વાસ ન કરો, યોગ્ય સ્થિતિ એ માનવું છે કે તમારી વેબ એપ્લિકેશન જેની સાથે સંપર્ક કરે છે તે દરેક વ્યક્તિ તેને હેક કરવા માંગે છે. આમાં અન્ય એપ્લિકેશન ઘટકો અથવા સ્તરોનો સમાવેશ થાય છે જે વિનંતીઓ પર પ્રક્રિયા કરવા માટે જરૂરી છે. કંઈપણ અને બધું. કોઈ અપવાદ નથી.2. હંમેશા સૌથી ખરાબ પરિસ્થિતિ ધારો ઘણી સુરક્ષા સિસ્ટમોમાં એક વસ્તુ સમાન હોય છે: ભલે તે ગમે તેટલી સારી રીતે બનાવવામાં આવી હોય, દરેકનો ભંગ થઈ શકે છે. જો તમે આને ધ્યાનમાં લેશો, તો તમે બીજા મુદ્દાનો ફાયદો ઝડપથી સમજી શકશો. સૌથી ખરાબ પરિસ્થિતિ પર ધ્યાન કેન્દ્રિત કરવાથી તમને હુમલાના અવકાશ અને ગંભીરતાનું મૂલ્યાંકન કરવામાં મદદ મળશે. અને જો તે થાય, તો તમે વધારાના સુરક્ષા પગલાં અને આર્કિટેક્ચરલ ફેરફારો સાથે અપ્રિય પરિણામોને ઘટાડી શકશો. કદાચ તમે જે પરંપરાગત સોલ્યુશનનો ઉપયોગ કરી રહ્યાં છો તે પહેલાથી જ કંઈક વધુ સારું દ્વારા બદલવામાં આવ્યું છે?3. મલ્ટી-લેવલ પ્રોટેક્શનનો ઉપયોગ કરો (ડિફેન્સ-ઇન-ડેપ્થ) મલ્ટી-લેવલ પ્રોટેક્શન લશ્કરી વિજ્ઞાનમાંથી ઉધાર લેવામાં આવ્યું છે, કારણ કે લોકોને લાંબા સમયથી સમજાયું છે કે દુશ્મનની ગોળીઓ અને બ્લેડથી મહત્વપૂર્ણ અંગોને આવરી લેતી અસંખ્ય દિવાલો, રેતીની થેલીઓ, સાધનો, બખ્તર અને ફ્લાસ્ક યોગ્ય છે. સલામતી માટે અભિગમ. તમે ક્યારેય જાણતા નથી કે ઉપરોક્તમાંથી કયું રક્ષણ કરશે નહીં, અને તમારે ખાતરી કરવાની જરૂર છે કે રક્ષણના ઘણા સ્તરો તમને ફક્ત ક્ષેત્રની કિલ્લેબંધી અથવા યુદ્ધની રચના કરતાં વધુ પર આધાર રાખવા દે છે. અલબત્ત, તે માત્ર એક નિષ્ફળતા વિશે નથી. કલ્પના કરો કે કોઈ હુમલાખોર એક વિશાળ મધ્યયુગીન દિવાલ પર સીડી પર ચઢી રહ્યો છે અને તેની પાછળ બીજી દિવાલ છે જેમાંથી તેના પર તીરોનો વરસાદ કરવામાં આવ્યો છે. હેકર્સ પણ એવું જ અનુભવશે.4. તેને સરળ રાખો મૂર્ખ (KISS) શ્રેષ્ઠ સંરક્ષણ હંમેશા સરળ હોય છે. તેઓ વિકસાવવા, અમલમાં મૂકવા, સમજવા, ઉપયોગ કરવા અને પરીક્ષણ કરવા માટે સરળ છે. સરળતા ભૂલો ઘટાડે છે, યોગ્ય એપ્લિકેશન પ્રદર્શનને પ્રોત્સાહિત કરે છે, અને અત્યંત જટિલ અને પ્રતિકૂળ વાતાવરણમાં પણ અમલીકરણની સુવિધા આપે છે.5. "ઓછામાં ઓછા વિશેષાધિકાર" ના સિદ્ધાંતનું પાલન કરો માહિતીના વિનિમયમાં દરેક સહભાગી (વપરાશકર્તા, પ્રક્રિયા, પ્રોગ્રામ) પાસે ફક્ત તે જ ઍક્સેસ અધિકારો હોવા જોઈએ જે તેને તેના કાર્યો કરવા માટે જરૂરી છે.6. અસ્પષ્ટતા દ્વારા હુમલાખોરોને અસ્પષ્ટતાની ગંધ આવે છે સુરક્ષા એ ધારણા પર આધારિત છે કે જો તમે સંરક્ષણ A નો ઉપયોગ કરો છો અને તે શું છે, તે કેવી રીતે કાર્ય કરે છે અથવા તે અસ્તિત્વમાં છે કે કેમ તે કોઈને જણાવતા નથી, તો તે તમને જાદુઈ રીતે મદદ કરશે કારણ કે હુમલાખોરો મૂંઝવણમાં રહે છે. વાસ્તવમાં, આ માત્ર થોડો ફાયદો પૂરો પાડે છે. મોટે ભાગે, અનુભવી હુમલાખોર તમે લીધેલા પગલાંને શોધી શકશે, તેથી તમારે સ્પષ્ટ સંરક્ષણનો ઉપયોગ કરવાની જરૂર છે. જેઓ અતિશય વિશ્વાસ ધરાવે છે કે અસ્પષ્ટ રક્ષણ વાસ્તવિક સુરક્ષાની જરૂરિયાતને રદ કરે છે, તેઓને ભ્રમમાંથી મુક્તિ મેળવવા માટે ખાસ સજા થવી જોઈએ.7. દસ્તાવેજીકરણ (RTFM) વાંચો, પરંતુ તેના પર ક્યારેય વિશ્વાસ ન કરો PHP મેન્યુઅલ બાઇબલ છે. અલબત્ત, તે ફ્લાઈંગ સ્પાઘેટ્ટી મોન્સ્ટર દ્વારા લખવામાં આવ્યું ન હતું, તેથી તકનીકી રીતે તેમાં કેટલાક અર્ધ-સત્ય, ભૂલો, ખોટા અર્થઘટન અથવા ભૂલો હોઈ શકે છે જે હજુ સુધી ધ્યાન અથવા સુધારેલ નથી. સ્ટેક ઓવરફ્લો માટે પણ તે જ છે.

    સુરક્ષા શાણપણના વિશિષ્ટ સ્ત્રોતો (PHP-કેન્દ્રિત અને અન્યથા) સામાન્ય રીતે વધુ વિગતવાર જ્ઞાન પ્રદાન કરે છે. PHP સુરક્ષા પર બાઇબલની સૌથી નજીકની વસ્તુ OWASP છે, જે લેખો, માર્ગદર્શિકાઓ અને ટીપ્સ પ્રદાન કરે છે. જો OWASP પર કંઈક કરવાની ભલામણ કરવામાં આવતી નથી, તો તે ક્યારેય ન કરો!

    8. જો તેનું પરીક્ષણ કરવામાં આવ્યું ન હોય, તો તે કામ કરતું નથી સુરક્ષા પગલાં અમલમાં મૂકતી વખતે, તમારે ચકાસણી માટે જરૂરી તમામ કાર્યકારી પરીક્ષણો લખવા આવશ્યક છે. જેમાં ડોળ કરવો કે તમે હેકર છો જેના માટે જેલ રડી રહી છે. તે કદાચ દૂરનું લાગે છે, પરંતુ વેબ એપ્લિકેશન હેકિંગ તકનીકોથી પરિચિત થવું એ સારી પ્રેક્ટિસ છે; તમે સંભવિત નબળાઈઓ વિશે શીખી શકશો, અને તમારો પેરાનોઈયા વધશે. તે જ સમયે, વેબ એપ્લિકેશનને હેક કરવા માટે તમારા નવા હસ્તગત કૃતજ્ઞતા વિશે મેનેજમેન્ટને જણાવવું જરૂરી નથી. નબળાઈઓને ઓળખવા માટે સ્વચાલિત સાધનોનો ઉપયોગ કરવાની ખાતરી કરો. તેઓ ઉપયોગી છે, પરંતુ અલબત્ત તેઓ ઉચ્ચ-ગુણવત્તાવાળી કોડ સમીક્ષાઓ અને એપ્લિકેશનના મેન્યુઅલ પરીક્ષણને પણ બદલતા નથી. તમે પરીક્ષણ પર જેટલા વધુ સંસાધનો ખર્ચો છો, તેટલી વધુ વિશ્વસનીય તમારી એપ્લિકેશન હશે.9. તે હંમેશા તમારી ભૂલ છે! પ્રોગ્રામર્સ એ વિચારવા માટે ટેવાયેલા છે કે અલગ હુમલાઓમાં સુરક્ષા નબળાઈઓ શોધી કાઢવામાં આવશે, અને તેમના પરિણામો નહિવત્ છે.

    ઉદાહરણ તરીકે, ડેટા ભંગ (એક સારી રીતે દસ્તાવેજીકૃત અને વ્યાપક પ્રકારનું હેકિંગ) ઘણીવાર નાની સુરક્ષા સમસ્યાઓ તરીકે જોવામાં આવે છે કારણ કે તે વપરાશકર્તાઓને સીધી અસર કરતા નથી. જો કે, સોફ્ટવેર વર્ઝન, ડેવલપમેન્ટ લેંગ્વેજ, સોર્સ કોડ લોકેશન્સ, એપ્લીકેશન અને બિઝનેસ લોજીક, ડેટાબેઝ સ્ટ્રક્ચર અને વેબ એપ્લીકેશનના પર્યાવરણ અને આંતરિક કામગીરીના અન્ય પાસાઓ વિશેની માહિતી લીક કરવી એ સફળ હુમલા માટે ઘણી વખત મહત્વપૂર્ણ છે.

    તે જ સમયે, સુરક્ષા પ્રણાલીઓ પરના હુમલાઓ ઘણીવાર હુમલાના સંયોજનો હોય છે. વ્યક્તિગત રીતે, તેઓ મામૂલી છે, પરંતુ કેટલીકવાર તેઓ અન્ય હુમલાઓ માટે માર્ગ ખોલે છે. ઉદાહરણ તરીકે, એસક્યુએલ ઈન્જેક્શન માટે કેટલીકવાર ચોક્કસ વપરાશકર્તાનામની જરૂર પડે છે, જે વધુ ખર્ચાળ અને દૃશ્યમાન બ્રુટ ફોર્સને બદલે એડમિનિસ્ટ્રેટિવ ઈન્ટરફેસ સામે ટાઈમિંગ એટેકનો ઉપયોગ કરીને મેળવી શકાય છે. બદલામાં, SQL ઇન્જેક્શન તમને લોગમાં મોટી સંખ્યામાં શંકાસ્પદ એન્ટ્રીઓ સાથે ધ્યાન આકર્ષિત કર્યા વિના ચોક્કસ વહીવટી ખાતા પર XSS હુમલાને અમલમાં મૂકવાની મંજૂરી આપે છે.

    એકલતામાં નબળાઈઓને ધ્યાનમાં લેવાનો ભય તેમના જોખમને ઓછો આંકવામાં અને તેથી તેમના વિશે ખૂબ બેદરકાર રહેવામાં છે. પ્રોગ્રામર્સ ઘણીવાર નબળાઈને ઠીક કરવામાં આળસુ હોય છે કારણ કે તેઓ તેને ખૂબ નાની માને છે. સુરક્ષિત વિકાસ માટેની જવાબદારીને અંતિમ પ્રોગ્રામરો અથવા વપરાશકર્તાઓ પર સ્થાનાંતરિત કરવાની પણ સામાન્ય પ્રથા છે, ઘણીવાર ચોક્કસ સમસ્યાઓના દસ્તાવેજીકરણ વિના: આ નબળાઈઓનું અસ્તિત્વ પણ માન્ય નથી.

    દેખીતી તુચ્છતા મહત્વની નથી. પ્રોગ્રામરો અથવા વપરાશકર્તાઓને તમારી નબળાઈઓને ઠીક કરવા દબાણ કરવું બેજવાબદારીભર્યું છે, ખાસ કરીને જો તમને તેમના વિશે જાણ પણ ન કરવામાં આવી હોય.

    ઇનપુટ માન્યતા ઇનપુટ માન્યતા એ તમારી વેબ એપ્લિકેશનની બાહ્ય સંરક્ષણ પરિમિતિ છે. તે કોર બિઝનેસ લોજિક, ડેટા પ્રોસેસિંગ અને આઉટપુટ જનરેશનનું રક્ષણ કરે છે. શાબ્દિક રીતે, આ પરિમિતિની બહારની દરેક વસ્તુ, વર્તમાન વિનંતી દ્વારા ચલાવવામાં આવેલ કોડ સિવાય, દુશ્મન પ્રદેશ માનવામાં આવે છે. પરિમિતિના તમામ સંભવિત પ્રવેશદ્વારો અને બહાર નીકળવા પર આતંકવાદી સંત્રીઓ દ્વારા દિવસ-રાત સુરક્ષા કરવામાં આવે છે જેઓ પહેલા ગોળીબાર કરે છે અને પછી પ્રશ્નો પૂછે છે. અલગથી રક્ષિત (અને ખૂબ જ શંકાસ્પદ દેખાતા) "સાથીઓ" પરિમિતિ સાથે જોડાયેલા છે, જેમાં "મોડેલ", "ડેટાબેઝ" અને "ફાઇલ સિસ્ટમ"નો સમાવેશ થાય છે. કોઈ તેમના પર ગોળીબાર કરવા માંગતું નથી, પરંતુ જો તેઓ પોતાનું નસીબ અજમાવશે તો... બેંગ. દરેક સાથીની પોતાની પરિમિતિ હોય છે, જે આપણા પર વિશ્વાસ કરી શકે છે અથવા ન પણ કરી શકે છે.

    યાદ રાખો કે તમે કોના પર વિશ્વાસ કરી શકો તે વિશે મેં શું કહ્યું હતું? કોઈને નહીં અને કંઈ નહીં. PHP વિશ્વમાં, "વપરાશકર્તા ઇનપુટ" પર વિશ્વાસ ન કરવાની સલાહ દરેક જગ્યાએ છે. આ વિશ્વાસની ડિગ્રી અનુસાર શ્રેણીઓમાંની એક છે. એમ ધારી રહ્યા છીએ કે વપરાશકર્તાઓ પર વિશ્વાસ કરી શકાતો નથી, અમે ધારીએ છીએ કે બાકીની દરેક વસ્તુ પર વિશ્વાસ કરી શકાય છે. આ ખોટું છે. વપરાશકર્તાઓ ઇનપુટનો સૌથી સ્પષ્ટ અવિશ્વસનીય સ્ત્રોત છે કારણ કે અમે તેમને જાણતા નથી અને અમે તેમને નિયંત્રિત કરી શકતા નથી.

    માન્યતા માપદંડ ઇનપુટ ડેટાની માન્યતા એ વેબ એપ્લિકેશનનું સૌથી વધુ સ્પષ્ટ અને સૌથી અવિશ્વસનીય રક્ષણ છે. મોટાભાગની નબળાઈઓ ચકાસણી પ્રણાલીમાં નિષ્ફળતાને કારણે થાય છે, તેથી તે ખૂબ જ મહત્વપૂર્ણ છે કે સંરક્ષણનો આ ભાગ યોગ્ય રીતે કાર્ય કરે છે. તે નિષ્ફળ થઈ શકે છે, પરંતુ હજુ પણ નીચેની બાબતોનું પાલન કરો. કસ્ટમ વેલિડેટરનો અમલ કરતી વખતે અને તૃતીય-પક્ષ માન્યતા પુસ્તકાલયોનો ઉપયોગ કરતી વખતે હંમેશા ધ્યાનમાં રાખો કે તૃતીય-પક્ષ સોલ્યુશન્સ સામાન્ય કાર્યો કરે છે અને તમારી એપ્લિકેશનને જરૂર પડી શકે તેવી મુખ્ય માન્યતા પ્રક્રિયાઓને છોડી દે છે. સુરક્ષા જરૂરિયાતો માટે બનાવાયેલ કોઈપણ પુસ્તકાલયોનો ઉપયોગ કરતી વખતે, તેમને નબળાઈઓ અને યોગ્ય કામગીરી માટે સ્વતંત્ર રીતે તપાસવાની ખાતરી કરો. હું એ પણ ધ્યાનમાં રાખવાની ભલામણ કરું છું કે PHP વિચિત્ર અને સંભવતઃ અસુરક્ષિત વર્તન પ્રદર્શિત કરી શકે છે. ફિલ્ટરિંગ કાર્યોમાંથી લીધેલ આ ઉદાહરણ જુઓ:

    Filter_var("php://example.org", FILTER_VALIDATE_URL);
    ફિલ્ટર કોઈપણ પ્રશ્નો વિના પસાર થાય છે. સમસ્યા એ છે કે પ્રાપ્ત થયેલ php:// URL એ PHP ફંક્શનમાં પસાર થઈ શકે છે જે એક્ઝિક્યુટીંગ PHP સ્ક્રિપ્ટ (PHP હેન્ડલર દ્વારા)માંથી ડેટા પરત કરવાને બદલે રિમોટ HTTP એડ્રેસ પ્રાપ્ત કરવાની અપેક્ષા રાખે છે. નબળાઈ થાય છે કારણ કે ફિલ્ટરિંગ વિકલ્પ પાસે માન્ય URI ને પ્રતિબંધિત કરવાની પદ્ધતિ નથી. ભલે એપ્લિકેશનને http, https અથવા mailto લિંકની અપેક્ષા હોય અને અમુક PHP-વિશિષ્ટ URIની નહીં. પરીક્ષણ માટેનો આ વધુ પડતો સામાન્ય અભિગમ કોઈપણ કિંમતે ટાળવો જોઈએ.

    સંદર્ભ સાથે સાવચેત રહો ઇનપુટ માન્યતા અસુરક્ષિત ડેટાને વેબ એપ્લિકેશનમાં દાખલ થવાથી અટકાવે છે. એક મુખ્ય અવરોધ: ડેટા સુરક્ષા પરીક્ષણ સામાન્ય રીતે ફક્ત પ્રથમ હેતુવાળા ઉપયોગ માટે જ કરવામાં આવે છે.

    ધારો કે મને નામ ધરાવતો ડેટા પ્રાપ્ત થયો છે. હું એપોસ્ટ્રોફી, હાઇફન્સ, કૌંસ, જગ્યાઓ અને આલ્ફાન્યૂમેરિક યુનિકોડ અક્ષરોના સંપૂર્ણ યજમાન માટે તેને એકદમ સરળતાથી ચકાસી શકું છું. નામ એ માન્ય ડેટા છે જેનો ઉપયોગ ડિસ્પ્લે માટે કરી શકાય છે (પ્રથમ હેતુપૂર્વકનો ઉપયોગ). પરંતુ જો તમે તેનો ઉપયોગ બીજે ક્યાંક કરો છો (ઉદાહરણ તરીકે, ડેટાબેઝ ક્વેરી), તે એક નવા સંદર્ભમાં સમાપ્ત થશે. અને નામમાં કાયદેસર હોય તેવા કેટલાક પાત્રો આ સંદર્ભમાં ખતરનાક સાબિત થશે: જો નામને SQL ઈન્જેક્શન કરવા માટે સ્ટ્રિંગમાં રૂપાંતરિત કરવામાં આવે.

    તે તારણ આપે છે કે ઇનપુટ ડેટા ચકાસણી સ્વાભાવિક રીતે અવિશ્વસનીય છે. તે સ્પષ્ટ રીતે અમાન્ય મૂલ્યોને કાપવા માટે સૌથી અસરકારક છે. ચાલો કહીએ કે જ્યારે કંઈક પૂર્ણાંક, અથવા આલ્ફાન્યૂમેરિક સ્ટ્રિંગ અથવા HTTP URL હોવું જરૂરી છે. આવા બંધારણો અને મૂલ્યોની તેમની મર્યાદાઓ હોય છે અને, જો યોગ્ય રીતે ચકાસવામાં આવે તો, જોખમ ઊભું થવાની શક્યતા ઓછી છે. અન્ય મૂલ્યો (અમર્યાદિત ટેક્સ્ટ, GET/POST એરે અને HTML) ચકાસવા માટે વધુ મુશ્કેલ છે અને તેમાં દૂષિત ડેટા હોવાની શક્યતા વધુ છે.

    મોટાભાગે અમારી એપ્લિકેશન સંદર્ભો વચ્ચે ડેટા પસાર કરતી હોવાથી, અમે ફક્ત તમામ ઇનપુટ ડેટાને તપાસી શકતા નથી અને તેને એક દિવસ કૉલ કરી શકતા નથી. પ્રવેશદ્વાર પર તપાસ કરવી એ સંરક્ષણની માત્ર પ્રથમ લાઇન છે, પરંતુ કોઈ પણ રીતે એકમાત્ર નથી.

    ઇનપુટ ડેટાની ચકાસણી સાથે, રક્ષણ પદ્ધતિ જેમ કે શિલ્ડિંગનો ઉપયોગ ઘણી વાર થાય છે. તેની મદદથી, દરેક નવા સંદર્ભમાં પ્રવેશ કરતી વખતે સુરક્ષા માટે ડેટા તપાસવામાં આવે છે. આ પદ્ધતિનો ઉપયોગ સામાન્ય રીતે ક્રોસ-સાઇટ સ્ક્રિપ્ટીંગ (XSS) સામે રક્ષણ કરવા માટે થાય છે, પરંતુ તે ફિલ્ટરિંગ ટૂલ તરીકે અન્ય ઘણા કાર્યોમાં પણ વપરાય છે.

    શિલ્ડિંગ આઉટગોઇંગ ડેટાના પ્રાપ્તકર્તા દ્વારા ખોટા અર્થઘટન સામે રક્ષણ આપે છે. પરંતુ આ પૂરતું નથી - જેમ કે ડેટા નવા સંદર્ભમાં પ્રવેશે છે, ચોક્કસ સંદર્ભ માટે ચેકની ખાસ જરૂર છે.

    જ્યારે આને પ્રારંભિક ઇનપુટ માન્યતાનું ડુપ્લિકેટિંગ માનવામાં આવી શકે છે, જ્યારે ડેટા આવશ્યકતાઓ ખૂબ જ અલગ હોય ત્યારે વધારાના માન્યતા પગલાંઓ વર્તમાન સંદર્ભની વિશિષ્ટતાઓને વધુ સારી રીતે સંબોધિત કરે છે. ઉદાહરણ તરીકે, ફોર્મમાંથી આવતા ડેટામાં ટકાવારી સંખ્યા હોઈ શકે છે. પ્રથમ વખત અમે તેનો ઉપયોગ કરીએ છીએ, અમે તપાસીએ છીએ કે મૂલ્ય ખરેખર પૂર્ણાંક છે. પરંતુ જ્યારે અમારા એપ્લિકેશન મોડેલમાં સ્થાનાંતરિત કરવામાં આવે છે, ત્યારે નવી આવશ્યકતાઓ ઊભી થઈ શકે છે: મૂલ્ય ચોક્કસ શ્રેણીમાં ફિટ હોવું જોઈએ, જે એપ્લિકેશનના વ્યવસાયના તર્કને કાર્ય કરવા માટે જરૂરી છે. અને જો આ વધારાની તપાસ નવા સંદર્ભમાં કરવામાં નહીં આવે તો ગંભીર સમસ્યાઓ ઊભી થઈ શકે છે.

    ફક્ત વ્હાઇટલિસ્ટ્સનો ઉપયોગ કરો, બ્લેકલિસ્ટ્સનો નહીં બ્લેકલિસ્ટ્સ અને વ્હાઇટલિસ્ટ્સ ઇનપુટ ડેટાને માન્ય કરવા માટેના બે પ્રાથમિક અભિગમો છે. કાળો મતલબ અમાન્ય ડેટા માટે તપાસો અને સફેદ મતલબ માન્ય ડેટા માટે તપાસો. વ્હાઇટલિસ્ટ પ્રાધાન્યક્ષમ છે કારણ કે ચકાસણી દરમિયાન અમે અપેક્ષા રાખીએ છીએ તે જ ડેટા ટ્રાન્સમિટ થાય છે. બદલામાં, બ્લેકલિસ્ટ ફક્ત તમામ સંભવિત ભૂલભરેલા ડેટા વિશે પ્રોગ્રામરોની ધારણાઓને ધ્યાનમાં લે છે, તેથી મૂંઝવણમાં પડવું, કંઈક ચૂકી જવું અથવા ભૂલ કરવી ખૂબ સરળ છે.

    એક સારું ઉદાહરણ એ ટેમ્પલેટમાં અનસ્કેપ્ડ આઉટપુટના સંદર્ભમાં HTML ને સુરક્ષિત બનાવવા માટે રચાયેલ કોઈપણ માન્યતા પ્રક્રિયા છે. જો આપણે બ્લેકલિસ્ટનો ઉપયોગ કરીએ છીએ, તો આપણે તપાસવાની જરૂર છે કે HTML માં ખતરનાક તત્વો, વિશેષતાઓ, શૈલીઓ અને એક્ઝિક્યુટેબલ JavaScript નથી. આ ઘણું કામ છે, અને બ્લેકલિસ્ટ-આધારિત HTML સેનિટાઇઝર્સ હંમેશા ખતરનાક કોડ સંયોજનોને ચૂકી જવાનું મેનેજ કરે છે. અને વ્હાઇટલિસ્ટિંગ ટૂલ્સ માત્ર જાણીતા મંજૂર તત્વો અને વિશેષતાઓને મંજૂરી આપીને આ અસ્પષ્ટતાને દૂર કરે છે. બાકીના બધાને તેઓ જે પણ હોય તેને ધ્યાનમાં લીધા વિના, ફક્ત અલગ, અલગ અથવા દૂર કરવામાં આવશે.

    તેથી ઉચ્ચ સુરક્ષા અને વિશ્વસનીયતાને કારણે કોઈપણ ચકાસણી પ્રક્રિયાઓ માટે વ્હાઇટલિસ્ટ્સ પ્રાધાન્યક્ષમ છે.

    ઇનપુટ ડેટાને સુધારવાનો ક્યારેય પ્રયાસ કરશો નહીં ઇનપુટ ડેટા વેરિફિકેશન ઘણીવાર ફિલ્ટરિંગ સાથે હોય છે. જો ચકાસણી દરમિયાન અમે ફક્ત ડેટાની શુદ્ધતાનું મૂલ્યાંકન કરીએ છીએ (સકારાત્મક અથવા નકારાત્મક પરિણામ આપીને), તો ફિલ્ટરિંગ તપાસવામાં આવતા ડેટામાં ફેરફાર કરે છે જેથી તે ચોક્કસ નિયમોને સંતોષે.

    આ સામાન્ય રીતે કંઈક અંશે હાનિકારક છે. પરંપરાગત ફિલ્ટર્સમાં, ઉદાહરણ તરીકે, ફોન નંબરોમાંથી નંબરો સિવાયના તમામ અક્ષરોને દૂર કરવા (વધારાના કૌંસ અને હાઇફન્સ સહિત) અથવા બિનજરૂરી આડી અથવા ઊભી જગ્યાને ટ્રિમિંગનો સમાવેશ થાય છે. આવી પરિસ્થિતિઓમાં, ડિસ્પ્લે અથવા ટ્રાન્સમિશનમાં ભૂલોને દૂર કરવા માટે ન્યૂનતમ સફાઈ કરવામાં આવે છે. જો કે, તમે દૂષિત ડેટાને અવરોધિત કરવા માટે ફિલ્ટરિંગનો ઉપયોગ કરીને ખૂબ દૂર થઈ શકો છો.

    ઇનપુટ ડેટાને સુધારવાના પ્રયાસનું એક પરિણામ એ છે કે હુમલાખોર તમારા સુધારાની અસરની આગાહી કરી શકે છે. ચાલો કહીએ કે કેટલીક અમાન્ય સ્ટ્રિંગ વેલ્યુ છે. તમે તેને શોધો, તેને કાઢી નાખો અને ફિલ્ટરિંગ સમાપ્ત કરો. જો કોઈ હુમલાખોર તમારા ફિલ્ટરને આઉટવિટ કરવા માટે સ્ટ્રિંગ અલગ કરેલ મૂલ્ય બનાવે તો શું?

    ચેતવણી(document.cookie);
    આ ઉદાહરણમાં, ફક્ત ટેગ દ્વારા ફિલ્ટર કરવાથી કંઈ થશે નહીં: સ્પષ્ટ ટૅગને દૂર કરવાથી ડેટાને HTML સ્ક્રિપ્ટનું સંપૂર્ણપણે માન્ય ઘટક ગણવામાં આવશે. કોઈપણ ચોક્કસ ફોર્મેટ દ્વારા ફિલ્ટરિંગ વિશે પણ એવું જ કહી શકાય. આ બધું સ્પષ્ટપણે બતાવે છે કે શા માટે ઇનપુટ ડેટા તપાસવું એ એપ્લિકેશનનો છેલ્લો સુરક્ષા લૂપ ન હોવો જોઈએ.

    ઇનપુટને ઠીક કરવાનો પ્રયાસ કરવાને બદલે, ફક્ત વ્હાઇટલિસ્ટ-આધારિત વેલિડેટરનો ઉપયોગ કરો અને આવા ઇનપુટ પ્રયાસોને સંપૂર્ણપણે નકારી કાઢો. અને જ્યાં તમારે ફિલ્ટર કરવાની જરૂર હોય, ચેક કરતા પહેલા હંમેશા ફિલ્ટર કરો, પછી ક્યારેય નહીં.

    બાહ્ય માન્યતા સાધનો પર ક્યારેય વિશ્વાસ ન કરો અને નબળાઈઓ માટે સતત દેખરેખ રાખો મેં અગાઉ નોંધ્યું છે કે જ્યારે પણ ડેટાને નવા સંદર્ભમાં સ્થાનાંતરિત કરવામાં આવે ત્યારે માન્યતા જરૂરી છે. આ વેબ એપ્લિકેશનની બહાર કરવામાં આવેલ માન્યતાને પણ લાગુ પડે છે. આમાં બ્રાઉઝરમાં HTML ફોર્મ્સ પર લાગુ કરાયેલ માન્યતા અથવા અન્ય પ્રતિબંધોનો સમાવેશ થાય છે. HTML 5 માંથી આ ફોર્મ જુઓ (લેબલો અવગણવામાં આવ્યા છે):

    પ્રતિનિધિ આયર્લેન્ડ યુનાઇટેડ કિંગડમ
    HTML ફોર્મ દાખલ કરેલ ડેટા પર નિયંત્રણો લાદી શકે છે. તમે નિશ્ચિત વસ્તુઓની સૂચિનો ઉપયોગ કરીને પસંદગીને મર્યાદિત કરી શકો છો, લઘુત્તમ અને મહત્તમ મૂલ્યો સેટ કરી શકો છો અને ટેક્સ્ટની લંબાઈને પણ મર્યાદિત કરી શકો છો. HTML 5 ની શક્યતાઓ વધુ વ્યાપક છે. બ્રાઉઝર્સ URL અને ઈમેલ એડ્રેસ ચેક કરી શકે છે અને તારીખો, નંબરો અને રેન્જને નિયંત્રિત કરી શકે છે (જોકે બાદમાંના બે માટે સપોર્ટ એકદમ સ્પોટી છે). બ્રાઉઝર્સ ટેમ્પલેટ એટ્રિબ્યુટમાં સમાવિષ્ટ JavaScript રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરીને ઇનપુટને માન્ય કરવામાં પણ સક્ષમ છે.

    આ બધા નિયંત્રણો સાથે, એ યાદ રાખવું અગત્યનું છે કે તેમનો હેતુ તમારી એપ્લિકેશનની ઉપયોગિતાને બહેતર બનાવવાનો છે. કોઈપણ હુમલાખોર એક ફોર્મ બનાવવા માટે સક્ષમ છે જેમાં તમારા મૂળ સ્વરૂપના પ્રતિબંધો શામેલ નથી. તમે સ્વચાલિત ફોર્મ ભરવા માટે HTTP ક્લાયંટ પણ બનાવી શકો છો!

    બાહ્ય ચકાસણી સાધનોનું બીજું ઉદાહરણ તૃતીય-પક્ષ API, જેમ કે Twitter માંથી ડેટા પ્રાપ્ત કરવાનું છે. આ સામાજિક નેટવર્કની સારી પ્રતિષ્ઠા છે અને સામાન્ય રીતે કોઈ પ્રશ્ન વિના વિશ્વાસ કરવામાં આવે છે. પરંતુ આપણે પેરાનોઈડ હોવાથી, આપણે ટ્વિટર પર પણ વિશ્વાસ ન કરવો જોઈએ. જો ચેડા કરવામાં આવે, તો તેના પ્રતિસાદોમાં અસુરક્ષિત ડેટા હશે જેના માટે અમે તૈયાર નહીં રહીશું. તેથી, અહીં પણ, તમારા પોતાના ચેકનો ઉપયોગ કરો જેથી કંઇક થાય તો અસુરક્ષિત ન બનો.

    જ્યાં અમને બાહ્ય ચકાસણી સાધનોમાં વિશ્વાસ છે, ત્યાં નબળાઈઓનું નિરીક્ષણ કરવું અનુકૂળ છે. ઉદાહરણ તરીકે, જો HTML ફોર્મ મહત્તમ લંબાઈની મર્યાદા સુયોજિત કરે છે અને અમે ઇનપુટ પ્રાપ્ત કરીએ છીએ જેનું કદ મર્યાદા સુધી પહોંચી ગયું છે, તો તે માનવું તાર્કિક છે કે વપરાશકર્તા ચેકને બાયપાસ કરવાનો પ્રયાસ કરી રહ્યો છે. આ રીતે અમે બાહ્ય સાધનોમાં ઉલ્લંઘનને લૉગ કરી શકીએ છીએ અને ઍક્સેસ અથવા વિનંતીઓની સંખ્યાને મર્યાદિત કરીને સંભવિત હુમલાઓ સામે વધુ પગલાં લઈ શકીએ છીએ.

    PHP માં ટાઇપ કન્વર્ઝન ટાળો PHP એ મજબૂત રીતે ટાઇપ કરેલી ભાષા નથી, અને તેના મોટા ભાગનાં કાર્યો અને કામગીરી ટાઇપ સલામત નથી. આ ગંભીર સમસ્યાઓ તરફ દોરી શકે છે. તદુપરાંત, તે મૂલ્યો નથી જે ખાસ કરીને સંવેદનશીલ હોય છે, પરંતુ માન્યકર્તાઓ. ઉદાહરણ તરીકે:

    ભારપૂર્વક(0 == "0ABC"); // પરત કરે છે TRUE assert(0 == "ABC"); //સાચું પરત કરે છે (શરૂઆતમાં સંખ્યા વિના પણ!) assert(0 === "0ABC"); // NULL પરત કરે છે/ નિવેદનને તપાસવાની અશક્યતા વિશે ચેતવણી આપે છે
    વેલિડેટર્સની રચના કરતી વખતે, ખાતરી કરો કે જ્યારે ઇનપુટ અથવા આઉટપુટ મૂલ્યો સ્ટ્રિંગ હોઈ શકે ત્યારે તમે કડક સરખામણી અને મેન્યુઅલ પ્રકાર રૂપાંતરણનો ઉપયોગ કરો છો. ઉદાહરણ તરીકે, ફોર્મ્સ સ્ટ્રિંગ પરત કરી શકે છે, તેથી જો તમે એવા ડેટા સાથે કામ કરી રહ્યાં છો કે જેને પૂર્ણાંક હોવો જરૂરી છે, તો તેનો પ્રકાર તપાસવાનું નિશ્ચિત કરો:

    ફંક્શન checkIntegerRange($int, $min, $max) ( if (is_string($int) && !ctype_digit($int)) ( return false; // નોન-અંક અક્ષરો ધરાવે છે ) જો (!is_int((int) $int ). $body = file_get_contents("https://api.example.com/search?q=sphinx", false, $context);
    યુપીડી. PHP 5.6+ માં, ssl.verify_peer વિકલ્પ મૂળભૂત રીતે TRUE પર સેટ છે.

    CURL એક્સ્ટેંશનમાં સર્વર ચેક આઉટ બોક્સનો સમાવેશ થાય છે, તેથી તમારે કંઈપણ ગોઠવવાની જરૂર નથી. જો કે, પ્રોગ્રામરો કેટલીકવાર તેમની લાઇબ્રેરીઓ અને એપ્લિકેશનોની સુરક્ષા માટે વિચારહીન અભિગમ અપનાવે છે. આ અભિગમ કોઈપણ પુસ્તકાલયોમાં મળી શકે છે જેના પર તમારી અરજી નિર્ભર રહેશે.

    Curl_setopt(CURLOPT_SSL_VERIFYPEER, false);
    SSL સંદર્ભમાં અથવા curl_setopt() નો ઉપયોગ કરતી વખતે સર્વર વેરિફિકેશનને અક્ષમ કરવાથી મેન-ઇન-ધ-મિડલ હુમલાઓ માટે નબળાઈ આવશે. પરંતુ તે હેરાન કરતી ભૂલોની સમસ્યાને ઉકેલવા માટે ચોક્કસ રીતે અક્ષમ કરવામાં આવે છે જે હુમલો સૂચવે છે અથવા એપ્લીકેશન દ્વારા એવા હોસ્ટનો સંપર્ક કરવાના પ્રયાસો કે જેનું SSL પ્રમાણપત્ર ખોટી રીતે ગોઠવેલું છે અથવા તેની સમયસીમા સમાપ્ત થઈ ગઈ છે.

    વેબ એપ્લિકેશનો ઘણીવાર વપરાશકર્તાની પ્રવૃત્તિ માટે પ્રોક્સી તરીકે કાર્ય કરી શકે છે, જેમ કે Twitter ક્લાયંટ. બ્રાઉઝર્સ દ્વારા નિર્ધારિત ઉચ્ચ ધોરણો માટે અમે અમારી એપ્લિકેશનોને જાળવવાનું ઓછામાં ઓછું કરી શકીએ છીએ જે વપરાશકર્તાઓને ચેતવણી આપે છે અને તેમને શંકાસ્પદ સર્વર્સ સાથે કનેક્ટ થવાથી સુરક્ષિત કરવાનો પ્રયાસ કરે છે.

    તારણો ઘણીવાર અમારી પાસે સુરક્ષિત એપ્લિકેશન બનાવવાની તમામ ક્ષમતાઓ હોય છે. પરંતુ અમે જાતે વિકાસ, ડિબગીંગ અને હેરાન કરતી ભૂલોના આઉટપુટને અક્ષમ કરવા માટે કેટલાક વ્યાજબી પ્રતિબંધોને બાયપાસ કરીએ છીએ. અથવા, સારા ઇરાદાથી, અમે એપ્લિકેશનના તર્કને બિનજરૂરી રીતે જટિલ બનાવવાનો પ્રયાસ કરી રહ્યા છીએ.

    પરંતુ હેકરો તેમની રોટલી પણ નિરર્થક ખાતા નથી. તેઓ અમારી અપૂર્ણ સુરક્ષાને બાયપાસ કરવાની નવી રીતો શોધી રહ્યાં છે અને અમે ઉપયોગ કરીએ છીએ તે મોડ્યુલો અને લાઇબ્રેરીઓમાં નબળાઈઓનો અભ્યાસ કરી રહ્યાં છે. અને જો અમારો ધ્યેય સુરક્ષિત વેબ એપ્લિકેશન બનાવવાનો છે, તો પછી તેમનો હેતુ અમારી સેવાઓ અને ડેટા સાથે ચેડા કરવાનો છે. આખરે, અમે બધા અમારા ઉત્પાદનોને સુધારવા માટે કામ કરીએ છીએ.

    વિભાગમાં નવીનતમ સામગ્રી:

    તમારા સમયગાળા દરમિયાન કબ્રસ્તાનમાં જવું: પરિણામો શું હોઈ શકે?
    તમારા સમયગાળા દરમિયાન કબ્રસ્તાનમાં જવું: પરિણામો શું હોઈ શકે?

    શું લોકો તેમના સમયગાળા દરમિયાન કબ્રસ્તાનમાં જાય છે? અલબત્ત તેઓ કરે છે! તે સ્ત્રીઓ જે પરિણામ વિશે થોડું વિચારે છે, અન્ય વિશ્વની સંસ્થાઓ, સૂક્ષ્મ ...

    વણાટની પેટર્ન થ્રેડો અને વણાટની સોયની પસંદગી
    વણાટની પેટર્ન થ્રેડો અને વણાટની સોયની પસંદગી

    વિગતવાર પેટર્ન અને વર્ણનો સાથે સ્ત્રીઓ માટે ફેશનેબલ ઉનાળાના પુલઓવર મોડેલને ગૂંથવું. તમારા માટે ઘણી વાર નવી વસ્તુઓ ખરીદવી જરૂરી નથી જો તમે...

    ફેશનેબલ રંગીન જેકેટ: ફોટા, વિચારો, નવી વસ્તુઓ, વલણો
    ફેશનેબલ રંગીન જેકેટ: ફોટા, વિચારો, નવી વસ્તુઓ, વલણો

    ઘણા વર્ષોથી, ફ્રેન્ચ હાથ તથા નખની સાજસંભાળ સૌથી સર્વતોમુખી ડિઝાઇનમાંની એક છે, જે કોઈપણ દેખાવ માટે યોગ્ય છે, જેમ કે ઓફિસ શૈલી,...