எங்கள் உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) வழிகாட்டி மூலம் ஜாவாஸ்கிரிப்ட் பாதுகாப்பில் தேர்ச்சி பெறுங்கள். CSP தலைப்புகளைச் செயல்படுத்தவும், XSS மற்றும் தரவு உள்ளீடு தாக்குதல்களைத் தணிக்கவும், உங்கள் உலகளாவிய இணையப் பயன்பாடுகளைப் பாதுகாக்கவும் கற்றுக்கொள்ளுங்கள்.
உங்கள் இணையப் பயன்பாட்டைப் பாதுகாத்தல்: ஜாவாஸ்கிரிப்ட் பாதுகாப்பு தலைப்புகள் மற்றும் உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) செயல்படுத்தலுக்கான ஒரு விரிவான வழிகாட்டி
இன்றைய ஒன்றோடொன்று இணைக்கப்பட்ட டிஜிட்டல் உலகில், இணையப் பயன்பாடுகளின் பாதுகாப்பு மிக முக்கியமானது. டெவலப்பர்களாக, நாம் செயல்பாட்டு மற்றும் பயனர் நட்பு அனுபவங்களை உருவாக்குவதோடு மட்டுமல்லாமல், எண்ணற்ற வளர்ந்து வரும் அச்சுறுத்தல்களுக்கு எதிராக அவற்றைப் பாதுகாக்கும் பணியையும் மேற்கொள்கிறோம். முன்-இறுதி பாதுகாப்பை மேம்படுத்துவதற்கான நமது ஆயுதங்களில் உள்ள மிக சக்திவாய்ந்த கருவிகளில் ஒன்று பொருத்தமான HTTP பாதுகாப்பு தலைப்புகளை செயல்படுத்துவதாகும். இவற்றில், உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) ஒரு முக்கியமான பாதுகாப்பு பொறிமுறையாக விளங்குகிறது, குறிப்பாக டைனமிக் உள்ளடக்கம் மற்றும் ஜாவாஸ்கிரிப்ட் செயலாக்கத்தைக் கையாளும் போது.
இந்த விரிவான வழிகாட்டி ஜாவாஸ்கிரிப்ட் பாதுகாப்பு தலைப்புகளின் நுணுக்கங்களை ஆராயும், குறிப்பாக உள்ளடக்க பாதுகாப்பு கொள்கையில் கவனம் செலுத்தும். CSP என்றால் என்ன, நவீன இணையப் பயன்பாடுகளுக்கு அது ஏன் அவசியம் என்பதை நாங்கள் ஆராய்வோம், மேலும் அதன் செயல்படுத்தலுக்கான நடைமுறை படிகளை வழங்குவோம். உலகெங்கிலும் உள்ள டெவலப்பர்கள் மற்றும் பாதுகாப்பு நிபுணர்களுக்கு மிகவும் நெகிழ்வான மற்றும் பாதுகாப்பான இணைய அனுபவங்களை உருவாக்குவதற்கான அறிவை வழங்குவதே எங்கள் குறிக்கோள்.
சூழ்நிலையைப் புரிந்துகொள்வது: ஜாவாஸ்கிரிப்ட் பாதுகாப்பு ஏன் முக்கியமானது
ஜாவாஸ்கிரிப்ட், ஊடாடும் மற்றும் டைனமிக் வலைப்பக்கங்களை உருவாக்குவதில் கருவியாக இருந்தாலும், தனித்துவமான பாதுகாப்பு சவால்களையும் அளிக்கிறது. ஆவண பொருள் மாதிரி (DOM) கையாளுதல், நெட்வொர்க் கோரிக்கைகளை உருவாக்குதல் மற்றும் பயனரின் உலாவியில் நேரடியாக குறியீட்டை இயக்குதல் போன்ற அதன் திறனை தீங்கிழைக்கும் நடிகர்களால் பயன்படுத்தப்படலாம். ஜாவாஸ்கிரிப்ட்டுடன் தொடர்புடைய பொதுவான பாதிப்புகளில் பின்வருவன அடங்கும்:
- குறுக்கு-தள ஸ்கிரிப்டிங் (XSS): தாக்குபவர்கள் மற்ற பயனர்கள் பார்க்கும் வலைப்பக்கங்களில் தீங்கிழைக்கும் ஜாவாஸ்கிரிப்ட் குறியீட்டைச் செருகுகிறார்கள். இது அமர்வு கடத்தல், தரவு திருட்டு அல்லது தீங்கிழைக்கும் தளங்களுக்கு திருப்பி விட வழிவகுக்கும்.
- தரவு உள்ளீடு: பயனர் உள்ளீட்டை பாதுகாப்பற்ற முறையில் கையாள்வதைச் சுரண்டி, தாக்குபவர்கள் தன்னிச்சையான குறியீடு அல்லது கட்டளைகளைச் செருகவும் இயக்கவும் அனுமதிக்கிறது.
- தீங்கிழைக்கும் மூன்றாம் தரப்பு ஸ்கிரிப்டுகள்: நம்பத்தகாத மூலங்களிலிருந்து ஸ்கிரிப்டுகளைச் சேர்ப்பது, அவை சமரசம் செய்யப்பட்டிருக்கலாம் அல்லது வேண்டுமென்றே தீங்கிழைப்பவையாக இருக்கலாம்.
- DOM-அடிப்படையிலான XSS: DOM-ஐ பாதுகாப்பற்ற முறையில் கையாளும் கிளையன்ட் பக்க ஜாவாஸ்கிரிப்ட் குறியீட்டிற்குள் உள்ள பாதிப்புகள்.
பாதுகாப்பான குறியீட்டு முறைகள் முதல் பாதுகாப்பு வரிசையாக இருந்தாலும், HTTP பாதுகாப்பு தலைப்புகள் கூடுதல் பாதுகாப்பு அடுக்கை வழங்குகின்றன, உலாவி மட்டத்தில் பாதுகாப்பு கொள்கைகளைச் செயல்படுத்த ஒரு அறிவிப்பு வழியை வழங்குகின்றன.
பாதுகாப்பு தலைப்புகளின் சக்தி: பாதுகாப்பிற்கான ஒரு அடித்தளம்
HTTP பாதுகாப்பு தலைப்புகள் என்பது வலை சேவையகத்தால் உலாவிக்கு அனுப்பப்படும் வழிகாட்டுதல்கள் ஆகும், அவை வலைத்தளத்தின் உள்ளடக்கத்தைக் கையாளும் போது எவ்வாறு நடந்துகொள்ள வேண்டும் என்று அறிவுறுத்துகின்றன. அவை பல்வேறு பாதுகாப்பு அபாயங்களைக் குறைக்க உதவுகின்றன மற்றும் நவீன இணையப் பாதுகாப்பின் ஒரு மூலக்கல்லாக உள்ளன. சில முக்கிய பாதுகாப்பு தலைப்புகளில் பின்வருவன அடங்கும்:
- Strict-Transport-Security (HSTS): HTTPS பயன்பாட்டை அமல்படுத்துகிறது, மனிதன்-நடுவில்-தாக்குதல்களுக்கு எதிராக பாதுகாக்கிறது.
- X-Frame-Options: ஒரு பக்கம்
<iframe>,<frame>, அல்லது<object>-ல் காட்டப்பட முடியுமா என்பதைக் கட்டுப்படுத்துவதன் மூலம் கிளிக்ஜாக்கிங் தாக்குதல்களைத் தடுக்கிறது. - X-Content-Type-Options: உலாவிகள் உள்ளடக்க வகையை MIME-ஸ்னிஃபிங் செய்வதைத் தடுக்கிறது, சில வகையான தாக்குதல்களைத் தணிக்கிறது.
- X-XSS-Protection: உலாவியின் உள்ளமைக்கப்பட்ட XSS வடிப்பானை செயல்படுத்துகிறது (இருப்பினும் இது CSP-யின் வலுவான திறன்களால் பெரும்பாலும் மாற்றப்பட்டுள்ளது).
- Referrer-Policy: கோரிக்கைகளுடன் எவ்வளவு பரிந்துரைப்பாளர் தகவல் அனுப்பப்படுகிறது என்பதைக் கட்டுப்படுத்துகிறது.
- Content-Security-Policy (CSP): நமது விவாதத்தின் மையம், ஒரு குறிப்பிட்ட பக்கத்திற்கு உலாவி ஏற்ற அனுமதிக்கப்படும் வளங்களைக் கட்டுப்படுத்த ஒரு சக்திவாய்ந்த பொறிமுறை.
இந்த தலைப்புகள் அனைத்தும் முக்கியமானவை என்றாலும், ஸ்கிரிப்டுகள் மற்றும் பிற வளங்களின் செயலாக்கத்தில் CSP இணையற்ற கட்டுப்பாட்டை வழங்குகிறது, இது ஜாவாஸ்கிரிப்ட் தொடர்பான பாதிப்புகளைத் தணிப்பதற்கான ஒரு முக்கிய கருவியாக அமைகிறது.
உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) பற்றிய ஆழமான பார்வை
உள்ளடக்க பாதுகாப்பு கொள்கை (CSP) என்பது குறுக்கு-தள ஸ்கிரிப்டிங் (XSS) மற்றும் தரவு உள்ளீடு தாக்குதல்கள் உள்ளிட்ட சில வகையான தாக்குதல்களைக் கண்டறிந்து தணிக்க உதவும் ஒரு கூடுதல் பாதுகாப்பு அடுக்காகும். CSP வலைத்தள நிர்வாகிகளுக்கு தங்கள் வலைப்பக்கங்களில் எந்த வளங்களை (ஸ்கிரிப்டுகள், ஸ்டைல்ஷீட்கள், படங்கள், எழுத்துருக்கள் போன்றவை) ஏற்றவும் இயக்கவும் அனுமதிக்கப்படுகிறது என்பதைக் குறிப்பிட ஒரு அறிவிப்பு வழியை வழங்குகிறது. இயல்பாக, எந்தக் கொள்கையும் வரையறுக்கப்படவில்லை என்றால், உலாவிகள் பொதுவாக எந்த மூலத்திலிருந்தும் வளங்களை ஏற்றுவதை அனுமதிக்கின்றன.
ஒவ்வொரு வகை வளத்திற்கும் நம்பகமான மூலங்களின் வெள்ளைப் பட்டியலை வரையறுக்க அனுமதிப்பதன் மூலம் CSP செயல்படுகிறது. ஒரு உலாவி CSP தலைப்பைப் பெறும்போது, அது இந்த விதிகளை அமல்படுத்துகிறது. ஒரு வளம் நம்பத்தகாத மூலத்திலிருந்து கோரப்பட்டால், உலாவி அதைத் தடுக்கும், இதனால் சாத்தியமான தீங்கிழைக்கும் உள்ளடக்கம் ஏற்றப்படுவதையோ அல்லது இயக்கப்படுவதையோ தடுக்கிறது.
CSP எவ்வாறு செயல்படுகிறது: முக்கிய கருத்துக்கள்
சேவையகத்திலிருந்து கிளையண்டிற்கு Content-Security-Policy HTTP தலைப்பை அனுப்புவதன் மூலம் CSP செயல்படுத்தப்படுகிறது. இந்தத் தலைப்பில் தொடர்ச்சியான வழிகாட்டுதல்கள் உள்ளன, ஒவ்வொன்றும் வள ஏற்றுதலின் ஒரு குறிப்பிட்ட அம்சத்தைக் கட்டுப்படுத்துகின்றன. ஜாவாஸ்கிரிப்ட் பாதுகாப்பிற்கான மிக முக்கியமான வழிகாட்டுதல் script-src ஆகும்.
ஒரு பொதுவான CSP தலைப்பு இப்படி இருக்கலாம்:
Content-Security-Policy: default-src 'self'; script-src 'self' https://apis.google.com; object-src 'none'; img-src *; media-src media1.com media2.com; style-src 'self' 'unsafe-inline'
சில முக்கிய வழிகாட்டுதல்களைப் பார்ப்போம்:
ஜாவாஸ்கிரிப்ட் பாதுகாப்பிற்கான முக்கிய CSP வழிகாட்டுதல்கள்
default-src: இது ஒரு பின்னடைவு வழிகாட்டுதல் ஆகும். ஒரு குறிப்பிட்ட வழிகாட்டுதல் (script-srcபோன்றவை) வரையறுக்கப்படவில்லை என்றால், அந்த வள வகைக்கு அனுமதிக்கப்பட்ட மூலங்களைக் கட்டுப்படுத்தdefault-srcபயன்படுத்தப்படும்.script-src: ஜாவாஸ்கிரிப்ட் செயலாக்கத்தைக் கட்டுப்படுத்துவதற்கான மிக முக்கியமான வழிகாட்டுதல் இதுவாகும். இது ஜாவாஸ்கிரிப்ட்டிற்கான செல்லுபடியாகும் மூலங்களைக் குறிப்பிடுகிறது.object-src: Flash போன்ற செருகுநிரல்களுக்கான செல்லுபடியாகும் மூலங்களை வரையறுக்கிறது. செருகுநிரல்களை முழுமையாக முடக்க இதை'none'என அமைப்பது பொதுவாக பரிந்துரைக்கப்படுகிறது.base-uri: ஒரு ஆவணத்தின்<base>உறுப்பில் பயன்படுத்தக்கூடிய URL-களை கட்டுப்படுத்துகிறது.form-action: ஆவணத்திலிருந்து சமர்ப்பிக்கப்பட்ட HTML படிவங்களின் இலக்காகப் பயன்படுத்தக்கூடிய URL-களை கட்டுப்படுத்துகிறது.frame-ancestors: தற்போதைய பக்கத்தை எந்த மூலங்கள் ஒரு சட்டகத்தில் உட்பொதிக்கலாம் என்பதைக் கட்டுப்படுத்துகிறது. இதுX-Frame-Options-க்கான நவீன மாற்றாகும்.upgrade-insecure-requests: ஒரு தளத்தின் பாதுகாப்பற்ற URL-கள் (HTTP) அனைத்தையும் பாதுகாப்பான URL-களுக்கு (HTTPS) மேம்படுத்தப்பட்டது போல நடத்துமாறு உலாவிக்கு அறிவுறுத்துகிறது.
CSP-ல் மூல மதிப்புகளைப் புரிந்துகொள்ளுதல்
CSP வழிகாட்டுதல்களில் பயன்படுத்தப்படும் மூல மதிப்புகள் நம்பகமான மூலமாக என்ன கருதப்படுகிறது என்பதை வரையறுக்கின்றன. பொதுவான மூல மதிப்புகளில் பின்வருவன அடங்கும்:
'self': ஆவணத்தின் அதே மூலத்திலிருந்து வளங்களை அனுமதிக்கிறது. இதில் திட்டம், ஹோஸ்ட் மற்றும் போர்ட் ஆகியவை அடங்கும்.'unsafe-inline':<script>தொகுதிகள் மற்றும் இன்லைன் நிகழ்வு கையாளுபவர்கள் (எ.கா.,onclickபண்புக்கூறுகள்) போன்ற இன்லைன் வளங்களை அனுமதிக்கிறது. மிகவும் எச்சரிக்கையுடன் பயன்படுத்தவும்! இன்லைன் ஸ்கிரிப்டுகளை அனுமதிப்பது XSS-க்கு எதிரான CSP-யின் செயல்திறனை கணிசமாகக் குறைக்கிறது.'unsafe-eval':eval()மற்றும்setTimeout()போன்ற ஜாவாஸ்கிரிப்ட் மதிப்பீட்டு செயல்பாடுகளை சரம் வாதங்களுடன் பயன்படுத்த அனுமதிக்கிறது. முடிந்தால் இதைத் தவிர்க்கவும்.*: எந்த மூலத்தையும் அனுமதிக்கும் ஒரு வைல்டு கார்டு (மிகவும் குறைவாகப் பயன்படுத்தவும்).- திட்டம்: எ.கா.,
https:(HTTPS-ல் எந்த ஹோஸ்டையும் அனுமதிக்கிறது). - ஹோஸ்ட்: எ.கா.,
example.com(அந்த ஹோஸ்டில் எந்த திட்டம் மற்றும் போர்ட்டையும் அனுமதிக்கிறது). - திட்டம் மற்றும் ஹோஸ்ட்: எ.கா.,
https://example.com. - திட்டம், ஹோஸ்ட் மற்றும் போர்ட்: எ.கா.,
https://example.com:8443.
உள்ளடக்க பாதுகாப்பு கொள்கையை செயல்படுத்துதல்: ஒரு படிப்படியான அணுகுமுறை
CSP-ஐ திறம்பட செயல்படுத்த, கவனமாக திட்டமிடுதல் மற்றும் உங்கள் பயன்பாட்டின் வள சார்புகளைப் பற்றிய முழுமையான புரிதல் தேவை. தவறாக உள்ளமைக்கப்பட்ட CSP உங்கள் தளத்தை உடைக்கக்கூடும், அதே சமயம் நன்கு உள்ளமைக்கப்பட்டது அதன் பாதுகாப்பை கணிசமாக மேம்படுத்துகிறது.
படி 1: உங்கள் பயன்பாட்டின் வளங்களை தணிக்கை செய்யுங்கள்
உங்கள் CSP-ஐ வரையறுப்பதற்கு முன், உங்கள் பயன்பாடு எங்கிருந்து வளங்களை ஏற்றுகிறது என்பதை நீங்கள் தெரிந்து கொள்ள வேண்டும். இதில் அடங்குவன:
- உள் ஸ்கிரிப்டுகள்: உங்கள் சொந்த ஜாவாஸ்கிரிப்ட் கோப்புகள்.
- மூன்றாம் தரப்பு ஸ்கிரிப்டுகள்: பகுப்பாய்வு சேவைகள் (எ.கா., கூகிள் அனலிட்டிக்ஸ்), விளம்பர நெட்வொர்க்குகள், சமூக ஊடக விட்ஜெட்டுகள், நூலகங்களுக்கான CDN-கள் (எ.கா., jQuery, Bootstrap).
- இன்லைன் ஸ்கிரிப்டுகள் மற்றும் நிகழ்வு கையாளுபவர்கள்: HTML குறிச்சொற்கள் அல்லது
<script>தொகுதிகளில் நேரடியாக உட்பொதிக்கப்பட்ட எந்த ஜாவாஸ்கிரிப்ட் குறியீடும். - ஸ்டைல்ஷீட்கள்: உள் மற்றும் வெளி இரண்டுமே.
- படங்கள், மீடியா, எழுத்துருக்கள்: இந்த வளங்கள் எங்கு ஹோஸ்ட் செய்யப்பட்டுள்ளன.
- படிவங்கள்: படிவ சமர்ப்பிப்புகளின் இலக்குகள்.
- வலை பணியாளர்கள் மற்றும் சேவை பணியாளர்கள்: பொருந்தினால்.
உலாவி டெவலப்பர் கன்சோல்கள் மற்றும் சிறப்பு பாதுகாப்பு ஸ்கேனர்கள் போன்ற கருவிகள் இந்த வளங்களைக் கண்டறிய உங்களுக்கு உதவும்.
படி 2: உங்கள் CSP கொள்கையை வரையறுக்கவும் (அறிக்கை பயன்முறையில் தொடங்கவும்)
CSP-ஐ செயல்படுத்த பாதுகாப்பான வழி அறிக்கை பயன்முறையில் தொடங்குவதாகும். இது எந்த வளங்களையும் தடுக்காமல் மீறல்களைக் கண்காணிக்க உங்களை அனுமதிக்கிறது. Content-Security-Policy-Report-Only தலைப்பைப் பயன்படுத்துவதன் மூலம் இதை நீங்கள் அடையலாம். எந்த மீறல்களும் ஒரு குறிப்பிட்ட அறிக்கை இறுதிப்புள்ளிக்கு அனுப்பப்படும்.
அறிக்கை-மட்டும் தலைப்புக்கான எடுத்துக்காட்டு:
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; connect-src 'self' api.example.com;
அறிக்கையிடலை இயக்க, நீங்கள் report-uri அல்லது report-to வழிகாட்டுதலையும் குறிப்பிட வேண்டும்:
report-uri: (வழக்கொழிந்தது, ஆனால் இன்னும் பரவலாக ஆதரிக்கப்படுகிறது) மீறல் அறிக்கைகள் அனுப்பப்பட வேண்டிய URL-ஐ குறிப்பிடுகிறது.report-to: (புதியது, அதிக நெகிழ்வானது) அறிக்கை இறுதிப்புள்ளிகளை விவரிக்கும் ஒரு JSON பொருளைக் குறிப்பிடுகிறது.
report-uri உடன் எடுத்துக்காட்டு:
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; report-uri /csp-violation-report-endpoint;
இந்த அறிக்கைகளைப் பெறவும் பதிவு செய்யவும் ஒரு பின்தள இறுதிப்புள்ளியை (எ.கா., Node.js, Python, PHP-ல்) அமைக்கவும். எந்த வளங்கள் தடுக்கப்படுகின்றன மற்றும் ஏன் என்பதைப் புரிந்துகொள்ள அறிக்கைகளை பகுப்பாய்வு செய்யுங்கள்.
படி 3: உங்கள் கொள்கையை மீண்டும் மீண்டும் செம்மைப்படுத்துங்கள்
மீறல் அறிக்கைகளின் அடிப்படையில், உங்கள் CSP வழிகாட்டுதல்களை படிப்படியாக சரிசெய்வீர்கள். சாத்தியமான தீங்கிழைக்கும் வளங்களைத் தடுக்கும் அதே வேளையில் அனைத்து முறையான வளங்களையும் அனுமதிக்கும் ஒரு கொள்கையை உருவாக்குவதே குறிக்கோள்.
பொதுவான சரிசெய்தல்களில் பின்வருவன அடங்கும்:
- குறிப்பிட்ட மூன்றாம் தரப்பு களங்களை அனுமதித்தல்: ஒரு முறையான மூன்றாம் தரப்பு ஸ்கிரிப்ட் (எ.கா., ஒரு ஜாவாஸ்கிரிப்ட் நூலகத்திற்கான CDN) தடுக்கப்பட்டால், அதன் களத்தை
script-srcவழிகாட்டுதலில் சேர்க்கவும். எடுத்துக்காட்டாக:script-src 'self' https://cdnjs.cloudflare.com; - இன்லைன் ஸ்கிரிப்டுகளைக் கையாளுதல்: உங்களிடம் இன்லைன் ஸ்கிரிப்டுகள் அல்லது நிகழ்வு கையாளுபவர்கள் இருந்தால், உங்களுக்கு சில விருப்பங்கள் உள்ளன. மிகவும் பாதுகாப்பானது உங்கள் குறியீட்டை தனி ஜாவாஸ்கிரிப்ட் கோப்புகளுக்கு நகர்த்துவதாகும். அது உடனடியாக சாத்தியமில்லை என்றால்:
- நான்ஸ் (ஒருமுறை பயன்படுத்தப்படும் எண்) பயன்படுத்தவும்: ஒவ்வொரு கோரிக்கைக்கும் ஒரு தனித்துவமான, கணிக்க முடியாத டோக்கனை (நான்ஸ்) உருவாக்கி அதை
script-srcவழிகாட்டுதலில் சேர்க்கவும். பின்னர், உங்கள்<script>குறிச்சொற்களில்nonce-பண்புக்கூறைச் சேர்க்கவும். எடுத்துக்காட்டு:script-src 'self' 'nonce-random123';மற்றும்<script nonce="random123">alert('hello');</script>. - ஹாஷ்களைப் பயன்படுத்தவும்: மாறாத இன்லைன் ஸ்கிரிப்டுகளுக்கு, ஸ்கிரிப்ட்டின் உள்ளடக்கத்தின் ஒரு கிரிப்டோகிராஃபிக் ஹாஷை (எ.கா., SHA-256) உருவாக்கி அதை
script-srcவழிகாட்டுதலில் சேர்க்கலாம். எடுத்துக்காட்டு:script-src 'self' 'sha256-somehashvalue';. 'unsafe-inline'(கடைசி புகலிடம்): குறிப்பிட்டபடி, இது பாதுகாப்பைக் குறைக்கிறது. முற்றிலும் அவசியமானால் மற்றும் ஒரு தற்காலிக நடவடிக்கையாக மட்டுமே இதைப் பயன்படுத்தவும்.
- நான்ஸ் (ஒருமுறை பயன்படுத்தப்படும் எண்) பயன்படுத்தவும்: ஒவ்வொரு கோரிக்கைக்கும் ஒரு தனித்துவமான, கணிக்க முடியாத டோக்கனை (நான்ஸ்) உருவாக்கி அதை
eval()கையாளுதல்: உங்கள் பயன்பாடுeval()அல்லது ஒத்த செயல்பாடுகளை நம்பியிருந்தால், அவற்றைத் தவிர்க்க குறியீட்டை மீண்டும் மாற்றியமைக்க வேண்டும். தவிர்க்க முடியாததாக இருந்தால், நீங்கள்'unsafe-eval'சேர்க்க வேண்டும், ஆனால் இது மிகவும் ஊக்கமளிக்கப்படவில்லை.- படங்கள், ஸ்டைல்கள் போன்றவற்றை அனுமதித்தல்: একইভাবে, உங்கள் பயன்பாட்டின் தேவைகளின் அடிப்படையில்
img-src,style-src,font-srcபோன்றவற்றை சரிசெய்யவும்.
படி 4: அமலாக்க பயன்முறைக்கு மாறவும்
உங்கள் CSP கொள்கை முறையான செயல்பாட்டை உடைக்கவில்லை என்றும் சாத்தியமான அச்சுறுத்தல்களை திறம்பட báo cáo செய்கிறது என்றும் நீங்கள் உறுதியாக நம்பியவுடன், Content-Security-Policy-Report-Only தலைப்பிலிருந்து Content-Security-Policy தலைப்புக்கு மாறவும்.
அமலாக்க தலைப்புக்கான எடுத்துக்காட்டு:
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline'; img-src *;
நீங்கள் இனி அறிக்கைகளைப் பெற விரும்பவில்லை என்றால், அமலாக்க தலைப்பிலிருந்து report-uri அல்லது report-to வழிகாட்டுதலை அகற்றவோ அல்லது முடக்கவோ நினைவில் கொள்ளுங்கள் (இருப்பினும் அதை வைத்திருப்பது கண்காணிப்பிற்கு இன்னும் பயனுள்ளதாக இருக்கும்).
படி 5: தொடர்ச்சியான கண்காணிப்பு மற்றும் பராமரிப்பு
பாதுகாப்பு என்பது ஒரு முறை அமைப்பு அல்ல. உங்கள் பயன்பாடு உருவாகும்போது, புதிய ஸ்கிரிப்டுகள் சேர்க்கப்படும்போது, அல்லது மூன்றாம் தரப்பு சார்புகள் புதுப்பிக்கப்படும்போது, உங்கள் CSP-க்கு சரிசெய்தல்கள் தேவைப்படலாம். எந்த மீறல் அறிக்கைகளுக்கும் தொடர்ந்து கண்காணித்து, தேவைக்கேற்ப உங்கள் கொள்கையைப் புதுப்பிக்கவும்.
மேம்பட்ட CSP நுட்பங்கள் மற்றும் சிறந்த நடைமுறைகள்
அடிப்படை செயல்படுத்தலுக்கு அப்பால், பல மேம்பட்ட நுட்பங்கள் மற்றும் சிறந்த நடைமுறைகள் உங்கள் இணையப் பயன்பாட்டின் பாதுகாப்பை CSP உடன் மேலும் வலுப்படுத்த முடியும்.
1. படிப்படியான வெளியீடு
பெரிய அல்லது சிக்கலான பயன்பாடுகளுக்கு, CSP-ஐ படிப்படியாக வெளியிடுவதைக் கருத்தில் கொள்ளுங்கள். ஒரு அனுமதிக்கப்பட்ட கொள்கையுடன் தொடங்கி படிப்படியாக அதை இறுக்கமாக்குங்கள். முழு உலகளாவிய அமலாக்கத்திற்கு முன் குறிப்பிட்ட பயனர் பிரிவுகள் அல்லது பிராந்தியங்களுக்கு CSP-ஐ அறிக்கை பயன்முறையில் பயன்படுத்தலாம்.
2. முடிந்தவரை உங்கள் சொந்த ஸ்கிரிப்டுகளை ஹோஸ்ட் செய்யுங்கள்
CDN-கள் வசதியானவை என்றாலும், அவை மூன்றாம் தரப்பு அபாயத்தைக் குறிக்கின்றன. ஒரு CDN சமரசம் செய்யப்பட்டால், உங்கள் பயன்பாடு பாதிக்கப்படலாம். உங்கள் அத்தியாவசிய ஜாவாஸ்கிரிப்ட் நூலகங்களை உங்கள் சொந்த களத்தில், HTTPS மூலம் வழங்கப்படுவது, உங்கள் CSP-ஐ எளிதாக்கலாம் மற்றும் வெளிப்புற சார்புகளைக் குறைக்கலாம்.
3. frame-ancestors-ஐப் பயன்படுத்துங்கள்
கிளிக்ஜாக்கிங்கைத் தடுக்க frame-ancestors வழிகாட்டுதல் நவீன மற்றும் விரும்பப்படும் வழியாகும். X-Frame-Options-ஐ மட்டுமே நம்பியிருப்பதற்குப் பதிலாக, உங்கள் CSP-ல் frame-ancestors-ஐப் பயன்படுத்தவும்.
எடுத்துக்காட்டு:
Content-Security-Policy: frame-ancestors 'self' https://partner.example.com;
இது உங்கள் பக்கத்தை உங்கள் சொந்த களத்தாலும் ஒரு குறிப்பிட்ட கூட்டாளர் களத்தாலும் மட்டுமே உட்பொதிக்க அனுமதிக்கிறது.
4. API அழைப்புகளுக்கு connect-src-ஐப் பயன்படுத்தவும்
ஜாவாஸ்கிரிப்ட் எங்கு இணைப்புகளை உருவாக்க முடியும் (எ.கா., fetch, XMLHttpRequest, WebSocket பயன்படுத்தி) என்பதை connect-src வழிகாட்டுதல் கட்டுப்படுத்துகிறது. தரவு வெளியேற்றத்திற்கு எதிராகப் பாதுகாக்க இது முக்கியமானது.
எடுத்துக்காட்டு:
Content-Security-Policy: default-src 'self'; connect-src 'self' api.internal.example.com admin.external.com;
இது உங்கள் உள் API மற்றும் ஒரு குறிப்பிட்ட வெளிப்புற நிர்வாக சேவைக்கு மட்டுமே API அழைப்புகளை அனுமதிக்கிறது.
5. CSP நிலை 2 மற்றும் அதற்கு அப்பால்
CSP காலப்போக்கில் வளர்ந்துள்ளது. CSP நிலை 2 போன்ற அம்சங்களை அறிமுகப்படுத்தியது:
- ஸ்கிரிப்ட்/ஸ்டைலுக்கு முக்கிய வார்த்தைகளாக `unsafe-inline` மற்றும் `unsafe-eval`: இன்லைன் ஸ்டைல்கள் மற்றும் ஸ்கிரிப்டுகளை அனுமதிப்பதில் தனித்தன்மை.
- `report-to` வழிகாட்டுதல்: ஒரு நெகிழ்வான அறிக்கை பொறிமுறை.
- `child-src` வழிகாட்டுதல்: வலை பணியாளர்கள் மற்றும் ஒத்த உட்பொதிக்கப்பட்ட உள்ளடக்கத்திற்கான மூலங்களைக் கட்டுப்படுத்த.
CSP நிலை 3 தொடர்ந்து அதிக வழிகாட்டுதல்களையும் அம்சங்களையும் சேர்க்கிறது. சமீபத்திய விவரக்குறிப்புகளுடன் புதுப்பித்த நிலையில் இருப்பது நீங்கள் மிகவும் வலுவான பாதுகாப்பு நடவடிக்கைகளைப் பயன்படுத்துவதை உறுதி செய்கிறது.
6. CSP-ஐ சர்வர்-சைட் பிரேம்வொர்க்குகளுடன் ஒருங்கிணைத்தல்
பெரும்பாலான நவீன வலை பிரேம்வொர்க்குகள் CSP உட்பட HTTP தலைப்புகளை அமைப்பதற்கான இடைப்பொருள் அல்லது உள்ளமைவு விருப்பங்களை வழங்குகின்றன. எடுத்துக்காட்டாக:
- Node.js (Express): `helmet` போன்ற நூலகங்களைப் பயன்படுத்தவும்.
- Python (Django/Flask): உங்கள் பார்வை செயல்பாடுகளில் தலைப்புகளைச் சேர்க்கவும் அல்லது குறிப்பிட்ட இடைப்பொருளைப் பயன்படுத்தவும்.
- Ruby on Rails: `config/initializers/content_security_policy.rb`-ஐ உள்ளமைக்கவும்.
- PHP: `header()` செயல்பாடு அல்லது பிரேம்வொர்க்-குறிப்பிட்ட உள்ளமைவுகளைப் பயன்படுத்தவும்.
பரிந்துரைக்கப்பட்ட அணுகுமுறைக்கு எப்போதும் உங்கள் பிரேம்வொர்க்கின் ஆவணங்களைப் பார்க்கவும்.
7. டைனமிக் உள்ளடக்கம் மற்றும் பிரேம்வொர்க்குகளைக் கையாளுதல்
நவீன ஜாவாஸ்கிரிப்ட் பிரேம்வொர்க்குகள் (React, Vue, Angular) பெரும்பாலும் குறியீட்டை டைனமிக்காக உருவாக்குகின்றன. இது CSP செயல்படுத்தலை தந்திரமானதாக மாற்றும், குறிப்பாக இன்லைன் ஸ்டைல்கள் மற்றும் நிகழ்வு கையாளுபவர்களுடன். இந்த பிரேம்வொர்க்குகளுக்கு பரிந்துரைக்கப்பட்ட அணுகுமுறை:
- இன்லைன் ஸ்டைல்கள் மற்றும் நிகழ்வு கையாளுபவர்களைத் தவிர்க்கவும் முடிந்தவரை, தனி CSS கோப்புகள் அல்லது ஸ்டைலிங் மற்றும் நிகழ்வு பிணைப்புக்கான பிரேம்வொர்க்-குறிப்பிட்ட வழிமுறைகளைப் பயன்படுத்துவதன் மூலம்.
- நான்ஸ்கள் அல்லது ஹாஷ்களைப் பயன்படுத்தவும் டைனமிக்காக உருவாக்கப்பட்ட எந்த ஸ்கிரிப்ட் குறிச்சொற்களுக்கும் முழுமையான தவிர்ப்பு சாத்தியமில்லை என்றால்.
- உங்கள் பிரேம்வொர்க்கின் உருவாக்க செயல்முறை CSP உடன் வேலை செய்ய உள்ளமைக்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும் (எ.கா., ஸ்கிரிப்ட் குறிச்சொற்களில் நான்ஸ்களை செலுத்த உங்களை அனுமதிப்பதன் மூலம்).
எடுத்துக்காட்டாக, React-ஐப் பயன்படுத்தும்போது, `index.html` கோப்பில் ஒரு நான்ஸைச் செலுத்த உங்கள் சேவையகத்தை உள்ளமைக்க வேண்டியிருக்கலாம், பின்னர் அந்த நான்ஸை உங்கள் React பயன்பாட்டிற்கு டைனமிக்காக உருவாக்கப்பட்ட ஸ்கிரிப்ட் குறிச்சொற்களுடன் பயன்படுத்த அனுப்ப வேண்டும்.
பொதுவான ஆபத்துகள் மற்றும் அவற்றை எவ்வாறு தவிர்ப்பது
CSP-ஐ செயல்படுத்துவது சில நேரங்களில் எதிர்பாராத சிக்கல்களுக்கு வழிவகுக்கும். இங்கே பொதுவான ஆபத்துகள் மற்றும் அவற்றை எவ்வாறு வழிநடத்துவது என்பது கொடுக்கப்பட்டுள்ளது:
- அதிகப்படியான கட்டுப்படுத்தப்பட்ட கொள்கைகள்: அத்தியாவசிய வளங்களைத் தடுப்பது. தீர்வு: அறிக்கை பயன்முறையில் தொடங்கி உங்கள் பயன்பாட்டை கவனமாக தணிக்கை செய்யுங்கள்.
- தேவையில்லாமல்
'unsafe-inline'மற்றும்'unsafe-eval'பயன்படுத்துதல்: இது பாதுகாப்பை கணிசமாகக் குறைக்கிறது. தீர்வு: நான்ஸ்கள், ஹாஷ்கள் அல்லது தனி கோப்புகளைப் பயன்படுத்த குறியீட்டை மீண்டும் மாற்றியமைக்கவும். - அறிக்கையிடலைச் சரியாகக் கையாளாதது: அறிக்கை இறுதிப்புள்ளியை அமைக்காதது அல்லது அறிக்கைகளைப் புறக்கணிப்பது. தீர்வு: ஒரு வலுவான அறிக்கை பொறிமுறையைச் செயல்படுத்தி, தரவை தவறாமல் பகுப்பாய்வு செய்யுங்கள்.
- துணைக்களங்களை மறந்துவிடுதல்: உங்கள் பயன்பாடு துணைக்களங்களைப் பயன்படுத்தினால், உங்கள் CSP விதிகள் அவற்றை வெளிப்படையாக உள்ளடக்கியிருப்பதை உறுதிப்படுத்தவும். தீர்வு: வைல்டு கார்டு களங்களைப் பயன்படுத்தவும் (எ.கா., `*.example.com`) அல்லது ஒவ்வொரு துணைக்களத்தையும் பட்டியலிடவும்.
report-onlyமற்றும் அமலாக்க தலைப்புகளைக் குழப்புதல்: உற்பத்தியில்report-onlyகொள்கையைப் பயன்படுத்துவது உங்கள் தளத்தை உடைக்கக்கூடும். தீர்வு: அமலாக்கத்தை இயக்குவதற்கு முன் எப்போதும் உங்கள் கொள்கையை அறிக்கை பயன்முறையில் சரிபார்க்கவும்.- உலாவி இணக்கத்தன்மையைப் புறக்கணித்தல்: CSP பரவலாக ஆதரிக்கப்பட்டாலும், பழைய உலாவிகள் எல்லா வழிகாட்டுதல்களையும் முழுமையாகச் செயல்படுத்தாமல் இருக்கலாம். தீர்வு: பழைய உலாவிகளுக்கு பின்னடைவுகள் அல்லது மென்மையான சீரழிவை வழங்கவும், அல்லது அவை முழு CSP பாதுகாப்பைக் கொண்டிருக்காது என்பதை ஏற்றுக்கொள்ளவும்.
CSP செயல்படுத்தலுக்கான உலகளாவிய பரிசீலனைகள்
உலகளாவிய பார்வையாளர்களுக்காக CSP-ஐ செயல்படுத்தும்போது, பல காரணிகள் முக்கியமானவை:
- பல்வேறு உள்கட்டமைப்பு: உங்கள் பயன்பாடு வெவ்வேறு பிராந்தியங்களில் ஹோஸ்ட் செய்யப்படலாம் அல்லது பிராந்திய CDN-களைப் பயன்படுத்தலாம். உங்கள் CSP அனைத்து தொடர்புடைய மூலங்களிலிருந்தும் வளங்களை அனுமதிப்பதை உறுதிப்படுத்தவும்.
- மாறுபட்ட விதிமுறைகள் மற்றும் இணக்கம்: CSP ஒரு தொழில்நுட்பக் கட்டுப்பாடு என்றாலும், தரவு தனியுரிமை விதிமுறைகள் (GDPR, CCPA போன்றவை) பற்றி அறிந்திருங்கள் மற்றும் உங்கள் CSP செயல்படுத்தல் அவற்றுடன் ஒத்துப்போவதை உறுதிப்படுத்தவும், குறிப்பாக மூன்றாம் தரப்பினருக்கு தரவு பரிமாற்றம் குறித்து.
- மொழி மற்றும் உள்ளூர்மயமாக்கல்: எந்தவொரு டைனமிக் உள்ளடக்கம் அல்லது பயனர் உருவாக்கிய உள்ளடக்கம் பாதுகாப்பாகக் கையாளப்படுவதை உறுதிப்படுத்தவும், ஏனெனில் அது பயனரின் மொழியைப் பொருட்படுத்தாமல் உள்ளீடு தாக்குதல்களுக்கான ஒரு வெக்டராக இருக்கலாம்.
- பல்வேறு சூழல்களில் சோதனை செய்தல்: நிலையான பாதுகாப்பு மற்றும் செயல்திறனை உறுதிப்படுத்த உங்கள் CSP கொள்கையை பல்வேறு நெட்வொர்க் நிலைகள் மற்றும் புவியியல் இடங்களில் முழுமையாகச் சோதிக்கவும்.
முடிவுரை
உள்ளடக்க பாதுகாப்பு கொள்கை என்பது XSS போன்ற ஜாவாஸ்கிரிப்ட் தொடர்பான அச்சுறுத்தல்களுக்கு எதிராக நவீன இணையப் பயன்பாடுகளைப் பாதுகாப்பதற்கான ஒரு சக்திவாய்ந்த மற்றும் அத்தியாவசியமான கருவியாகும். அதன் வழிகாட்டுதல்களைப் புரிந்துகொள்வதன் மூலமும், அதை முறையாகச் செயல்படுத்துவதன் மூலமும், சிறந்த நடைமுறைகளைக் கடைப்பிடிப்பதன் மூலமும், உங்கள் இணையப் பயன்பாடுகளின் பாதுகாப்பு நிலையை நீங்கள் கணிசமாக மேம்படுத்தலாம்.
நினைவில் கொள்ள வேண்டியவை:
- உங்கள் வளங்களை விடாமுயற்சியுடன் தணிக்கை செய்யுங்கள்.
- மீறல்களைக் கண்டறிய அறிக்கை பயன்முறையில் தொடங்கவும்.
- பாதுகாப்பு மற்றும் செயல்பாட்டை சமநிலைப்படுத்த உங்கள் கொள்கையை மீண்டும் மீண்டும் செம்மைப்படுத்துங்கள்.
- முடிந்தவரை
'unsafe-inline'மற்றும்'unsafe-eval'-ஐத் தவிர்க்கவும். - தொடர்ச்சியான செயல்திறனுக்காக உங்கள் CSP-ஐக் கண்காணிக்கவும்.
CSP-ஐ செயல்படுத்துவது உங்கள் இணையப் பயன்பாட்டின் பாதுகாப்பு மற்றும் நம்பகத்தன்மையில் ஒரு முதலீடு. ஒரு செயலூக்கமான மற்றும் முறையான அணுகுமுறையை மேற்கொள்வதன் மூலம், உங்கள் பயனர்களையும் உங்கள் நிறுவனத்தையும் வலையில் எப்போதும் இருக்கும் அச்சுறுத்தல்களிலிருந்து பாதுகாக்கும் மிகவும் நெகிழ்வான பயன்பாடுகளை நீங்கள் உருவாக்கலாம்.
பாதுப்பாக இருங்கள்!