İçeriğe geç
🛠️ToolsShed

CORS Policy Tester

Simüle edilen tarayıcı senaryoları ile CORS yapılandırmalarını test edin ve hata ayıklayın.

Birden fazla kaynağı virgülle ayırın. Herhangi bir kaynağa izin vermek için * kullanın (ancak kimlik bilgileriyle birlikte değil)

Bu araç hakkında

Kaynaklar Arası Paylaşım (CORS), tarayıcıların farklı alanlar arasındaki istekleri nasıl işlediğini kontrol eden kritik bir web güvenliği mekanizmasıdır. Yanlış yapılandırılmış CORS politikaları uygulamanızın sessizce başarısız olmasına neden olabilir, aşırı izin veren politikalar ise API'nizi istenmeyen erişime maruz bırakır. CORS Policy Tester, geliştiricilerin sunucunun CORS yapılandırmasını anlayıp doğrulamalarına yardımcı olur ve birden fazla alan kurmaya veya test kodu dağıtmaya gerek kalmadan gerçek tarayıcı senaryolarını simüle eder.

Bu aracı kullanmak için API uç noktanız URL'sini girin ve aynı kaynaktan gelen istekler, basit başlıklı kaynaklar arası istekler veya özel başlıklar veya HTTP yöntemleri içeren karmaşık ön kontrol istekleri gibi kullanım durumunuzla eşleşen senaryoyu seçin. Araç, tarayıcının CORS doğrulama sürecini simüle edecek ve sunucunuzun yanıt olarak hangi başlıkları göndermesi gerektiğini, isteğin başarılı olup olmayacağını ve politika yanlış yapılandırılmışsa tarayıcıların hangi hata mesajlarını göstereceğini tam olarak gösterecektir. Bu, CORS sorunlarını üretime gelmeden ayıklamayı kolaylaştırır.

Bu araç, REST API'leri, mikro hizmetleri veya farklı alanlardan web istemcilerinden istekleri sunması gereken herhangi bir arka uç ile çalışan geliştiriciler için çok değerlidir. Ön uç ve arka ucunuzun farklı bağlantı noktalarında çalıştığı yerel ortamlarda geliştirirken veya üçüncü taraf hizmetlerini entegre ederken özellikle yararlıdır. Çeşitli CORS senaryolarını test ederek API'nizin hem güvenli hem de işlevsel olduğundan emin olabilirsiniz.

Sıkça Sorulan Sorular

Kod Uygulaması

# CORS headers generator (Flask example)
from flask import Flask, request, jsonify

app = Flask(__name__)

CORS_CONFIG = {
    "allowed_origins": ["https://example.com", "https://app.example.com"],
    "allowed_methods": ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
    "allowed_headers": ["Content-Type", "Authorization", "X-Requested-With"],
    "allow_credentials": True,
    "max_age": 86400,
}

def add_cors_headers(response, origin):
    allowed = CORS_CONFIG["allowed_origins"]
    if origin in allowed or "*" in allowed:
        response.headers["Access-Control-Allow-Origin"] = origin
    if CORS_CONFIG["allow_credentials"]:
        response.headers["Access-Control-Allow-Credentials"] = "true"
    response.headers["Access-Control-Allow-Methods"] = ", ".join(CORS_CONFIG["allowed_methods"])
    response.headers["Access-Control-Allow-Headers"] = ", ".join(CORS_CONFIG["allowed_headers"])
    response.headers["Access-Control-Max-Age"] = str(CORS_CONFIG["max_age"])
    return response

@app.before_request
def handle_preflight():
    if request.method == "OPTIONS":
        response = app.make_default_options_response()
        return add_cors_headers(response, request.headers.get("Origin", ""))

@app.after_request
def apply_cors(response):
    origin = request.headers.get("Origin", "")
    return add_cors_headers(response, origin)

@app.route("/api/data")
def data():
    return jsonify({"message": "CORS configured successfully"})

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.