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

સબમિશન જ્યાં ઉતરે છે ત્યાંથી શરૂ કરો

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

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

curl --silent --fail \
  --cert /etc/importer/client.crt --key /etc/importer/client.key \
  "https://intake.corp.internal/api/pending?limit=20" \
  -o /var/lib/importer/pending.json

ઇમ્પોર્ટરને ફક્ત જરૂરી અધિકાર આપો

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

વર્કર કયા સ્રોતમાંથી વાંચી શકે તે પણ મર્યાદિત કરો. જો અમલીકરણ કતાર અથવા ટ્રાન્સફર સેવા વાપરે છે, તો એ સેવા પોતાની પ્રમાણીકરણ અને ઍક્સેસ નીતિ રાખે છે, કારણ કે VPN પેલોડની અંદર કંઈ પણ પ્રમાણિત કરતું નથી.

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

અંદર કંઈ બદલાય તે પહેલાં માન્યતા ચકાસો

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

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

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

એક જ ક્રિયા પર ફરી પ્રયાસનું સ્થળ બનાવો

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

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

પછી ત્રણ પરીક્ષણ ફાઇલોથી તે સાબિત કરો: એક માન્ય પંક્તિ, એક વિકૃત પંક્તિ અને એ જ નિયંત્રિત સ્રોત ઓળખકર્તા બે વાર પહોંચાડેલો. દરેક વર્કર જે એન્ડપોઇન્ટ વાપરે છે તેમાંથી જ પસાર થાય છે.

for f in fixtures/valid-submission.json fixtures/bad-date.json; do
  curl --silent --fail --cert /etc/importer/client.crt \
    -X POST --data @"$f" https://intake.corp.internal/api/records
done
curl --silent --fail --cert /etc/importer/client.crt \
  -X POST --data @fixtures/valid-submission.json https://intake.corp.internal/api/records

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

સંબંધિત લેખો