CORS (Cross-Origin Resource Sharing)-ன் இரகசியங்களைத் திறந்து, உங்கள் வலைப் பயன்பாடுகளில் கிராஸ்-டொமைன் கோரிக்கைகளை எவ்வாறு பாதுகாப்பாக இயக்குவது என்பதை அறியுங்கள். இந்த விரிவான வழிகாட்டி அடிப்படைகள் முதல் மேம்பட்ட கட்டமைப்புகள் வரை அனைத்தையும் உள்ளடக்கி, வெவ்வேறு மூலங்களுக்கு இடையே தடையற்ற மற்றும் பாதுகாப்பான தொடர்பை உறுதி செய்கிறது.
CORS-ஐ எளிமையாக்குதல்: Cross-Origin Resource Sharing-க்கான ஒரு விரிவான வழிகாட்டி
இன்றைய இணைக்கப்பட்ட வலையமைப்பில், பயன்பாடுகள் அடிக்கடி வெவ்வேறு மூலங்களிலிருந்து வளங்களை அணுக வேண்டியுள்ளது. இங்குதான் Cross-Origin Resource Sharing (CORS) செயல்பாட்டிற்கு வருகிறது. CORS என்பது ஒரு முக்கியமான பாதுகாப்பு வழிமுறையாகும், இது ஒரு மூலத்திலிருந்து (டொமைன், புரோட்டோகால் மற்றும் போர்ட்) மற்றொரு மூலத்திற்கு வரும் கோரிக்கைகளை வலை உலாவிகள் எவ்வாறு கையாள வேண்டும் என்பதை நிர்வகிக்கிறது. பாதுகாப்பான மற்றும் செயல்பாட்டு வலைப் பயன்பாடுகளை உருவாக்க ஒவ்வொரு வலை உருவாக்குநருக்கும் CORS-ஐப் புரிந்துகொள்வது அவசியமாகும்.
ஒரே மூலக் கொள்கை (Same-Origin Policy) என்றால் என்ன?
CORS-க்குள் நுழைவதற்கு முன், ஒரே மூலக் கொள்கையை (SOP) புரிந்துகொள்வது முக்கியம். SOP என்பது வலை உலாவிகளில் செயல்படுத்தப்பட்ட ஒரு அடிப்படை பாதுகாப்பு வழிமுறையாகும். இதன் நோக்கம், ஒரு இணையதளத்தில் உள்ள தீங்கிழைக்கும் ஸ்கிரிப்ட்கள் மற்றொரு இணையதளத்தில் உள்ள முக்கியமான தரவை அணுகுவதைத் தடுப்பதாகும். ஒரு மூலம் என்பது புரோட்டோகால் (எ.கா., HTTP அல்லது HTTPS), டொமைன் (எ.கா., example.com), மற்றும் போர்ட் எண் (எ.கா., 80 அல்லது 443) ஆகியவற்றின் கலவையால் வரையறுக்கப்படுகிறது. இரண்டு URL-கள் ஒரே புரோட்டோகால், டொமைன் மற்றும் போர்ட்டைப் பகிர்ந்து கொண்டால், அவை ஒரே மூலத்தைக் கொண்டதாகக் கருதப்படுகின்றன.
உதாரணம்:
http://example.com/app1
மற்றும்http://example.com/app2
- ஒரே மூலம் (ஒரே புரோட்டோகால், டொமைன் மற்றும் போர்ட்)https://example.com/app1
மற்றும்http://example.com/app1
- வேறு மூலம் (வேறு புரோட்டோகால்)http://example.com:8080/app1
மற்றும்http://example.com/app1
- வேறு மூலம் (வேறு போர்ட்)http://sub.example.com/app1
மற்றும்http://example.com/app1
- வேறு மூலம் (வேறு சப்டொமைன் – வேறு டொமைனாகக் கருதப்படுகிறது)
CORS போன்ற குறிப்பிட்ட நடவடிக்கைகள் அதை அனுமதிக்காத வரை, ஒரு வேறுபட்ட மூலத்திலிருந்து வளங்களை அணுகுவதிலிருந்து SOP ஸ்கிரிப்ட்களைக் கட்டுப்படுத்துகிறது.
CORS ஏன் அவசியம்?
ஒரே மூலக் கொள்கை பாதுகாப்பிற்கு இன்றியமையாததாக இருந்தாலும், அது கட்டுப்பாடாகவும் இருக்கலாம். பல நவீன வலைப் பயன்பாடுகள் API-கள் அல்லது உள்ளடக்க விநியோக நெட்வொர்க்குகள் (CDN-கள்) போன்ற வெவ்வேறு சர்வர்களிலிருந்து தரவைப் பெறுவதை நம்பியுள்ளன. CORS, பாதுகாப்பைப் பேணிக்கொண்டே, சட்டப்பூர்வமான கிராஸ்-ஆரிஜின் கோரிக்கைகளை அனுமதிக்க SOP-ஐ தளர்த்துவதற்கான ஒரு கட்டுப்படுத்தப்பட்ட வழியை வழங்குகிறது.
http://example.com
இல் ஹோஸ்ட் செய்யப்பட்ட ஒரு வலைப் பயன்பாடு http://api.example.net
இல் ஹோஸ்ட் செய்யப்பட்ட API சர்வரிலிருந்து தரவைப் பெற வேண்டும் என்று ஒரு சூழ்நிலையைக் கவனியுங்கள். CORS இல்லாமல், SOP காரணமாக உலாவி இந்த கோரிக்கையைத் தடுக்கும். CORS, API சர்வர் அதன் வளங்களை அணுக எந்த மூலங்கள் அனுமதிக்கப்படுகின்றன என்பதை வெளிப்படையாகக் குறிப்பிட அனுமதிக்கிறது, இதனால் வலைப் பயன்பாடு சரியாக செயல்பட உதவுகிறது.
CORS எவ்வாறு செயல்படுகிறது: அடிப்படைகள்
CORS, கிளையன்ட் (உலாவி) மற்றும் சர்வருக்கு இடையில் பரிமாறப்படும் HTTP தலைப்புகளின் தொடர் மூலம் செயல்படுகிறது. கோரப்பட்ட வளத்தை அணுக அனுமதிக்கப்படுகிறதா என்பதை உலாவிக்குத் தெரிவிக்க சர்வர் இந்தத் தலைப்புகளைப் பயன்படுத்துகிறது. இதில் உள்ள முக்கிய HTTP தலைப்பு Access-Control-Allow-Origin
ஆகும்.
காட்சி 1: எளிய கோரிக்கை
ஒரு "எளிய கோரிக்கை" என்பது ஒரு GET, HEAD, அல்லது POST கோரிக்கை ஆகும், இது குறிப்பிட்ட நிபந்தனைகளை பூர்த்தி செய்கிறது (எ.கா., Content-Type
தலைப்பு application/x-www-form-urlencoded
, multipart/form-data
, அல்லது text/plain
இல் ஒன்றாகும்). இந்த நிலையில், உலாவி கோரிக்கையை நேரடியாக சர்வருக்கு அனுப்புகிறது, மேலும் சர்வர் Access-Control-Allow-Origin
தலைப்புடன் பதிலளிக்கிறது.
கிளையன்ட் கோரிக்கை (http://example.com-லிருந்து):
GET /data HTTP/1.1
Host: api.example.net
Origin: http://example.com
சர்வர் பதில் (http://api.example.net-லிருந்து):
HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://example.com
Content-Type: application/json
{
"data": "சர்வரிலிருந்து சில தரவு"
}
இந்த எடுத்துக்காட்டில், சர்வர் Access-Control-Allow-Origin: http://example.com
உடன் பதிலளிக்கிறது, இது http://example.com
இலிருந்து வரும் கோரிக்கைகள் அனுமதிக்கப்படுகின்றன என்பதைக் குறிக்கிறது. கோரிக்கையில் உள்ள மூலம் Access-Control-Allow-Origin
தலைப்பில் உள்ள மதிப்புடன் பொருந்தவில்லை என்றால் (அல்லது தலைப்பு இல்லை என்றால்), உலாவி பதிலை தடுத்து, கிளையன்ட் பக்க ஸ்கிரிப்ட் தரவை அணுகுவதைத் தடுக்கும்.
காட்சி 2: முன் கோரிக்கை (சிக்கலான கோரிக்கைகளுக்கு)
PUT, DELETE போன்ற HTTP முறைகளைப் பயன்படுத்தும் அல்லது தனிப்பயன் தலைப்புகளைக் கொண்ட சிக்கலான கோரிக்கைகளுக்கு, உலாவி HTTP OPTIONS முறையைப் பயன்படுத்தி ஒரு "முன் கோரிக்கையை" செய்கிறது. இந்த முன் கோரிக்கை உண்மையான கோரிக்கையை அனுப்புவதற்கு முன்பு சர்வரிடம் அனுமதி கேட்கிறது. எந்த முறைகள், தலைப்புகள் மற்றும் மூலங்கள் அனுமதிக்கப்படுகின்றன என்பதைக் குறிப்பிடும் தலைப்புகளுடன் சர்வர் பதிலளிக்கிறது.
கிளையன்ட் முன் கோரிக்கை (http://example.com-லிருந்து):
OPTIONS /data HTTP/1.1
Host: api.example.net
Origin: http://example.com
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: X-Custom-Header
சர்வர் பதில் (http://api.example.net-லிருந்து):
HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://example.com
Access-Control-Allow-Methods: GET, PUT, DELETE
Access-Control-Allow-Headers: X-Custom-Header, Content-Type
Access-Control-Max-Age: 3600
தலைப்புகளின் விளக்கம்:
Access-Control-Allow-Origin: http://example.com
-http://example.com
இலிருந்து வரும் கோரிக்கைகள் அனுமதிக்கப்படுகின்றன என்பதைக் குறிக்கிறது.Access-Control-Allow-Methods: GET, PUT, DELETE
- கிராஸ்-ஆரிஜின் கோரிக்கைகளுக்கு அனுமதிக்கப்பட்ட HTTP முறைகளைக் குறிப்பிடுகிறது.Access-Control-Allow-Headers: X-Custom-Header, Content-Type
- உண்மையான கோரிக்கையில் அனுமதிக்கப்பட்ட தனிப்பயன் தலைப்புகளைப் பட்டியலிடுகிறது.Access-Control-Max-Age: 3600
- முன் கோரிக்கை பதிலை உலாவி தற்காலிகமாக சேமிக்கக்கூடிய கால அளவை (விநாடிகளில்) குறிப்பிடுகிறது. இது முன் கோரிக்கைகளின் எண்ணிக்கையைக் குறைக்க உதவுகிறது.
சர்வரின் முன் கோரிக்கை பதில் கோரிக்கை அனுமதிக்கப்பட்டிருப்பதைக் குறித்தால், உலாவி உண்மையான கோரிக்கையைத் தொடரும். இல்லையெனில், உலாவி கோரிக்கையைத் தடுக்கும்.
கிளையன்ட் உண்மையான கோரிக்கை (http://example.com-லிருந்து):
PUT /data HTTP/1.1
Host: api.example.net
Origin: http://example.com
X-Custom-Header: some-value
Content-Type: application/json
{
"data": "புதுப்பிக்கப்பட வேண்டிய சில தரவு"
}
சர்வர் பதில் (http://api.example.net-லிருந்து):
HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://example.com
Content-Type: application/json
{
"status": "தரவு வெற்றிகரமாக புதுப்பிக்கப்பட்டது"
}
பொதுவான CORS தலைப்புகள்
நீங்கள் புரிந்து கொள்ள வேண்டிய முக்கிய CORS தலைப்புகளின் முறிவு இங்கே:
Access-Control-Allow-Origin
: இந்த தலைப்பு மிகவும் அடிப்படையானது. இது வளத்தை அணுக அனுமதிக்கப்பட்ட மூலங்களை குறிப்பிடுகிறது. சாத்தியமான மதிப்புகள் பின்வருமாறு:- ஒரு குறிப்பிட்ட மூலம் (எ.கா.,
http://example.com
). *
(wildcard): இது எந்த மூலத்திலிருந்தும் வரும் கோரிக்கைகளை அனுமதிக்கிறது. எச்சரிக்கையுடன் பயன்படுத்தவும், ஏனெனில் முக்கியமான தரவு சம்பந்தப்பட்டிருந்தால் இது பாதுகாப்பிற்கு ஆபத்தை விளைவிக்கும். இது பொதுவாக தயாரிப்பு சூழல்களில் தவிர்க்கப்பட வேண்டும்.
- ஒரு குறிப்பிட்ட மூலம் (எ.கா.,
Access-Control-Allow-Methods
: இந்த தலைப்பு கிராஸ்-ஆரிஜின் கோரிக்கைகளுக்கு அனுமதிக்கப்பட்ட HTTP முறைகளை (எ.கா., GET, POST, PUT, DELETE) குறிப்பிடுகிறது. இது முன் கோரிக்கை பதிலில் பயன்படுத்தப்படுகிறது.Access-Control-Allow-Headers
: இந்த தலைப்பு கிராஸ்-ஆரிஜின் கோரிக்கைகளில் அனுமதிக்கப்பட்ட தனிப்பயன் தலைப்புகளை பட்டியலிடுகிறது. இதுவும் முன் கோரிக்கை பதிலில் பயன்படுத்தப்படுகிறது.Access-Control-Allow-Credentials
: இந்த தலைப்பு கிராஸ்-ஆரிஜின் கோரிக்கைகளில் நற்சான்றிதழ்களை (எ.கா., குக்கீகள், அங்கீகார தலைப்புகள்) சேர்க்க சர்வர் அனுமதிக்கிறதா என்பதைக் குறிக்கிறது. நீங்கள் நற்சான்றிதழ்களை அனுப்ப வேண்டும் என்றால் இதைtrue
என அமைக்க வேண்டும். கிளையன்ட் பக்கத்திலும், நீங்கள் XMLHttpRequest பொருளில்withCredentials = true
என அமைக்க வேண்டும்.Access-Control-Expose-Headers
: இயல்பாக, உலாவிகள் ஒரு வரையறுக்கப்பட்ட பதில் தலைப்புகளை மட்டுமே (எ.கா.,Cache-Control
,Content-Language
,Content-Type
,Expires
,Last-Modified
,Pragma
) கிளையன்ட் பக்க ஸ்கிரிப்ட்களுக்கு வெளிப்படுத்துகின்றன. நீங்கள் மற்ற தலைப்புகளை வெளிப்படுத்த விரும்பினால், அவற்றைAccess-Control-Expose-Headers
தலைப்பில் பட்டியலிட வேண்டும்.Access-Control-Max-Age
: இந்த தலைப்பு ஒரு உலாவி முன் கோரிக்கையை தற்காலிகமாக சேமிக்கக்கூடிய அதிகபட்ச நேரத்தை (விநாடிகளில்) குறிப்பிடுகிறது. ஒரு நீண்ட மதிப்பு முன் கோரிக்கைகளின் எண்ணிக்கையைக் குறைத்து, செயல்திறனை மேம்படுத்துகிறது.
பல்வேறு சர்வர்-பக்க மொழிகளில் CORS
CORS-ஐ செயல்படுத்துவது என்பது பொதுவாக உங்கள் சர்வர் பக்க பயன்பாட்டை பொருத்தமான CORS தலைப்புகளை அனுப்ப உள்ளமைப்பதை உள்ளடக்கியது. பல்வேறு மொழிகள் மற்றும் கட்டமைப்புகளில் இதை எப்படி செய்வது என்பதற்கான எடுத்துக்காட்டுகள் இங்கே:
Node.js மற்றும் Express-ல்
நீங்கள் cors
மிடில்வேர் பேக்கேஜை பயன்படுத்தலாம்:
const express = require('express');
const cors = require('cors');
const app = express();
// அனைத்து மூலங்களுக்கும் CORS-ஐ இயக்கு (தயாரிப்பில் எச்சரிக்கையுடன் பயன்படுத்தவும்)
app.use(cors());
// மாற்றாக, குறிப்பிட்ட மூலங்களுக்கு CORS-ஐ உள்ளமைக்கவும்
// app.use(cors({
// origin: 'http://example.com'
// }));
app.get('/data', (req, res) => {
res.json({ message: 'இது அனைத்து மூலங்களுக்கும் CORS-இயக்கப்பட்டது!' });
});
app.listen(3000, () => {
console.log('சர்வர் போர்ட் 3000-ல் இயங்குகிறது');
});
Python மற்றும் Flask-ல்
நீங்கள் Flask-CORS
நீட்டிப்பைப் பயன்படுத்தலாம்:
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
# மாற்றாக, குறிப்பிட்ட மூலங்களுக்கு CORS-ஐ உள்ளமைக்கவும்
# CORS(app, resources={r"/api/*": {"origins": "http://example.com"}})
@app.route("/data")
def hello():
return {"message": "இது அனைத்து மூலங்களுக்கும் CORS-இயக்கப்பட்டது!"}
if __name__ == '__main__':
app.run(debug=True)
Java மற்றும் Spring Boot-ல்
உங்கள் Spring Boot பயன்பாட்டில் குறிப்புகள் அல்லது உள்ளமைவு வகுப்புகளைப் பயன்படுத்தி CORS-ஐ உள்ளமைக்கலாம்:
குறிப்புகளைப் பயன்படுத்துதல்:
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@CrossOrigin(origins = "http://example.com") // http://example.com இலிருந்து கோரிக்கைகளை அனுமதி
public class DataController {
@GetMapping("/data")
public String getData() {
return "இது http://example.com-க்கு CORS-இயக்கப்பட்டது!";
}
}
உள்ளமைவைப் பயன்படுத்துதல்:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/data")
.allowedOrigins("http://example.com") // http://example.com இலிருந்து கோரிக்கைகளை அனுமதி
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*");
}
}
PHP
"இது http://example.com-க்கு CORS-இயக்கப்பட்டது!");
echo json_encode($data);
?>
CORS மற்றும் பாதுகாப்பு பரிசீலனைகள்
CORS கிராஸ்-ஆரிஜின் கோரிக்கைகளை இயக்கும்போது, அதை பாதுகாப்பாக செயல்படுத்துவது மிகவும் முக்கியம். இங்கே சில முக்கியமான பரிசீலனைகள்:
- தயாரிப்பில்
Access-Control-Allow-Origin
-க்கு*
பயன்படுத்துவதைத் தவிர்க்கவும்: இது எந்த மூலத்திலிருந்தும் வரும் கோரிக்கைகளை அனுமதிக்கிறது, இது ஒரு பாதுகாப்பு அபாயமாக இருக்கலாம். அதற்கு பதிலாக, உங்கள் வளங்களை அணுக அனுமதிக்கப்பட்ட மூலங்களை வெளிப்படையாகக் குறிப்பிடவும். - சர்வர் பக்கத்தில்
Origin
தலைப்பை சரிபார்க்கவும்: நீங்கள் CORS உள்ளமைவைக் கையாளும் ஒரு கட்டமைப்பைப் பயன்படுத்தினாலும், கோரிக்கை எதிர்பார்க்கப்படும் மூலத்திலிருந்து வருகிறதா என்பதை உறுதிப்படுத்த சர்வர் பக்கத்தில்Origin
தலைப்பை சரிபார்ப்பது ஒரு நல்ல நடைமுறையாகும். Access-Control-Allow-Credentials
-ஐ கவனத்தில் கொள்ளுங்கள்: நீங்கள் நற்சான்றிதழ்களைப் (எ.கா., குக்கீகள், அங்கீகார தலைப்புகள்) பயன்படுத்தினால், சர்வர் பக்கத்தில்Access-Control-Allow-Credentials: true
மற்றும் கிளையன்ட் பக்கத்தில்withCredentials = true
என்பதை உறுதிப்படுத்தவும். இருப்பினும்,Access-Control-Allow-Credentials
true
என அமைக்கப்பட்டிருக்கும்போதுAccess-Control-Allow-Origin: *
பயன்படுத்துவது அனுமதிக்கப்படாது என்பதை நினைவில் கொள்ளுங்கள். நீங்கள் அனுமதிக்கப்பட்ட மூலங்களை வெளிப்படையாகக் குறிப்பிட வேண்டும்.Access-Control-Allow-Methods
மற்றும்Access-Control-Allow-Headers
-ஐ சரியாக உள்ளமைக்கவும்: உங்கள் பயன்பாடு சரியாக செயல்படத் தேவையான HTTP முறைகள் மற்றும் தலைப்புகளை மட்டுமே அனுமதிக்கவும். இது தாக்குதல் பரப்பைக் குறைக்க உதவுகிறது.- HTTPS-ஐப் பயன்படுத்தவும்: பயணத்தில் உள்ள தரவைப் பாதுகாக்க உங்கள் வலைப் பயன்பாடுகள் மற்றும் API-களுக்கு எப்போதும் HTTPS-ஐப் பயன்படுத்தவும்.
CORS சிக்கல்களை சரிசெய்தல்
CORS சிக்கல்களை சரிசெய்வது வெறுப்பாக இருக்கலாம். இங்கே சில பொதுவான சிக்கல்கள் மற்றும் அவற்றை எவ்வாறு தீர்ப்பது:
- "கோரப்பட்ட வளத்தில் 'Access-Control-Allow-Origin' தலைப்பு இல்லை": இது மிகவும் பொதுவான CORS பிழை. இதன் பொருள், சர்வர் அதன் பதிலில்
Access-Control-Allow-Origin
தலைப்பை அனுப்பவில்லை. தலைப்பு சரியாக அனுப்பப்படுகிறதா என்பதை உறுதிப்படுத்த உங்கள் சர்வர் பக்க உள்ளமைவை இருமுறை சரிபார்க்கவும். - "முன் கோரிக்கைக்கான பதில் அணுகல் கட்டுப்பாட்டு சோதனையில் தேர்ச்சி பெறவில்லை: இதற்கு HTTP சரி நிலை இல்லை": இந்த பிழை முன் கோரிக்கை தோல்வியடைந்தது என்பதைக் குறிக்கிறது. சர்வர் OPTIONS கோரிக்கைகளைக் கையாள உள்ளமைக்கப்படவில்லை என்றால் அல்லது
Access-Control-Allow-Methods
அல்லதுAccess-Control-Allow-Headers
தலைப்புகள் சரியாக உள்ளமைக்கப்படவில்லை என்றால் இது நிகழலாம். - "பதிலில் உள்ள 'Access-Control-Allow-Origin' தலைப்பின் மதிப்பு கோரிக்கையில் உள்ள மூலத்திற்கு சமமாக இல்லை": இந்த பிழை கோரிக்கையில் உள்ள மூலம்
Access-Control-Allow-Origin
தலைப்பில் உள்ள மதிப்புடன் பொருந்தவில்லை என்பதைக் குறிக்கிறது. சர்வர் பதிலில் சரியான மூலத்தை அனுப்புகிறதா என்பதை உறுதிப்படுத்தவும். - உலாவி தற்காலிக சேமிப்பு: சில நேரங்களில், உலாவிகள் CORS பதில்களை தற்காலிகமாக சேமிக்கலாம், இது எதிர்பாராத நடத்தைக்கு வழிவகுக்கும். உங்கள் உலாவி தற்காலிக சேமிப்பை அழிக்கவும் அல்லது சிக்கலைத் தீர்க்கிறதா என்று பார்க்க வேறு உலாவியைப் பயன்படுத்தவும். உலாவி முன் கோரிக்கை பதிலை எவ்வளவு நேரம் தற்காலிகமாக சேமிக்கிறது என்பதைக் கட்டுப்படுத்த
Access-Control-Max-Age
தலைப்பையும் பயன்படுத்தலாம்.
பிழைதிருத்தும் கருவிகள்:
- உலாவி உருவாக்குநர் கருவிகள்: நெட்வொர்க் கோரிக்கைகள் மற்றும் பதில்களை ஆய்வு செய்ய உலாவியின் உருவாக்குநர் கருவிகளைப் (வழக்கமாக F12 ஐ அழுத்துவதன் மூலம் அணுகலாம்) பயன்படுத்தவும். CORS தொடர்பான தலைப்புகள் மற்றும் பிழை செய்திகளைத் தேடுங்கள்.
- ஆன்லைன் CORS சோதனையாளர்கள்: உங்கள் CORS உள்ளமைவை சோதிக்க உதவும் ஆன்லைன் கருவிகள் உள்ளன. இந்த கருவிகள் உங்கள் சர்வருக்கு ஒரு கோரிக்கையை அனுப்பி, சாத்தியமான சிக்கல்களை அடையாளம் காண பதில் தலைப்புகளை பகுப்பாய்வு செய்கின்றன.
மேம்பட்ட CORS காட்சிகள்
அடிப்படை CORS கருத்துக்கள் ஒப்பீட்டளவில் நேரடியானவை என்றாலும், கருத்தில் கொள்ள வேண்டிய சில மேம்பட்ட காட்சிகள் உள்ளன:
- துணை டொமைன்களுடன் CORS: நீங்கள் பல துணை டொமைன்களிலிருந்து (எ.கா.,
app1.example.com
,app2.example.com
) கோரிக்கைகளை அனுமதிக்க வேண்டும் என்றால்,Access-Control-Allow-Origin
தலைப்பில்*.example.com
போன்ற ஒரு வைல்டு கார்டை வெறுமனே பயன்படுத்த முடியாது. அதற்கு பதிலாக, கோரிக்கையில் உள்ளOrigin
தலைப்பின் அடிப்படையில்Access-Control-Allow-Origin
தலைப்பை மாறும் வகையில் உருவாக்க வேண்டும். பாதுகாப்பு பாதிப்புகளைத் தடுக்க, அனுமதிக்கப்பட்ட துணை டொமைன்களின் வெள்ளைப் பட்டியலுக்கு எதிராக மூலத்தை சரிபார்க்க நினைவில் கொள்ளுங்கள். - பல மூலங்களுடன் CORS: நீங்கள் பல குறிப்பிட்ட மூலங்களிலிருந்து கோரிக்கைகளை அனுமதிக்க வேண்டும் என்றால்,
Access-Control-Allow-Origin
தலைப்பில் பல மூலங்களைக் குறிப்பிட முடியாது (எ.கா.,Access-Control-Allow-Origin: http://example.com, http://another.com
செல்லுபடியாகாது). அதற்கு பதிலாக, கோரிக்கையில் உள்ளOrigin
தலைப்பின் அடிப்படையில்Access-Control-Allow-Origin
தலைப்பை மாறும் வகையில் உருவாக்க வேண்டும். - CORS மற்றும் CDN-கள்: உங்கள் API-ஐ வழங்க CDN-ஐப் பயன்படுத்தும்போது, உங்கள் மூல சர்வருக்கு
Origin
தலைப்பை அனுப்பவும்,Access-Control-Allow-Origin
தலைப்பை சரியாக தற்காலிகமாக சேமிக்கவும் CDN-ஐ உள்ளமைக்க வேண்டும். குறிப்பிட்ட வழிமுறைகளுக்கு உங்கள் CDN வழங்குநரின் ஆவணங்களைப் பார்க்கவும்.
CORS சிறந்த நடைமுறைகள்
பாதுப்பான மற்றும் திறமையான CORS செயலாக்கத்தை உறுதிப்படுத்த, இந்த சிறந்த நடைமுறைகளைப் பின்பற்றவும்:
- குறைந்தபட்ச சலுகைக் கொள்கை: உங்கள் பயன்பாடு சரியாக செயல்படத் தேவையான குறைந்தபட்ச மூலங்கள், முறைகள் மற்றும் தலைப்புகளை மட்டுமே அனுமதிக்கவும்.
- CORS உள்ளமைவை தவறாமல் மதிப்பாய்வு செய்யவும்: உங்கள் பயன்பாடு உருவாகும்போது, உங்கள் CORS உள்ளமைவை அது இன்னும் பொருத்தமானதாகவும் பாதுகாப்பானதாகவும் உள்ளதா என்பதை உறுதிப்படுத்த தவறாமல் மதிப்பாய்வு செய்யவும்.
- ஒரு கட்டமைப்பு அல்லது நூலகத்தைப் பயன்படுத்தவும்: உள்ளமைக்கப்பட்ட CORS ஆதரவை வழங்கும் தற்போதைய கட்டமைப்புகள் அல்லது நூலகங்களைப் பயன்படுத்தவும். இது செயலாக்கத்தை எளிதாக்கவும் பிழைகளின் அபாயத்தைக் குறைக்கவும் முடியும்.
- CORS மீறல்களைக் கண்காணிக்கவும்: சாத்தியமான CORS மீறல்களைக் கண்டறிந்து பதிலளிக்க கண்காணிப்பைச் செயல்படுத்தவும்.
- புதுப்பித்த நிலையில் இருங்கள்: சமீபத்திய CORS விவரக்குறிப்புகள் மற்றும் பாதுகாப்பு பரிந்துரைகளுடன் புதுப்பித்த நிலையில் இருங்கள்.
முடிவுரை
CORS என்பது வலைப் பயன்பாடுகளில் கட்டுப்படுத்தப்பட்ட கிராஸ்-ஆரிஜின் கோரிக்கைகளை இயக்கும் ஒரு முக்கியமான பாதுகாப்பு வழிமுறையாகும். CORS எவ்வாறு செயல்படுகிறது மற்றும் அதை எவ்வாறு சரியாக உள்ளமைப்பது என்பதைப் புரிந்துகொள்வது ஒவ்வொரு வலை உருவாக்குநருக்கும் அவசியமாகும். இந்த விரிவான வழிகாட்டியில் கோடிட்டுக் காட்டப்பட்டுள்ள வழிகாட்டுதல்கள் மற்றும் சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், வெவ்வேறு மூலங்களிலிருந்து வரும் வளங்களுடன் தடையின்றி தொடர்பு கொள்ளும் பாதுகாப்பான மற்றும் செயல்பாட்டு வலைப் பயன்பாடுகளை நீங்கள் உருவாக்கலாம்.
எப்போதும் பாதுகாப்பிற்கு முன்னுரிமை அளிக்கவும், அதிகப்படியான தளர்வான CORS உள்ளமைவுகளைப் பயன்படுத்துவதைத் தவிர்க்கவும் நினைவில் கொள்ளுங்கள். உங்கள் CORS அமைப்புகளின் பாதுகாப்பு தாக்கங்களை கவனமாக பரிசீலிப்பதன் மூலம், உங்கள் பயன்பாடுகளையும் தரவையும் அங்கீகரிக்கப்படாத அணுகலில் இருந்து பாதுகாக்கலாம்.
இந்த வழிகாட்டி உங்களுக்கு CORS-ஐ எளிமையாக்க உதவியுள்ளது என்று நம்புகிறோம். மகிழ்ச்சியான நிரலாக்கம்!