FixVibe
Covered by FixVibehigh

CORS ការកំណត់មិនត្រឹមត្រូវ៖ ហានិភ័យនៃគោលការណ៍អនុញ្ញាតហួសហេតុ

ZXCVFIXVIBESEG ២ ការចែករំលែកធនធានឆ្លងប្រភពដើម (CORS) គឺជាយន្តការកម្មវិធីរុករកដែលត្រូវបានរចនាឡើងដើម្បីបន្ធូរបន្ថយគោលការណ៍ដើមកំណើតដូចគ្នា (SOP)។ ខណៈពេលដែលចាំបាច់សម្រាប់កម្មវិធីបណ្ដាញទំនើប ការអនុវត្តមិនត្រឹមត្រូវ—ដូចជាការបន្ទរបឋមកថាប្រភពដើមរបស់អ្នកស្នើសុំ ឬការដាក់បញ្ជីសនូវប្រភពដើម 'ទទេ' អាចអនុញ្ញាតឱ្យគេហទំព័រព្យាបាទទាញយកទិន្នន័យឯកជនរបស់អ្នកប្រើប្រាស់។

CWE-942

ផលប៉ះពាល់

ZXCVFIXVIBESEG ៤ អ្នកវាយប្រហារអាចលួចទិន្នន័យរសើប និងផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវពីអ្នកប្រើប្រាស់កម្មវិធីដែលងាយរងគ្រោះ [S2]។ ប្រសិនបើអ្នកប្រើចូលទៅកាន់គេហទំព័រព្យាបាទ ខណៈពេលដែលចូលទៅក្នុងកម្មវិធីដែលងាយរងគ្រោះនោះ គេហទំព័រព្យាបាទអាចបង្កើតសំណើឆ្លងប្រភពទៅកាន់ API របស់កម្មវិធី ហើយអានការឆ្លើយតប [S1][S2] ។ នេះអាចនាំឱ្យមានការលួចព័ត៌មានឯកជន រួមទាំងទម្រង់អ្នកប្រើប្រាស់ លេខសម្ងាត់ CSRF ឬសារឯកជន [S2] ។

ZXCVFIXVIBESEG ៥

មូលហេតុ

ZXCVFIXVIBESEG ៦ CORS គឺជាយន្តការផ្អែកលើបឋមកថា HTTP ដែលអនុញ្ញាតឱ្យម៉ាស៊ីនមេបញ្ជាក់ប្រភពដើម (ដែន គ្រោងការណ៍ ឬច្រក) ត្រូវបានអនុញ្ញាតឱ្យផ្ទុកធនធាន [S1] ។ ភាពងាយរងគ្រោះជាធម្មតាកើតឡើងនៅពេលដែលគោលការណ៍ CORS របស់ម៉ាស៊ីនមេមានភាពបត់បែនពេក ឬអនុវត្តមិនបានល្អ [S2]៖

ZXCVFIXVIBESEG ៧

  • បឋមកថាប្រភពដើមដែលឆ្លុះបញ្ចាំង៖ ម៉ាស៊ីនមេខ្លះអានបឋមកថា Origin ពីសំណើរបស់អតិថិជន ហើយបន្ទរវាត្រឡប់មកវិញនៅក្នុងបឋមកថាឆ្លើយតប Access-Control-Allow-Origin (ACAO) [S2] ។ នេះមានប្រសិទ្ធភាពអនុញ្ញាតឱ្យគេហទំព័រណាមួយចូលប្រើធនធាន [S2] ។

ZXCVFIXVIBESEG ៨

  • អក្សរជំនួសដែលបានកំណត់រចនាសម្ព័ន្ធមិនត្រឹមត្រូវ៖ ខណៈពេលដែលតួអក្សរជំនួស * អនុញ្ញាតឱ្យប្រភពដើមណាមួយចូលប្រើធនធាន វាមិនអាចប្រើសម្រាប់សំណើដែលត្រូវការព័ត៌មានសម្ងាត់ (ដូចជាខូគី ឬបឋមកថាអនុញ្ញាត) [S3] ទេ។ អ្នកអភិវឌ្ឍន៍ជារឿយៗព្យាយាមរំលងវាដោយបង្កើតបឋមកថា ACAO យ៉ាងសកម្មដោយផ្អែកលើសំណើ [S2] ។
  • បញ្ជីស 'ជាមោឃៈ': កម្មវិធីមួយចំនួនដាក់ក្នុងបញ្ជីសប្រភពដើម null ដែលអាចត្រូវបានបង្កឡើងដោយការស្នើសុំប្តូរទិស ឬឯកសារក្នុងតំបន់ ដែលអនុញ្ញាតឱ្យគេហទំព័រព្យាបាទក្លែងបន្លំជាប្រភពដើម null ដើម្បីទទួលបានការចូលប្រើ ZXCVFIXVIBETOKEN2ZBETOKENKCVVIXZ

ZXCVFIXVIBESEG ១០

  • កំហុសក្នុងការញែក៖ កំហុសក្នុងការផ្គូផ្គង regex ឬខ្សែអក្សរ នៅពេលផ្ទៀងផ្ទាត់បឋមកថា Origin អាចអនុញ្ញាតឱ្យអ្នកវាយប្រហារប្រើដែនដូចជា trusted-domain.com.attacker.com [S2] ។

ZXCVFIXVIBESEG ១១ វាជាការសំខាន់ក្នុងការកត់សម្គាល់ថា CORS មិនមែនជាការការពារប្រឆាំងនឹងការក្លែងបន្លំការស្នើសុំឆ្លងគេហទំព័រ (CSRF) [S2] ទេ។

ZXCVFIXVIBESEG ១២

ជួសជុលបេតុង

ZXCVFIXVIBESEG ១៣

  • ប្រើបញ្ជីសឋិតិវន្ត៖ ជៀសវាងការបង្កើតបឋមកថា Access-Control-Allow-Origin ពីបឋមកថា Origin របស់សំណើ [S2] ។ ជំនួសមកវិញ សូមប្រៀបធៀបប្រភពដើមនៃសំណើនេះជាមួយនឹងបញ្ជី hardcoded នៃដែនដែលអាចទុកចិត្តបាន [S3] ។
  • ជៀសវាងប្រភពដើម 'ទទេ'៖ កុំរួមបញ្ចូល null នៅក្នុងបញ្ជីសរបស់អ្នកនៃប្រភពដើមដែលបានអនុញ្ញាត [S2] ។

ZXCVFIXVIBESEG ១៥

  • ដាក់កម្រិតការបញ្ជាក់អត្តសញ្ញាណ៖ កំណត់ Access-Control-Allow-Credentials: true តែប៉ុណ្ណោះ ប្រសិនបើចាំបាច់សម្រាប់អន្តរកម្មឆ្លងប្រភពជាក់លាក់ [S3] ។
  • ប្រើសុពលភាពត្រឹមត្រូវ៖ ប្រសិនបើអ្នកត្រូវតែគាំទ្រប្រភពដើមច្រើន ត្រូវប្រាកដថាតក្កវិជ្ជាសុពលភាពសម្រាប់បឋមកថា Origin មានភាពរឹងមាំ ហើយមិនអាចឆ្លងកាត់ដែនរង ឬដែនដែលមើលទៅស្រដៀងគ្នា [S2] បានទេ។

របៀបដែល FixVibe ធ្វើតេស្តសម្រាប់វា។

ZXCVFIXVIBESEG ១៨ FixVibe ឥឡូវនេះរួមបញ្ចូលវាជាការត្រួតពិនិត្យសកម្ម។ បន្ទាប់ពីការផ្ទៀងផ្ទាត់ដែន active.cors ផ្ញើសំណើ API ដែលមានប្រភពដើមដូចគ្នាទៅនឹងអ្នកវាយប្រហារសំយោគ ហើយពិនិត្យមើលបឋមកថាការឆ្លើយតប CORS ។ របាយការណ៍នេះបានឆ្លុះបញ្ចាំងពីប្រភពដើមតាមអំពើចិត្ត អក្សរជំនួសដែលបញ្ជាក់អត្តសញ្ញាណ CORS និង CORS បើកចំហរនៅលើចំណុចបញ្ចប់ API ដែលមិនសាធារណៈ ខណៈពេលដែលជៀសវាងសំឡេងរំខានពីទ្រព្យសម្បត្តិសាធារណៈ។