Қоғамдық пішін жіберілімдерін жеке желіге қалай импорттау керек
Бір қоғамдық пішін жіберілімін қабылдау жазбасынан жеке импорттаушыға дейін қадағалап, тексеру, тіркелгі деректері мен қайта әрекетті дұрыс жақта ұстаңыз.
Жеке желімен ешқашан сөйлеспейтін қоғамдық пішін бәрібір жеке желі бағалауға тиіс деректерді шығарады. Туннель тек кім кімге қоңырау шалатынын өзгертеді. Жүктеуден кейінгі барлық нәрсе — импорт шешімі және ол жеке жаққа тиесілі. Бұл шолу бір жіберілімді браузерден ішкі жазбаға дейін қадағалайды.
Жіберілім қайда түсетінінен бастаңыз
Браузер қоғамдық соңғы нүктеге сұраныс жібереді, ол бақыланатын қабылдау қоймасына жол жазады және растаудан басқа ештеңе қайтармайды. Бұл қойма — тапсыру нүктесі және ол қоғамдық деңгей жаза алатын жалғыз нәрсе болуы керек. Шикі деректерді сол жерде өзгеріссіз, келген уақытымен және тұрақты жазба идентификаторымен бірге сақтаңыз.
Содан кейін жеке жұмысшы туннель арқылы күтудегі жолдарды тартып алады және олардың әрқайсысымен не істеу керектігін шешеді. Ол өз идентификациясымен жұмыс істейді, бұл келесі бөлімнің тақырыбы.
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
Алғашқы екі жол әртүрлі ішкі күйде аяқталуы керек, ал үшіншісі екіншісін жасаудың орнына сол бастапқы жазба үшін бұрыннан бекітілген идентификаторды қайтаруы тиіс. Кез келген басқа нәтиже импорттың әлі қайталануға келмейтінін білдіреді.