உள்ளடக்கப் பாதுகாப்புக் கொள்கையை (CSP) ஆராயுங்கள், இது XSS தாக்குதல்கள் மற்றும் பிற பாதுகாப்பு பாதிப்புகளிலிருந்து வலைத்தளங்களைப் பாதுகாக்க உதவும் ஒரு சக்திவாய்ந்த உலாவி பாதுகாப்பு பொறிமுறையாகும்.
உலாவி பாதுகாப்பு: உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) பற்றிய ஒரு ஆழமான பார்வை
இன்றைய வலை சூழலில், பாதுகாப்பு மிக முக்கியமானது. வலைத்தளங்கள் கிராஸ்-சைட் ஸ்கிரிப்டிங் (XSS), தரவு உட்செலுத்துதல் மற்றும் கிளிக்ஜாக்கிங் உள்ளிட்ட சாத்தியமான தாக்குதல்களின் தொடர்ச்சியான முற்றுகையை எதிர்கொள்கின்றன. இந்த அச்சுறுத்தல்களுக்கு எதிரான மிகச் சிறந்த பாதுகாப்புகளில் ஒன்று உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) ஆகும். இந்த கட்டுரை CSP-க்கு ஒரு விரிவான வழிகாட்டியை வழங்குகிறது, அதன் நன்மைகள், செயல்படுத்தல் மற்றும் உங்கள் வலைப் பயன்பாடுகளைப் பாதுகாப்பதற்கான சிறந்த நடைமுறைகளை ஆராய்கிறது.
உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) என்றால் என்ன?
உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) என்பது ஒரு கூடுதல் பாதுகாப்பு அடுக்கு ஆகும், இது கிராஸ்-சைட் ஸ்கிரிப்டிங் (XSS) மற்றும் தரவு உட்செலுத்துதல் தாக்குதல்கள் உள்ளிட்ட சில வகை தாக்குதல்களைக் கண்டறிந்து தணிக்க உதவுகிறது. இந்த தாக்குதல்கள் தரவு திருட்டு முதல் தளத்தை சிதைப்பது வரை மால்வேர் விநியோகம் வரை எல்லாவற்றிற்கும் பயன்படுத்தப்படுகின்றன.
CSP என்பது அடிப்படையில் ஒரு வெள்ளைப்பட்டியல் ஆகும், இது எந்த உள்ளடக்க மூலங்கள் ஏற்றுவதற்கு பாதுகாப்பானவை என்று உலாவிக்குச் சொல்கிறது. ஒரு கடுமையான கொள்கையை வரையறுப்பதன் மூலம், வெளிப்படையாக அங்கீகரிக்கப்படாத மூலங்களிலிருந்து எந்தவொரு உள்ளடக்கத்தையும் புறக்கணிக்க நீங்கள் உலாவிக்கு அறிவுறுத்துகிறீர்கள், இது பல XSS தாக்குதல்களை திறம்பட நடுநிலையாக்குகிறது.
CSP ஏன் முக்கியமானது?
CSP பல முக்கியமான நன்மைகளை வழங்குகிறது:
- XSS தாக்குதல்களைத் தணிக்கிறது: உலாவி உள்ளடக்கத்தை ஏற்றக்கூடிய மூலங்களைக் கட்டுப்படுத்துவதன் மூலம், CSP XSS தாக்குதல்களின் அபாயத்தை வியத்தகு முறையில் குறைக்கிறது.
- கிளிக்ஜாக்கிங் பாதிப்புகளைக் குறைக்கிறது: ஒரு வலைத்தளத்தை எவ்வாறு ஃபிரேம் செய்யலாம் என்பதைக் கட்டுப்படுத்துவதன் மூலம் கிளிக்ஜாக்கிங் தாக்குதல்களைத் தடுக்க CSP உதவும்.
- HTTPS-ஐ செயல்படுத்துகிறது: அனைத்து ஆதாரங்களும் HTTPS மூலம் ஏற்றப்படுவதை CSP உறுதிசெய்யும், இது மேன்-இன்-தி-மிடில் தாக்குதல்களைத் தடுக்கிறது.
- நம்பகத்தன்மையற்ற உள்ளடக்கத்தின் தாக்கத்தைக் குறைக்கிறது: உங்கள் பக்கத்தில் நம்பகத்தன்மையற்ற உள்ளடக்கம் எப்படியாவது உட்செலுத்தப்பட்டாலும், தீங்கு விளைவிக்கும் ஸ்கிரிப்ட்களை இயக்குவதிலிருந்து CSP அதைத் தடுக்கலாம்.
- அறிக்கையிடலை வழங்குகிறது: மீறல்களைப் புகாரளிக்க CSP-ஐ உள்ளமைக்கலாம், இது உங்கள் பாதுகாப்புக் கொள்கையைக் கண்காணிக்கவும் செம்மைப்படுத்தவும் உங்களை அனுமதிக்கிறது.
CSP எவ்வாறு செயல்படுகிறது
உங்கள் வலைப்பக்கங்களில் ஒரு HTTP மறுமொழி தலைப்பு அல்லது ஒரு <meta> குறிச்சொல்லைச் சேர்ப்பதன் மூலம் CSP செயல்படுகிறது. இந்த தலைப்பு/குறிச்சொல், ஆதாரங்களை ஏற்றும்போது உலாவி செயல்படுத்த வேண்டிய ஒரு கொள்கையை வரையறுக்கிறது. இந்தக் கொள்கை தொடர்ச்சியான வழிகாட்டுதல்களைக் கொண்டுள்ளது, ஒவ்வொன்றும் ஒரு குறிப்பிட்ட வகை ஆதாரத்திற்கான (எ.கா., ஸ்கிரிப்டுகள், ஸ்டைல்ஷீட்கள், படங்கள், எழுத்துருக்கள்) அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது.
பின்னர், அனுமதிக்கப்பட்ட மூலங்களுடன் பொருந்தாத எந்த ஆதாரங்களையும் தடுப்பதன் மூலம் உலாவி இந்தக் கொள்கையைச் செயல்படுத்துகிறது. ஒரு மீறல் ஏற்படும் போது, உலாவி விருப்பமாக அதை ஒரு குறிப்பிட்ட URL-க்கு புகாரளிக்கலாம்.
CSP வழிகாட்டுதல்கள்: ஒரு விரிவான கண்ணோட்டம்
CSP வழிகாட்டுதல்கள் கொள்கையின் மையமாகும், இது பல்வேறு வகையான ஆதாரங்களுக்கான அனுமதிக்கப்பட்ட மூலங்களை வரையறுக்கிறது. இங்கே மிகவும் பொதுவான மற்றும் அத்தியாவசியமான வழிகாட்டுதல்களின் ஒரு முறிவு உள்ளது:
default-src
: இந்த வழிகாட்டுதல் மற்ற வழிகாட்டுதல்களால் வெளிப்படையாகக் குறிப்பிடப்படாத அனைத்து வகையான ஆதாரங்களுக்கும் இயல்புநிலை மூலத்தை வரையறுக்கிறது. இது ஒரு அடிப்படை CSP கொள்கைக்கான நல்ல தொடக்கப் புள்ளியாகும். `script-src` போன்ற ஒரு குறிப்பிட்ட வழிகாட்டுதல் வரையறுக்கப்பட்டால், அது ஸ்கிரிப்ட்களுக்கான `default-src` வழிகாட்டுதலை மீறுகிறது.script-src
: ஜாவாஸ்கிரிப்டிற்கான அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது. இது XSS தாக்குதல்களைத் தடுப்பதற்கான மிக முக்கியமான வழிகாட்டுதல்களில் ஒன்றாகும்.style-src
: CSS ஸ்டைல்ஷீட்களுக்கான அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது.img-src
: படங்களுக்கான அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது.font-src
: எழுத்துருக்களுக்கான அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது.media-src
: <audio>, <video> மற்றும் <track> கூறுகளுக்கான அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது.object-src
: <object>, <embed>, மற்றும் <applet> கூறுகளுக்கான அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது. குறிப்பு: இந்த கூறுகள் பெரும்பாலும் பாதுகாப்பு பாதிப்புகளின் ஆதாரமாக இருக்கின்றன, மேலும் முடிந்தால் இதை 'none' என்று அமைப்பது பரிந்துரைக்கப்படுகிறது.frame-src
: <iframe> கூறுகளுக்கான அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது.connect-src
: XMLHttpRequest, WebSocket மற்றும் EventSource இணைப்புகளுக்கான அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது. உங்கள் வலைத்தளம் எங்கு தரவை அனுப்ப முடியும் என்பதைக் கட்டுப்படுத்துவதற்கு இது முக்கியமானது.base-uri
: ஆவணத்திற்கான அனுமதிக்கப்பட்ட அடிப்படை URL-ஐக் குறிப்பிடுகிறது.form-action
: படிவங்கள் சமர்ப்பிக்கக்கூடிய அனுமதிக்கப்பட்ட URL-களைக் குறிப்பிடுகிறது.frame-ancestors
: தற்போதைய பக்கத்தை ஒரு <frame>, <iframe>, <object> அல்லது <applet>-இல் உட்பொதிக்கக்கூடிய அனுமதிக்கப்பட்ட மூலங்களைக் குறிப்பிடுகிறது. இது கிளிக்ஜாக்கிங் தாக்குதல்களைத் தடுக்கப் பயன்படுகிறது.upgrade-insecure-requests
: அனைத்து பாதுகாப்பற்ற (HTTP) கோரிக்கைகளையும் பாதுகாப்பான (HTTPS) கோரிக்கைகளுக்கு தானாகவே மேம்படுத்துமாறு உலாவிக்கு அறிவுறுத்துகிறது. அனைத்து தரவுகளும் பாதுகாப்பாக அனுப்பப்படுவதை உறுதிசெய்ய இது முக்கியமானது.block-all-mixed-content
: பக்கம் HTTPS மூலம் ஏற்றப்படும்போது, HTTP வழியாக எந்தவொரு ஆதாரத்தையும் ஏற்றுவதிலிருந்து உலாவியைத் தடுக்கிறது. இதுupgrade-insecure-requests
-இன் மிகவும் தீவிரமான பதிப்பாகும்.report-uri
: உலாவி மீறல் அறிக்கைகளை அனுப்ப வேண்டிய URL-ஐக் குறிப்பிடுகிறது. இது உங்கள் CSP கொள்கையைக் கண்காணிக்கவும் செம்மைப்படுத்தவும் உங்களை அனுமதிக்கிறது. *வழக்கொழிந்தது, `report-to` மூலம் மாற்றப்பட்டது*report-to
: `Report-To` HTTP தலைப்பில் வரையறுக்கப்பட்ட ஒரு குழு பெயரை குறிப்பிடுகிறது, அங்கு உலாவி மீறல் அறிக்கைகளை அனுப்ப வேண்டும். இந்த வழிகாட்டுதலுக்கு `Report-To` தலைப்பு சரியாக உள்ளமைக்கப்பட வேண்டும்.require-trusted-types-for
: நம்பகமான வகைகள் (Trusted Types)-ஐ செயல்படுத்துகிறது, இது DOM-அடிப்படையிலான XSS பாதிப்புகளைத் தடுக்க உதவும் ஒரு DOM API ஆகும். குறிப்பிட்ட நம்பகமான வகைகள் செயல்படுத்தல்கள் மற்றும் உள்ளமைவுகள் தேவை.trusted-types
: மூழ்கிகளை (sinks) உருவாக்க அனுமதிக்கப்பட்ட நம்பகமான வகைகள் கொள்கைகளின் பட்டியலை வரையறுக்கிறது.
மூலப் பட்டியல் முக்கிய வார்த்தைகள்
URL-களுக்கு கூடுதலாக, CSP வழிகாட்டுதல்கள் அனுமதிக்கப்பட்ட மூலங்களை வரையறுக்க பல முக்கிய வார்த்தைகளைப் பயன்படுத்தலாம்:
'self'
: பாதுகாக்கப்பட்ட ஆவணத்தின் அதே மூலத்திலிருந்து (திட்டம் மற்றும் டொமைன்) உள்ளடக்கத்தை அனுமதிக்கிறது.'unsafe-inline'
: இன்லைன் ஜாவாஸ்கிரிப்ட் மற்றும் CSS-ஐப் பயன்படுத்த அனுமதிக்கிறது. மிகவும் எச்சரிக்கையுடன் பயன்படுத்தவும், ஏனெனில் இது CSP-ஐ கணிசமாக பலவீனப்படுத்துகிறது மற்றும் XSS பாதிப்புகளை மீண்டும் அறிமுகப்படுத்தக்கூடும். முடிந்தால் தவிர்க்கவும்.'unsafe-eval'
:eval()
மற்றும்Function()
போன்ற டைனமிக் ஜாவாஸ்கிரிப்ட் மதிப்பீட்டு செயல்பாடுகளைப் பயன்படுத்த அனுமதிக்கிறது. இதையும் எச்சரிக்கையுடன் பயன்படுத்தவும், ஏனெனில் இது CSP-ஐ பலவீனப்படுத்துகிறது. டெம்ப்ளேட் லிட்டரல்கள் போன்ற மாற்று வழிகளைக் கவனியுங்கள்.'unsafe-hashes'
: குறிப்பிட்ட இன்லைன் நிகழ்வு கையாள்பவர்களை, அவற்றின் SHA256, SHA384, அல்லது SHA512 ஹாஷ்களை வெள்ளைப்பட்டியலில் சேர்ப்பதன் மூலம் அனுமதிக்கிறது. அனைத்து இன்லைன் நிகழ்வு கையாள்பவர்களையும் உடனடியாக மீண்டும் எழுதாமல் CSP-க்கு மாறுவதற்கு இது பயனுள்ளதாக இருக்கும்.'none'
: எந்த மூலத்திலிருந்தும் உள்ளடக்கத்தை அனுமதிக்காது.'strict-dynamic'
: நம்பகமான ஸ்கிரிப்ட்களால் ஏற்றப்பட்ட ஸ்கிரிப்ட்கள், கொள்கையால் சாதாரணமாக அனுமதிக்கப்படாத ஸ்கிரிப்ட்களாக இருந்தாலும், மேலும் ஸ்கிரிப்ட்களை ஏற்ற அனுமதிக்கிறது. நவீன ஜாவாஸ்கிரிப்ட் கட்டமைப்புகளுக்கு பயனுள்ளதாக இருக்கும்.'report-sample'
: மீறல் அறிக்கையில் மீறும் குறியீட்டின் மாதிரியைச் சேர்க்க உலாவிக்கு அறிவுறுத்துகிறது. CSP சிக்கல்களை பிழைத்திருத்துவதற்கு உதவியாக இருக்கும்.data:
: data: URL-களிலிருந்து (எ.கா., உட்பொதிக்கப்பட்ட படங்கள்) ஆதாரங்களை ஏற்ற அனுமதிக்கிறது. எச்சரிக்கையுடன் பயன்படுத்தவும்.mediastream:
: mediastream: URL-களிலிருந்து (எ.கா., வெப்கேம் அல்லது மைக்ரோஃபோன்) ஆதாரங்களை ஏற்ற அனுமதிக்கிறது.blob:
: blob: URL-களிலிருந்து (எ.கா., டைனமிக்காக உருவாக்கப்பட்ட பொருள்கள்) ஆதாரங்களை ஏற்ற அனுமதிக்கிறது.filesystem:
: filesystem: URL-களிலிருந்து (எ.கா., உள்ளூர் கோப்பு முறைமை அணுகல்) ஆதாரங்களை ஏற்ற அனுமதிக்கிறது.
CSP செயல்படுத்துதல்: நடைமுறை எடுத்துக்காட்டுகள்
CSP-ஐ செயல்படுத்த இரண்டு முதன்மை வழிகள் உள்ளன:
- HTTP மறுமொழி தலைப்பு: இது பரிந்துரைக்கப்பட்ட அணுகுமுறை, ஏனெனில் இது அதிக நெகிழ்வுத்தன்மையையும் கட்டுப்பாட்டையும் வழங்குகிறது.
- <meta> குறிச்சொல்: இது ஒரு எளிமையான அணுகுமுறை, ஆனால் இதற்கு வரம்புகள் உள்ளன (எ.கா., இதை
frame-ancestors
-உடன் பயன்படுத்த முடியாது).
எடுத்துக்காட்டு 1: HTTP மறுமொழி தலைப்பு
CSP தலைப்பை அமைக்க, உங்கள் வலை சேவையகத்தை (எ.கா., Apache, Nginx, IIS) உள்ளமைக்க வேண்டும். குறிப்பிட்ட உள்ளமைவு உங்கள் சேவையக மென்பொருளைப் பொறுத்தது.
CSP தலைப்பின் ஒரு எடுத்துக்காட்டு இங்கே:
Content-Security-Policy: default-src 'self'; script-src 'self' https://example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; report-uri /csp-report
விளக்கம்:
default-src 'self'
: இயல்பாக அதே மூலத்திலிருந்து ஆதாரங்களை அனுமதிக்கிறது.script-src 'self' https://example.com
: அதே மூலத்திலிருந்தும்https://example.com
-இலிருந்தும் ஜாவாஸ்கிரிப்டை அனுமதிக்கிறது.style-src 'self' 'unsafe-inline'
: அதே மூலத்திலிருந்தும் இன்லைன் ஸ்டைல்களையும் அனுமதிக்கிறது (எச்சரிக்கையுடன் பயன்படுத்தவும்).img-src 'self' data:
: அதே மூலத்திலிருந்தும் டேட்டா URL-களிலிருந்தும் படங்களை அனுமதிக்கிறது.report-uri /csp-report
: மீறல் அறிக்கைகளை உங்கள் சேவையகத்தில் உள்ள/csp-report
இறுதிப்புள்ளிக்கு அனுப்புகிறது.
எடுத்துக்காட்டு 2: <meta> குறிச்சொல்
CSP கொள்கையை வரையறுக்க நீங்கள் ஒரு <meta> குறிச்சொல்லையும் பயன்படுத்தலாம்:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:">
குறிப்பு: <meta> குறிச்சொல் அணுகுமுறைக்கு வரம்புகள் உள்ளன. எடுத்துக்காட்டாக, கிளிக்ஜாக்கிங் தாக்குதல்களைத் தடுப்பதற்கு முக்கியமான frame-ancestors
வழிகாட்டுதலை வரையறுக்க இதைப் பயன்படுத்த முடியாது.
CSP அறிக்கை-மட்டும் பயன்முறையில்
ஒரு CSP கொள்கையைச் செயல்படுத்துவதற்கு முன்பு, அதை அறிக்கை-மட்டும் பயன்முறையில் சோதிப்பது மிகவும் பரிந்துரைக்கப்படுகிறது. இது எந்த ஆதாரங்களையும் தடுக்காமல் மீறல்களைக் கண்காணிக்க உங்களை அனுமதிக்கிறது.
அறிக்கை-மட்டும் பயன்முறையை இயக்க, Content-Security-Policy
என்பதற்குப் பதிலாக Content-Security-Policy-Report-Only
தலைப்பைப் பயன்படுத்தவும்:
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self' https://example.com; report-uri /csp-report
அறிக்கை-மட்டும் பயன்முறையில், உலாவி குறிப்பிட்ட URL-க்கு மீறல் அறிக்கைகளை அனுப்பும், ஆனால் அது எந்த ஆதாரங்களையும் தடுக்காது. இது உங்கள் கொள்கையைச் செயல்படுத்துவதற்கு முன்பு அதிலுள்ள சிக்கல்களைக் கண்டறிந்து சரிசெய்ய உங்களை அனுமதிக்கிறது.
அறிக்கை URI இறுதிப்புள்ளியை அமைத்தல்
report-uri
(வழக்கொழிந்தது, `report-to`-ஐ பயன்படுத்தவும்) வழிகாட்டுதல் உலாவி மீறல் அறிக்கைகளை அனுப்ப வேண்டிய URL-ஐக் குறிப்பிடுகிறது. இந்த அறிக்கைகளைப் பெறவும் செயலாக்கவும் உங்கள் சேவையகத்தில் ஒரு இறுதிப்புள்ளியை நீங்கள் அமைக்க வேண்டும். இந்த அறிக்கைகள் ஒரு POST கோரிக்கையின் मुख्यப் பகுதியில் JSON தரவாக அனுப்பப்படுகின்றன.
Node.js-இல் CSP அறிக்கைகளை நீங்கள் எவ்வாறு கையாளலாம் என்பதற்கான ஒரு எளிமைப்படுத்தப்பட்ட எடுத்துக்காட்டு இங்கே:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(bodyParser.json({ type: 'application/csp-report' }));
app.post('/csp-report', (req, res) => {
console.log('CSP Violation Report:', JSON.stringify(req.body, null, 2));
res.status(204).end(); // Respond with a 204 No Content
});
app.listen(port, () => {
console.log(`CSP report server listening at http://localhost:${port}`);
});
இந்த குறியீடு /csp-report
இறுதிப்புள்ளிக்கு POST கோரிக்கைகளைக் கேட்கும் ஒரு எளிய சேவையகத்தை அமைக்கிறது. ஒரு அறிக்கை பெறப்பட்டதும், அது அறிக்கையை கன்சோலில் பதிவு செய்கிறது. ஒரு நிஜ உலக பயன்பாட்டில், நீங்கள் இந்த அறிக்கைகளை பகுப்பாய்விற்காக ஒரு தரவுத்தளத்தில் சேமிக்க விரும்புவீர்கள்.
`report-to`-ஐப் பயன்படுத்தும் போது, நீங்கள் `Report-To` HTTP தலைப்பையும் உள்ளமைக்க வேண்டும். இந்த தலைப்பு அறிக்கையிடல் இறுதிப்புள்ளிகளையும் அவற்றின் பண்புகளையும் வரையறுக்கிறது.
Report-To: {"group":"csp-endpoint","max_age":10886400,"endpoints":[{"url":"https://example.com/csp-report"}],"include_subdomains":true}
பின்னர், உங்கள் CSP தலைப்பில், நீங்கள் இதைப் பயன்படுத்துவீர்கள்:
Content-Security-Policy: default-src 'self'; report-to csp-endpoint;
CSP சிறந்த நடைமுறைகள்
CSP-ஐ செயல்படுத்தும்போது பின்பற்ற வேண்டிய சில சிறந்த நடைமுறைகள் இங்கே:
- ஒரு கடுமையான கொள்கையுடன் தொடங்குங்கள்: ஒரு கட்டுப்படுத்தப்பட்ட கொள்கையுடன் தொடங்கி, தேவைக்கேற்ப படிப்படியாக அதைத் தளர்த்தவும். இது ஆரம்பத்திலேயே சாத்தியமான பாதுகாப்பு பாதிப்புகளைக் கண்டறிந்து சரிசெய்ய உதவும்.
- இன்லைன் ஸ்கிரிப்டுகள் மற்றும் ஸ்டைல்களுக்கு நான்ஸ் அல்லது ஹாஷ்களைப் பயன்படுத்தவும்: நீங்கள் இன்லைன் ஸ்கிரிப்டுகள் அல்லது ஸ்டைல்களைப் பயன்படுத்த வேண்டியிருந்தால், குறிப்பிட்ட குறியீட்டுத் தொகுதிகளை வெள்ளைப்பட்டியலில் சேர்க்க நான்ஸ் (குறியாக்கவியல் ரீதியாக சீரற்ற மதிப்புகள்) அல்லது ஹாஷ்களைப் பயன்படுத்தவும். இது
'unsafe-inline'
-ஐப் பயன்படுத்துவதை விட பாதுகாப்பானது. 'unsafe-eval'
-ஐத் தவிர்க்கவும்:'unsafe-eval'
வழிகாட்டுதல் டைனமிக் ஜாவாஸ்கிரிப்ட் மதிப்பீட்டு செயல்பாடுகளைப் பயன்படுத்த அனுமதிக்கிறது, இது ஒரு பெரிய பாதுகாப்பு அபாயமாக இருக்கலாம். முடிந்தால் இந்த வழிகாட்டுதலைப் பயன்படுத்துவதைத் தவிர்க்கவும். டெம்ப்ளேட் லிட்டரல்கள் அல்லது பிற மாற்று வழிகளைக் கவனியுங்கள்.- அனைத்து ஆதாரங்களுக்கும் HTTPS-ஐப் பயன்படுத்தவும்: மேன்-இன்-தி-மிடில் தாக்குதல்களைத் தடுக்க அனைத்து ஆதாரங்களும் HTTPS வழியாக ஏற்றப்படுவதை உறுதிசெய்யவும். பாதுகாப்பற்ற கோரிக்கைகளை தானாகவே மேம்படுத்த
upgrade-insecure-requests
வழிகாட்டுதலைப் பயன்படுத்தவும். - உங்கள் கொள்கையை கண்காணித்து செம்மைப்படுத்தவும்: CSP மீறல் அறிக்கைகளைத் தவறாமல் கண்காணித்து, தேவைக்கேற்ப உங்கள் கொள்கையைச் செம்மைப்படுத்தவும். இது ஏதேனும் சிக்கல்களைக் கண்டறிந்து சரிசெய்யவும், உங்கள் கொள்கை பயனுள்ளதாக இருப்பதை உறுதிசெய்யவும் உதவும்.
- ஒரு CSP ஜெனரேட்டரைப் பயன்படுத்தக் கருதுங்கள்: உங்கள் வலைத்தளத்தின் தேவைகளின் அடிப்படையில் ஒரு CSP கொள்கையை உருவாக்க பல ஆன்லைன் கருவிகள் உங்களுக்கு உதவக்கூடும். இந்தக் கருவிகள் ஒரு வலுவான மற்றும் பயனுள்ள கொள்கையை உருவாக்கும் செயல்முறையை எளிதாக்கலாம்.
- முழுமையாக சோதிக்கவும்: உங்கள் CSP கொள்கையைச் செயல்படுத்துவதற்கு முன்பு, அது உங்கள் வலைத்தளத்தில் எந்த செயல்பாட்டையும் உடைக்கவில்லை என்பதை உறுதிப்படுத்த அறிக்கை-மட்டும் பயன்முறையில் முழுமையாக சோதிக்கவும்.
- ஒரு கட்டமைப்பு அல்லது நூலகத்தைப் பயன்படுத்தவும்: சில வலை மேம்பாட்டுக் கட்டமைப்புகள் மற்றும் நூலகங்கள் CSP-க்கான உள்ளமைக்கப்பட்ட ஆதரவை வழங்குகின்றன. இந்தக் கருவிகளைப் பயன்படுத்துவது உங்கள் CSP கொள்கையைச் செயல்படுத்தும் மற்றும் நிர்வகிக்கும் செயல்முறையை எளிதாக்கலாம்.
- உலாவி இணக்கத்தன்மை குறித்து எச்சரிக்கையாக இருங்கள்: CSP பெரும்பாலான நவீன உலாவிகளால் ஆதரிக்கப்படுகிறது, ஆனால் பழைய உலாவிகளுடன் சில இணக்கத்தன்மை சிக்கல்கள் இருக்கலாம். உங்கள் கொள்கை எதிர்பார்த்தபடி செயல்படுகிறதா என்பதை உறுதிப்படுத்த பல்வேறு உலாவிகளில் சோதிக்கவும்.
- உங்கள் குழுவிற்கு கல்வி புகட்டுங்கள்: உங்கள் மேம்பாட்டுக் குழு CSP-இன் முக்கியத்துவத்தையும் அதை எவ்வாறு சரியாகச் செயல்படுத்துவது என்பதையும் புரிந்துகொண்டுள்ளதா என்பதை உறுதிப்படுத்தவும். இது மேம்பாட்டு வாழ்க்கைச் சுழற்சி முழுவதும் CSP சரியாகச் செயல்படுத்தப்பட்டு பராமரிக்கப்படுவதை உறுதிசெய்ய உதவும்.
CSP மற்றும் மூன்றாம் தரப்பு ஸ்கிரிப்டுகள்
CSP-ஐ செயல்படுத்துவதில் உள்ள மிகப்பெரிய சவால்களில் ஒன்று மூன்றாம் தரப்பு ஸ்கிரிப்டுகளைக் கையாள்வது. பல வலைத்தளங்கள் பகுப்பாய்வு, விளம்பரம் மற்றும் பிற செயல்பாடுகளுக்கு மூன்றாம் தரப்பு சேவைகளை நம்பியுள்ளன. இந்த ஸ்கிரிப்டுகள் சரியாக நிர்வகிக்கப்படாவிட்டால் பாதுகாப்பு பாதிப்புகளை அறிமுகப்படுத்தக்கூடும்.
CSP-உடன் மூன்றாம் தரப்பு ஸ்கிரிப்டுகளை நிர்வகிப்பதற்கான சில குறிப்புகள் இங்கே:
- துணை ஆதார ஒருமைப்பாட்டை (SRI) பயன்படுத்தவும்: SRI மூன்றாம் தரப்பு ஸ்கிரிப்டுகள் சிதைக்கப்படவில்லை என்பதை சரிபார்க்க உங்களை அனுமதிக்கிறது. நீங்கள் ஒரு மூன்றாம் தரப்பு ஸ்கிரிப்டைச் சேர்க்கும்போது, ஸ்கிரிப்ட்டின் ஹாஷுடன்
integrity
பண்புக்கூறைச் சேர்க்கவும். உலாவி பின்னர் ஸ்கிரிப்டை இயக்கும் முன் அது ஹாஷுடன் பொருந்துகிறதா என்பதை சரிபார்க்கும். - மூன்றாம் தரப்பு ஸ்கிரிப்டுகளை உள்நாட்டில் ஹோஸ்ட் செய்யவும்: முடிந்தால், மூன்றாம் தரப்பு ஸ்கிரிப்டுகளை உங்கள் சொந்த சேவையகத்தில் உள்நாட்டில் ஹோஸ்ட் செய்யவும். இது ஸ்கிரிப்டுகள் மீது உங்களுக்கு அதிக கட்டுப்பாட்டைக் கொடுக்கிறது மற்றும் அவை சமரசம் செய்யப்படும் அபாயத்தைக் குறைக்கிறது.
- CSP ஆதரவுடன் உள்ளடக்க விநியோக வலையமைப்பை (CDN) பயன்படுத்தவும்: சில CDN-கள் CSP-க்கான உள்ளமைக்கப்பட்ட ஆதரவை வழங்குகின்றன. இது மூன்றாம் தரப்பு ஸ்கிரிப்டுகளுக்கு CSP-ஐ செயல்படுத்துவதையும் நிர்வகிப்பதையும் எளிதாக்கலாம்.
- மூன்றாம் தரப்பு ஸ்கிரிப்டுகளின் அனுமதிகளை வரம்பிடவும்: மூன்றாம் தரப்பு ஸ்கிரிப்டுகளின் அனுமதிகளை வரம்பிட CSP-ஐப் பயன்படுத்தவும். எடுத்துக்காட்டாக, முக்கியமான தரவை அணுகுவதிலிருந்தோ அல்லது அங்கீகரிக்கப்படாத டொமைன்களுக்கு கோரிக்கைகளை வைப்பதிலிருந்தோ நீங்கள் அவற்றைத் தடுக்கலாம்.
- மூன்றாம் தரப்பு ஸ்கிரிப்டுகளைத் தவறாமல் மதிப்பாய்வு செய்யவும்: உங்கள் வலைத்தளத்தில் நீங்கள் பயன்படுத்தும் மூன்றாம் தரப்பு ஸ்கிரிப்டுகள் இன்னும் பாதுகாப்பானவை மற்றும் நம்பகமானவை என்பதை உறுதிப்படுத்த அவற்றைத் தவறாமல் மதிப்பாய்வு செய்யவும்.
மேம்பட்ட CSP நுட்பங்கள்
நீங்கள் ஒரு அடிப்படை CSP கொள்கையை வைத்தவுடன், உங்கள் வலைத்தளத்தின் பாதுகாப்பை மேலும் மேம்படுத்த சில மேம்பட்ட நுட்பங்களை நீங்கள் ஆராயலாம்:
- இன்லைன் ஸ்கிரிப்டுகள் மற்றும் ஸ்டைல்களுக்கு நான்ஸ்களைப் பயன்படுத்துதல்: முன்னர் குறிப்பிட்டபடி, நான்ஸ்கள் குறியாக்கவியல் ரீதியாக சீரற்ற மதிப்புகள் ஆகும், அவற்றை நீங்கள் குறிப்பிட்ட இன்லைன் குறியீட்டுத் தொகுதிகளை வெள்ளைப்பட்டியலில் சேர்க்கப் பயன்படுத்தலாம். நான்ஸ்களைப் பயன்படுத்த, நீங்கள் ஒவ்வொரு கோரிக்கைக்கும் ஒரு தனித்துவமான நான்ஸை உருவாக்கி, அதை CSP தலைப்பு மற்றும் இன்லைன் குறியீடு இரண்டிலும் சேர்க்க வேண்டும்.
- இன்லைன் நிகழ்வு கையாள்பவர்களுக்கு ஹாஷ்களைப் பயன்படுத்துதல்:
'unsafe-hashes'
வழிகாட்டுதல் குறிப்பிட்ட இன்லைன் நிகழ்வு கையாள்பவர்களை அவற்றின் SHA256, SHA384, அல்லது SHA512 ஹாஷ்கள் மூலம் வெள்ளைப்பட்டியலில் சேர்க்க உங்களை அனுமதிக்கிறது. இது அனைத்து இன்லைன் நிகழ்வு கையாள்பவர்களையும் உடனடியாக மீண்டும் எழுதாமல் CSP-க்கு மாறுவதற்கு பயனுள்ளதாக இருக்கும். - நம்பகமான வகைகளைப் பயன்படுத்துதல்: நம்பகமான வகைகள் (Trusted Types) என்பது DOM-அடிப்படையிலான XSS பாதிப்புகளைத் தடுக்க உதவும் ஒரு DOM API ஆகும். இது சில சூழல்களில் பயன்படுத்த பாதுகாப்பானது என்று உத்தரவாதம் அளிக்கப்பட்ட சிறப்பு வகை பொருட்களை உருவாக்க உங்களை அனுமதிக்கிறது.
- அம்சக் கொள்கையைப் பயன்படுத்துதல்: அம்சக் கொள்கை (இப்போது அனுமதிகள் கொள்கை) உங்கள் வலைத்தளத்திற்குக் கிடைக்கும் உலாவி அம்சங்களைக் கட்டுப்படுத்த உங்களை அனுமதிக்கிறது. இது சில வகையான தாக்குதல்களைத் தடுக்கவும் உங்கள் வலைத்தளத்தின் செயல்திறனை மேம்படுத்தவும் உதவும்.
- துணை ஆதார ஒருமைப்பாட்டை (SRI) ஃபால்பேக்குடன் பயன்படுத்துதல்: SRI-ஐ ஒரு ஃபால்பேக் பொறிமுறையுடன் இணைக்கவும். SRI சோதனை தோல்வியுற்றால் (எ.கா., CDN செயலிழந்தால்), உங்கள் சொந்த சேவையகத்தில் ஹோஸ்ட் செய்யப்பட்ட ஆதாரத்தின் காப்புப் பிரதியை வைத்திருக்கவும்.
- டைனமிக் CSP உருவாக்கம்: பயனரின் அமர்வு, பாத்திரங்கள் அல்லது பிற சூழல் தகவல்களின் அடிப்படையில் உங்கள் CSP-ஐ சேவையகப் பக்கத்தில் டைனமிக்காக உருவாக்கவும்.
- CSP மற்றும் வெப்சாக்கெட்டுகள்: வெப்சாக்கெட்டுகளைப் பயன்படுத்தும் போது, நம்பகமான வெப்சாக்கெட் இறுதிப்புள்ளிகளுக்கு மட்டுமே இணைப்புகளை அனுமதிக்க `connect-src` வழிகாட்டுதலை கவனமாக உள்ளமைக்கவும்.
CSP செயல்படுத்துதலுக்கான உலகளாவிய பரிசீலனைகள்
உலகளாவிய பார்வையாளர்களுக்காக CSP-ஐ செயல்படுத்தும்போது, பின்வருவனவற்றைக் கவனியுங்கள்:
- CDN இருப்பிடங்கள்: உலகெங்கிலும் உள்ள பயனர்களுக்கு வேகமான மற்றும் நம்பகமான உள்ளடக்க விநியோகத்தை வழங்க உங்கள் உள்ளடக்க விநியோக வலையமைப்பு (CDN) பல புவியியல் இடங்களில் சேவையகங்களைக் கொண்டிருப்பதை உறுதிசெய்யவும். உங்கள் CDN CSP-ஐ ஆதரிக்கிறதா மற்றும் தேவையான தலைப்புகளைக் கையாள முடியுமா என்பதைச் சரிபார்க்கவும்.
- உலகளாவிய விதிமுறைகள்: GDPR (ஐரோப்பா), CCPA (கலிபோர்னியா) மற்றும் பிற பிராந்திய சட்டங்கள் போன்ற தரவு தனியுரிமை விதிமுறைகள் குறித்து எச்சரிக்கையாக இருங்கள். உங்கள் CSP செயல்படுத்தல் இந்த விதிமுறைகளுக்கு இணங்குவதை உறுதிசெய்யவும், குறிப்பாக மீறல் அறிக்கைகளைக் கையாளும் போது.
- உள்ளூர்மயமாக்கல்: CSP உள்ளூர்மயமாக்கப்பட்ட உள்ளடக்கத்தை எவ்வாறு பாதிக்கலாம் என்பதைக் கவனியுங்கள். வெவ்வேறு மொழிகள் அல்லது பிராந்தியங்களுக்கு வெவ்வேறு ஸ்கிரிப்டுகள் அல்லது ஸ்டைல்கள் உங்களிடம் இருந்தால், உங்கள் CSP கொள்கை இந்த மாறுபாடுகளுக்கு இடமளிப்பதை உறுதிசெய்யவும்.
- சர்வதேசமயமாக்கப்பட்ட டொமைன் பெயர்கள் (IDNs): உங்கள் வலைத்தளம் IDN-களைப் பயன்படுத்தினால், உங்கள் CSP கொள்கை இந்த டொமைன்களைச் சரியாகக் கையாள்வதை உறுதிசெய்யவும். சாத்தியமான குறியாக்க சிக்கல்கள் அல்லது உலாவி முரண்பாடுகள் குறித்து எச்சரிக்கையாக இருங்கள்.
- கிராஸ்-ஆரிஜின் ரிசோர்ஸ் ஷேரிங் (CORS): CSP CORS-உடன் இணைந்து செயல்படுகிறது. நீங்கள் கிராஸ்-ஆரிஜின் கோரிக்கைகளைச் செய்கிறீர்கள் என்றால், உங்கள் CORS உள்ளமைவு உங்கள் CSP கொள்கையுடன் இணக்கமாக இருப்பதை உறுதிசெய்யவும்.
- பிராந்திய பாதுகாப்பு தரநிலைகள்: சில பிராந்தியங்களில் குறிப்பிட்ட பாதுகாப்பு தரநிலைகள் அல்லது தேவைகள் இருக்கலாம். அந்தப் பிராந்தியங்களில் உள்ள பயனர்களுக்கு CSP-ஐ செயல்படுத்தும்போது இந்தத் தரநிலைகளை ஆராய்ந்து இணங்கவும்.
- கலாச்சார பரிசீலனைகள்: வலைத்தளங்கள் எவ்வாறு பயன்படுத்தப்படுகின்றன மற்றும் அணுகப்படுகின்றன என்பதில் உள்ள கலாச்சார வேறுபாடுகளை மனதில் கொள்ளுங்கள். சில பிராந்தியங்கள் அல்லது மக்கள்தொகைக்கு குறிப்பிட்ட பாதுகாப்பு அபாயங்களைக் கவனத்தில் கொள்ள உங்கள் CSP செயலாக்கத்தை வடிவமைக்கவும்.
- அணுகல்தன்மை: உங்கள் CSP செயல்படுத்தல் உங்கள் வலைத்தளத்தின் அணுகலை எதிர்மறையாக பாதிக்கவில்லை என்பதை உறுதிப்படுத்தவும். எடுத்துக்காட்டாக, ஸ்கிரீன் ரீடர்கள் அல்லது பிற உதவித் தொழில்நுட்பங்களுக்குத் தேவையான ஸ்கிரிப்டுகள் அல்லது ஸ்டைல்களைத் தடுக்க வேண்டாம்.
- பிராந்தியங்கள் முழுவதும் சோதனை: சாத்தியமான சிக்கல்களைக் கண்டறிந்து தீர்க்க வெவ்வேறு புவியியல் பிராந்தியங்கள் மற்றும் உலாவிகள் முழுவதும் உங்கள் CSP செயலாக்கத்தை முழுமையாக சோதிக்கவும்.
CSP சரிசெய்தல்
CSP-ஐ செயல்படுத்துவது சில நேரங்களில் சவாலானதாக இருக்கலாம், மேலும் நீங்கள் சிக்கல்களை சந்திக்க நேரிடலாம். இங்கே சில பொதுவான சிக்கல்கள் மற்றும் அவற்றை எவ்வாறு சரிசெய்வது என்பது பற்றிய விவரங்கள்:
- CSP-ஐ இயக்கிய பிறகு வலைத்தளம் உடைகிறது: இது பெரும்பாலும் மிகவும் கட்டுப்படுத்தப்பட்ட கொள்கையால் ஏற்படுகிறது. தடுக்கப்படும் ஆதாரங்களைக் கண்டறிய உலாவியின் டெவலப்பர் கருவிகளைப் பயன்படுத்தவும், அதற்கேற்ப உங்கள் கொள்கையைச் சரிசெய்யவும்.
- CSP மீறல் அறிக்கைகள் பெறப்படவில்லை: உங்கள் சேவையக உள்ளமைவைச் சரிபார்த்து,
report-uri
(அல்லது `report-to`) இறுதிப்புள்ளி சரியாக உள்ளமைக்கப்பட்டுள்ளதா மற்றும் உங்கள் சேவையகம் POST கோரிக்கைகளைச் சரியாகக் கையாளுகிறதா என்பதை உறுதிப்படுத்தவும். மேலும், உலாவி உண்மையில் அறிக்கைகளை அனுப்புகிறதா என்பதைச் சரிபார்க்கவும் (நெட்வொர்க் ட்ராஃபிக்கைச் சரிபார்க்க டெவலப்பர் கருவிகளைப் பயன்படுத்தலாம்). - இன்லைன் ஸ்கிரிப்டுகள் மற்றும் ஸ்டைல்களுடன் சிரமங்கள்: உங்களுக்கு இன்லைன் ஸ்கிரிப்டுகள் மற்றும் ஸ்டைல்களில் சிக்கல் இருந்தால், அவற்றை வெள்ளைப்பட்டியலில் சேர்க்க நான்ஸ் அல்லது ஹாஷ்களைப் பயன்படுத்தக் கருதுங்கள். மாற்றாக, குறியீட்டை வெளிப்புற கோப்புகளுக்கு நகர்த்த முயற்சிக்கவும்.
- மூன்றாம் தரப்பு ஸ்கிரிப்டுகளுடன் சிக்கல்கள்: மூன்றாம் தரப்பு ஸ்கிரிப்டுகளின் ஒருமைப்பாட்டைச் சரிபார்க்க SRI-ஐப் பயன்படுத்தவும். உங்களுக்கு இன்னும் சிக்கல்கள் இருந்தால், ஸ்கிரிப்டுகளை உள்நாட்டில் ஹோஸ்ட் செய்ய முயற்சிக்கவும் அல்லது உதவிக்கு மூன்றாம் தரப்பு வழங்குநரைத் தொடர்பு கொள்ளவும்.
- உலாவி இணக்கத்தன்மை சிக்கல்கள்: CSP பெரும்பாலான நவீன உலாவிகளால் ஆதரிக்கப்படுகிறது, ஆனால் பழைய உலாவிகளுடன் சில இணக்கத்தன்மை சிக்கல்கள் இருக்கலாம். உங்கள் கொள்கை எதிர்பார்த்தபடி செயல்படுகிறதா என்பதை உறுதிப்படுத்த பல்வேறு உலாவிகளில் சோதிக்கவும்.
- CSP கொள்கை மோதல்கள்: நீங்கள் பல CSP கொள்கைகளைப் பயன்படுத்துகிறீர்கள் என்றால் (எ.கா., வெவ்வேறு செருகுநிரல்கள் அல்லது நீட்டிப்புகளிலிருந்து), அவை ஒன்றுக்கொன்று முரண்படலாம். சிக்கலைத் தீர்க்கிறதா என்று பார்க்க, செருகுநிரல்கள் அல்லது நீட்டிப்புகளை முடக்க முயற்சிக்கவும்.
முடிவுரை
உள்ளடக்க பாதுகாப்பு கொள்கை என்பது உங்கள் வலைத்தளத்தின் பாதுகாப்பை மேம்படுத்துவதற்கும், பல்வேறு அச்சுறுத்தல்களிலிருந்து உங்கள் பயனர்களைப் பாதுகாப்பதற்கும் ஒரு சக்திவாய்ந்த கருவியாகும். CSP-ஐ சரியாகச் செயல்படுத்தி, சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், XSS தாக்குதல்கள், கிளிக்ஜாக்கிங் மற்றும் பிற பாதிப்புகளின் அபாயத்தை நீங்கள் கணிசமாகக் குறைக்கலாம். CSP-ஐ செயல்படுத்துவது சிக்கலானதாக இருந்தாலும், பாதுகாப்பு மற்றும் பயனர் நம்பிக்கையின் அடிப்படையில் அது வழங்கும் நன்மைகள் முயற்சிக்கு மதிப்புள்ளவை. ஒரு கடுமையான கொள்கையுடன் தொடங்கவும், முழுமையாக சோதிக்கவும், மேலும் அது பயனுள்ளதாக இருப்பதை உறுதிப்படுத்த உங்கள் கொள்கையைத் தொடர்ந்து கண்காணித்து செம்மைப்படுத்தவும் நினைவில் கொள்ளுங்கள். வலை வளர்ச்சியடைந்து புதிய அச்சுறுத்தல்கள் வெளிவரும்போது, CSP ஒரு விரிவான வலைப் பாதுகாப்பு உத்தியின் ஒரு முக்கிய பகுதியாக தொடர்ந்து இருக்கும்.