Güvenlik Modeli
Paylox entegrasyonunuzun güvenliğini sağlamak için uyulması gereken kurallar ve mimari yaklaşımlar.
API Key Güvenliği
| Kural | Açıklama |
|---|---|
| Frontend'de kullanmayın | API Key sadece sunucu tarafında olmalı |
| Environment variable | .env dosyasında saklayın, koda yazmayın |
| Git'e commit etmeyin | .gitignore'a .env ekleyin |
| Paylaşmayın | API Key'i e-posta, Slack veya başka kanallarla paylaşmayın |
PAYLOX_API_KEY=fbd654ad-6448-4cbc-9780-5cdd3eadb677
import os
api_key = os.environ["PAYLOX_API_KEY"]
const apiKey = process.env.PAYLOX_API_KEY;
Callback Doğrulama
Callback URL'ine gelen isteğin Paylox'tan geldiğini mutlaka doğrulayın:
status = requests.get(
f"https://api.jetcheckout.com/api/v1/payment/status/{order_id}",
params={"session_id": session_id}
)
if status.json()["status"] == "completed":
process_order()
tehlike
Callback URL parametrelerine doğrudan güvenmeyin. Kötü niyetli bir kişi sahte callback URL'i oluşturabilir.
HTTPS Zorunluluğu
- Tüm API istekleri HTTPS üzerinden yapılmalıdır
- Callback URL'leriniz de HTTPS olmalıdır
- HTTP istekleri reddedilir
Content Security Policy (CSP)
Embedded Checkout kullanıyorsanız, CSP header'ınıza şunları ekleyin:
Content-Security-Policy:
script-src 'self' https://checkout.paylox.io;
connect-src 'self' https://api.jetcheckout.com;
frame-src https://checkout.paylox.io;
Hash Doğrulama
Ödeme isteklerinde hash_data alanı, isteğin bütünlüğünü doğrulamak için kullanılır:
hash_data = Base64(SHA256(application_key + order_id + amount + secret_key))
import hashlib
import base64
def compute_hash(application_key, order_id, amount, secret_key):
raw = f"{application_key}{order_id}{amount}{secret_key}"
sha256 = hashlib.sha256(raw.encode()).digest()
return base64.b64encode(sha256).decode()
bilgi
Hash doğrulama, Paylox altyapısı tarafından otomatik yapılır. Hosted Checkout veya Embedded Checkout kullanıyorsanız bu adımı yapmanız gerekmez.