தமிழ்

உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) குறுக்கு-தள ஸ்கிரிப்டிங் (XSS) தாக்குதல்களை எவ்வாறு திறம்பட குறைக்கிறது, உலகளாவிய பார்வையாளர்களுக்கான இணைய பாதுகாப்பை மேம்படுத்துகிறது என்பதை அறிக.

உள்ளடக்க பாதுகாப்பு கொள்கை (CSP): XSS தடுப்புக்கான விரிவான வழிகாட்டி

இன்றைய டிஜிட்டல் உலகில், இணைய பாதுகாப்பு மிக முக்கியமானது. குறுக்கு-தள ஸ்கிரிப்டிங் (XSS) தாக்குதல்கள் உலகளவில் வலை பயன்பாடுகளுக்கு ஒரு பரவலான மற்றும் ஆபத்தான அச்சுறுத்தலாக இருக்கின்றன. உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) என்பது ஒரு சக்திவாய்ந்த HTTP பதில் தலைப்பு ஆகும், இது கூடுதல் பாதுகாப்பு அடுக்கை வழங்குகிறது, இது XSS பாதிப்புகளின் அபாயத்தை குறைக்க உதவுகிறது. இந்த வழிகாட்டி CSP, அதன் செயலாக்கம் மற்றும் XSS தாக்குதல்களிலிருந்து உங்கள் வலை பயன்பாடுகளைப் பாதுகாப்பதற்கான சிறந்த நடைமுறைகள் பற்றிய விரிவான கண்ணோட்டத்தை வழங்குகிறது.

குறுக்கு-தள ஸ்கிரிப்டிங் (XSS) என்றால் என்ன?

குறுக்கு-தள ஸ்கிரிப்டிங் (XSS) என்பது ஒரு வகை ஊடுருவல் தாக்குதல் ஆகும், அங்கு தீங்கிழைக்கும் ஸ்கிரிப்டுகள் மற்றபடி பாதிப்பில்லாத மற்றும் நம்பகமான வலைத்தளங்களில் செலுத்தப்படுகின்றன. ஒரு தாக்குதல் செய்பவர் ஒரு வலை பயன்பாட்டைப் பயன்படுத்தி தீங்கிழைக்கும் குறியீட்டை அனுப்பும்போது XSS தாக்குதல்கள் நிகழ்கின்றன, பொதுவாக ஒரு உலாவி பக்க ஸ்கிரிப்ட் வடிவில், ஒரு வித்தியாசமான இறுதி பயனருக்கு. இந்த தாக்குதல்கள் வெற்றிகரமாக நடைபெற அனுமதிக்கும் குறைபாடுகள் மிகவும் பரவலாக உள்ளன மற்றும் ஒரு வலை பயன்பாடு அதை சரிபார்க்காமல் அல்லது குறியாக்கம் செய்யாமல் அது உருவாக்கும் வெளியீட்டில் ஒரு பயனரின் உள்ளீட்டை எங்கு பயன்படுத்தினாலும் நிகழ்கிறது.

XSS தாக்குதல்களில் மூன்று முக்கிய வகைகள் உள்ளன:

XSS தாக்குதல்கள் கடுமையான விளைவுகளை ஏற்படுத்தக்கூடும், அவற்றுள்:

உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) என்றால் என்ன?

உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) என்பது பாதுகாப்பின் கூடுதல் அடுக்கு ஆகும், இது குறுக்கு-தள ஸ்கிரிப்டிங் (XSS) மற்றும் தரவு ஊடுருவல் தாக்குதல்கள் உட்பட சில வகையான தாக்குதல்களைக் கண்டறிந்து குறைக்க உதவுகிறது. ஒரு குறிப்பிட்ட பக்கத்திற்கு உலாவி ஏற்ற அனுமதிக்கப்படும் ஆதாரங்களை (எ.கா., ஸ்கிரிப்டுகள், ஸ்டைல்ஷீட்கள், படங்கள், எழுத்துருக்கள், பிரேம்கள்) கட்டுப்படுத்த உங்களை அனுமதிக்கும் HTTP பதில் தலைப்பைப் பயன்படுத்தி CSP செயல்படுத்தப்படுகிறது. கடுமையான CSP ஐ வரையறுப்பதன் மூலம், உங்கள் வலை பயன்பாட்டின் தாக்குதல் மேற்பரப்பை கணிசமாகக் குறைக்கலாம் மற்றும் தீங்கிழைக்கும் குறியீட்டை செலுத்த தாக்குதல் செய்பவர்களுக்கு மிகவும் கடினமாக்கலாம்.

உலாவி ஆதாரங்களை ஏற்ற அனுமதிக்கப்படும் ஆதாரங்களின் வெள்ளைப்பட்டியலை வரையறுப்பதன் மூலம் CSP செயல்படுகிறது. CSP இல் வெளிப்படையாக அனுமதிக்கப்படாத ஒரு மூலத்திலிருந்து ஏற்றப்படும் எந்த ஆதாரமும் உலாவியால் தடுக்கப்படும். இது அங்கீகரிக்கப்படாத ஸ்கிரிப்டுகளின் செயல்பாட்டைத் தடுக்கிறது மற்றும் XSS தாக்குதல்களின் அபாயத்தைக் குறைக்கிறது.

CSP எவ்வாறு செயல்படுகிறது: உத்தரவுகள் மற்றும் ஆதாரங்கள்

CSP ஆனது தொடர்ச்சியான உத்தரவுகளைப் பயன்படுத்தி கட்டமைக்கப்படுகிறது, ஒவ்வொன்றும் ஒரு குறிப்பிட்ட வகை ஆதாரத்திற்கான கொள்கையை குறிப்பிடுகிறது. ஒவ்வொரு உத்தரவும் ஒரு பெயரைத் தொடர்ந்து அனுமதிக்கப்பட்ட ஆதாரங்களின் பட்டியலைக் கொண்டுள்ளது. மிகவும் பொதுவாகப் பயன்படுத்தப்படும் CSP உத்தரவுகள் சில இங்கே:

பொதுவாகப் பயன்படுத்தப்படும் மூல மதிப்புகள் பின்வருமாறு:

CSP ஐ செயல்படுத்துதல்

CSP ஐ இரண்டு முதன்மை வழிகளில் செயல்படுத்தலாம்:

  1. HTTP தலைப்பு: `Content-Security-Policy` HTTP பதில் தலைப்பை அனுப்ப உங்கள் வலை சேவையகத்தை உள்ளமைக்க விருப்பமான முறை உள்ளது. இது உங்கள் வலைத்தளத்தில் உள்ள ஒவ்வொரு பக்கம் அல்லது ஆதாரத்திற்கும் CSP ஐ வரையறுக்க உங்களை அனுமதிக்கிறது.
  2. <meta> குறிச்சொல்: உங்கள் HTML ஆவணத்தின் <head> பிரிவில் உள்ள <meta> குறிச்சொல்லைப் பயன்படுத்தி CSP ஐ வரையறுக்கலாம். இருப்பினும், இந்த முறை குறைவான நெகிழ்வானது மற்றும் HTTP தலைப்பைப் பயன்படுத்துவதை விட வரம்புகளைக் கொண்டுள்ளது. உதாரணமாக, `frame-ancestors`, `sandbox`, மற்றும் `report-uri` உத்தரவுகளை HTML மெட்டா குறிச்சொற்களில் பயன்படுத்த முடியாது.

HTTP தலைப்பைப் பயன்படுத்துதல்

HTTP தலைப்பைப் பயன்படுத்தி CSP ஐ செயல்படுத்த, உங்கள் வலை சேவையகத்தை அதன் பதில்களில் `Content-Security-Policy` தலைப்பைச் சேர்க்கும்படி கட்டமைக்க வேண்டும். நீங்கள் பயன்படுத்தும் வலை சேவையகத்தைப் பொறுத்து குறிப்பிட்ட கட்டமைப்பு படிகள் மாறுபடும்.

பொதுவான வலை சேவையகங்களுக்கான எடுத்துக்காட்டுகள் இங்கே:

<meta> குறிச்சொல்லைப் பயன்படுத்துதல்

<meta> குறிச்சொல்லைப் பயன்படுத்தி CSP ஐ செயல்படுத்த, உங்கள் HTML ஆவணத்தின் <head> பிரிவில் பின்வரும் குறிச்சொல்லைச் சேர்க்கவும்:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://example.com; style-src 'self' https://example.com; img-src 'self' data:;">

முக்கியமான கருத்தில் கொள்ள வேண்டியவை:

CSP எடுத்துக்காட்டுகள்

விளக்கங்களுடன் கூடிய பல CSP எடுத்துக்காட்டுகள் இங்கே:

  1. அடிப்படை CSP:
  2. Content-Security-Policy: default-src 'self';

    இந்தக் கொள்கை அதே மூலத்திலிருந்து ஆதாரங்களை மட்டும் அனுமதிக்கிறது.

  3. ஒரு குறிப்பிட்ட களத்திலிருந்து ஸ்கிரிப்டுகளை அனுமதித்தல்:
  4. Content-Security-Policy: default-src 'self'; script-src 'self' https://example.com;

    இந்தக் கொள்கை அதே மூலத்திலிருந்தும் `https://example.com` இலிருந்து ஸ்கிரிப்டுகளையும் அனுமதிக்கிறது.

  5. CDN இலிருந்து ஸ்டைல்களை அனுமதித்தல்:
  6. Content-Security-Policy: default-src 'self'; style-src 'self' https://cdn.example.com;

    இந்தக் கொள்கை அதே மூலத்திலிருந்தும் `https://cdn.example.com` இலிருந்து ஸ்டைல்களையும் அனுமதிக்கிறது.

  7. எந்த மூலத்திலிருந்தும் படங்களை அனுமதித்தல்:
  8. Content-Security-Policy: default-src 'self'; img-src *;

    இந்தக் கொள்கை அதே மூலத்திலிருந்தும் எந்த மூலத்திலிருந்தும் படங்களையும் அனுமதிக்கிறது (உற்பத்திக்கு பரிந்துரைக்கப்படவில்லை).

  9. CSP மீறல்களைப் புகாரளித்தல்:
  10. Content-Security-Policy: default-src 'self'; report-uri /csp-report-endpoint;

    இந்தக் கொள்கை அதே மூலத்திலிருந்து ஆதாரங்களை அனுமதிக்கிறது மற்றும் `/csp-report-endpoint` க்கு மீறல் அறிக்கைகளை அனுப்புகிறது. `report-uri` க்கு பதிலாக `report-to` ஐப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது.

  11. இணக்கத்தன்மைக்கு `report-to` மற்றும் `report-uri` ஐ ஒன்றாகப் பயன்படுத்துதல்:
  12. Content-Security-Policy: default-src 'self'; report-uri /csp-report-endpoint; report-to csp-endpoint;
    Content-Security-Policy-Report-Only: default-src 'self'; report-uri /csp-report-endpoint; report-to csp-endpoint;
    Report-To: {"group":"csp-endpoint","max_age":10886400,"endpoints":[{"url":"/csp-report-endpoint"}]}

    இந்த எடுத்துக்காட்டு `report-uri` (பழைய உலாவிகளுக்கு) மற்றும் `report-to` இறுதிப்புள்ளி இரண்டையும் அமைப்பதைக் காட்டுகிறது, அதனுடன் `Report-To` தலைப்பை தானே கட்டமைக்கிறது. உங்கள் சேவையகம் `Report-To` தலைப்பை சரியாக கையாளுகிறதா என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள், `group`, `max_age` மற்றும் `endpoints` ஐ சரியாக அமைத்தல்.

  13. வரிசை ஸ்கிரிப்டுகளுக்கான Nonceகளைப் பயன்படுத்துதல்:
  14. Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-rAnd0mN0nc3Str1nG';

    இந்தக் கொள்கை அதே மூலத்திலிருந்து ஆதாரங்களையும், பொருந்தும் nonce பண்புக்கூறு கொண்ட வரிசை ஸ்கிரிப்டுகளையும் அனுமதிக்கிறது.

    <script nonce="rAnd0mN0nc3Str1nG">
      // உங்கள் வரிசை ஸ்கிரிப்ட் குறியீடு இங்கே
    </script>

அறிக்கை-மட்டும் பயன்முறையில் CSP

CSP ஐ இரண்டு முறைகளில் செயல்படுத்தலாம்:

நிறைவேற்றுவதற்கு முன் உங்கள் CSP ஐச் சோதித்துச் செம்மைப்படுத்த அறிக்கை-மட்டும் முறை பயனுள்ளதாக இருக்கும். அறிக்கை-மட்டும் பயன்முறையை இயக்க, `Content-Security-Policy` தலைப்புக்குப் பதிலாக `Content-Security-Policy-Report-Only` HTTP தலைப்பைப் பயன்படுத்தவும்.

உதாரணம்:

Content-Security-Policy-Report-Only: default-src 'self'; report-uri /csp-report-endpoint;

இந்த கட்டமைப்பு எந்த ஆதாரத்தையும் தடுக்காமல் `/csp-report-endpoint` க்கு அறிக்கைகளை அனுப்பும்.

CSP ஐ செயல்படுத்துவதற்கான சிறந்த நடைமுறைகள்

CSP ஐ திறம்பட செயல்படுத்துவதற்கான சில சிறந்த நடைமுறைகள் இங்கே:

  1. கடுமையான கொள்கையுடன் தொடங்கவும்: அதே மூலத்திலிருந்து ஆதாரங்களை மட்டும் அனுமதிக்கும் கட்டுப்பாடான கொள்கையுடன் தொடங்கி, தேவைக்கேற்ப படிப்படியாக அதை தளர்த்தவும்.
  2. வரிசை ஸ்கிரிப்டுகள் மற்றும் ஸ்டைல்களுக்கு Nonce அல்லது ஹேஷ்களைப் பயன்படுத்தவும்: `'unsafe-inline'` ஐப் பயன்படுத்துவதைத் தவிர்க்கவும் மற்றும் குறிப்பிட்ட வரிசை ஸ்கிரிப்டுகள் மற்றும் ஸ்டைல்களை அனுமதிக்க nonce அல்லது ஹேஷ்களைப் பயன்படுத்தவும்.
  3. `'unsafe-eval'` ஐத் தவிர்க்கவும்: முடிந்தால், `'unsafe-eval'` ஐப் பயன்படுத்துவதைத் தவிர்க்கவும், ஏனெனில் இது பாதுகாப்பு அபாயங்களை அறிமுகப்படுத்தக்கூடும். மாறும் குறியீடு இயக்கத்திற்கான மாற்று அணுகுமுறைகளைக் கவனியுங்கள்.
  4. HTTPS ஐப் பயன்படுத்தவும்: நடுவில் உள்ள மனிதன் தாக்குதல்களைத் தடுக்க அனைத்து ஆதாரங்களும் HTTPS இல் ஏற்றப்படுவதை உறுதிசெய்யவும். பாதுகாப்பற்ற கோரிக்கைகளை தானாக மேம்படுத்த `upgrade-insecure-requests` உத்தரவைப் பயன்படுத்தவும்.
  5. CSP மீறல்களை கண்காணிக்கவும்: CSP மீறல்களைக் கண்காணிக்கவும், சாத்தியமான பாதுகாப்பு சிக்கல்களைக் கண்டறியவும் ஒரு அறிக்கையிடும் இறுதிப்புள்ளியை அமைக்கவும்.
  6. உங்கள் CSP ஐ முழுமையாகச் சோதிக்கவும்: அது எதிர்பார்த்தபடி செயல்படுகிறதா என்பதை உறுதிப்படுத்த வெவ்வேறு உலாவிகள் மற்றும் சூழல்களில் உங்கள் CSP ஐச் சோதிக்கவும்.
  7. திரும்பத் திரும்பச் செம்மைப்படுத்தவும்: CSP செயல்படுத்தல் ஒரு தொடர்ச்சியான செயல்முறையாகும். உங்கள் பயன்பாடு உருவாகும்போது உங்கள் CSP ஐ தொடர்ந்து கண்காணிக்கவும் செம்மைப்படுத்தவும்.
  8. `strict-dynamic` உத்தரவைக் கவனியுங்கள்: நம்பகமான ஸ்கிரிப்டுகளால் ஏற்றப்பட்ட ஸ்கிரிப்டுகளுக்கு நம்பிக்கையை பரப்புவதன் மூலம் உங்கள் CSP இன் சிக்கலைக் குறைக்க `strict-dynamic` ஐப் பயன்படுத்தவும்.

CSP க்கான கருவிகள்

CSP ஐ உருவாக்க, சோதிக்க மற்றும் கண்காணிக்க உதவும் பல கருவிகள் உள்ளன:

CSP மற்றும் கட்டமைப்புகள்/நூலகங்கள்

கட்டமைப்புகளையும் நூலகங்களையும் பயன்படுத்தும் போது, இணக்கத்தன்மையை உறுதிப்படுத்தவும் பாதுகாப்பு சிக்கல்களைத் தடுக்கவும் CSP ஐ சரியாக உள்ளமைப்பது முக்கியம். சில கருத்தில் கொள்ள வேண்டியவை இங்கே:

CSP மற்றும் CDNs (உள்ளடக்க விநியோக நெட்வொர்க்குகள்)

JavaScript கோப்புகள், CSS ஸ்டைல்ஷீட்கள் மற்றும் படங்கள் போன்ற நிலையான சொத்துக்களை ஹோஸ்ட் செய்ய CDNs பொதுவாகப் பயன்படுத்தப்படுகின்றன. உங்கள் CSP இல் CDN களில் இருந்து ஆதாரங்களை அனுமதிக்க, நீங்கள் CDN களங்களை வெளிப்படையாக வெள்ளைப்பட்டியலில் சேர்க்க வேண்டும்.

உதாரணம்:

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; style-src 'self' https://cdnjs.cloudflare.com;

இந்தக் கொள்கை jsDelivr இலிருந்து ஸ்கிரிப்டுகளையும், Cloudflare இன் cdnjs இலிருந்து ஸ்டைல்களையும் அனுமதிக்கிறது.

தவிர்க்க வேண்டிய பொதுவான CSP தவறுகள்

தவிர்க்க வேண்டிய சில பொதுவான CSP தவறுகள் இங்கே:

மேம்பட்ட CSP கருத்துக்கள்

அடிப்படைகளுக்கு அப்பால், பல மேம்பட்ட CSP கருத்துக்கள் உங்கள் இணைய பாதுகாப்பை மேலும் மேம்படுத்தலாம்:

CSP இன் எதிர்காலம்

புதிய பாதுகாப்பு சவால்களை எதிர்கொள்ள CSP தொடர்ந்து உருவாகி வருகிறது. எதிர்கால மேம்பாடுகளில் பின்வருவன அடங்கும்:

முடிவுரை

உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) என்பது XSS தாக்குதல்களைக் குறைப்பதற்கும் இணைய பாதுகாப்பை மேம்படுத்துவதற்கும் ஒரு சக்திவாய்ந்த கருவியாகும். கடுமையான CSP ஐ வரையறுப்பதன் மூலம், உங்கள் வலை பயன்பாட்டின் தாக்குதல் மேற்பரப்பை கணிசமாகக் குறைக்கலாம் மற்றும் உங்கள் பயனர்களை தீங்கிழைக்கும் குறியீட்டிலிருந்து பாதுகாக்கலாம். CSP ஐ திறம்பட செயல்படுத்த கவனமாக திட்டமிடல், முழுமையான சோதனை மற்றும் தொடர்ச்சியான கண்காணிப்பு தேவைப்படுகிறது. இந்த வழிகாட்டியில் கோடிட்டுக் காட்டப்பட்டுள்ள சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், உங்கள் வலை பயன்பாடுகளின் பாதுகாப்பு நிலையை மேம்படுத்தவும், உலகளாவிய டிஜிட்டல் சுற்றுச்சூழல் அமைப்பில் உங்கள் ஆன்லைன் இருப்பைப் பாதுகாக்கவும் CSP ஐப் பயன்படுத்தலாம்.

வளர்ந்து வரும் பாதுகாப்பு அச்சுறுத்தல்களுக்கு ஏற்றவாறு உங்கள் CSP ஐ தவறாமல் மதிப்பாய்வு செய்து புதுப்பிக்க நினைவில் கொள்ளுங்கள், மேலும் உங்கள் வலை பயன்பாடுகள் பாதுகாக்கப்படுவதை உறுதிப்படுத்தவும்.