ana sayfalarına göre: Supabase, açık kaynaklı bir Firebase alternatifidir. Projenize bir Postgres veritabanı, Kimlik Doğrulama, anlık API'ler, Edge Fonksiyonları, Gerçek Zamanlı abonelikler, Depolama ve Vektör gömme ile başlayın.
Alt Alan Adı
Temelde bir proje oluşturulduğunda, kullanıcı jnanozjdybtpqgcwhdiz.supabase.co gibi bir supabase.co alt alan adı alır.
Veritabanı yapılandırması
Bu verilere https://supabase.com/dashboard/project/<project-id>/settings/database gibi bir bağlantıdan erişilebilir.
Bu veritabanı, bazı AWS bölgelerinde dağıtılacak ve ona bağlanmak için şu şekilde bağlanmak mümkün olacaktır: postgres://postgres.jnanozjdybtpqgcwhdiz:[YOUR-PASSWORD]@aws-0-us-west-1.pooler.supabase.com:5432/postgres (bu us-west-1'de oluşturuldu).
Şifre, kullanıcının daha önce koyduğu bir şifredir.
Bu nedenle, alt alan adı bilinen bir alan adı olduğundan ve kullanıcı adı olarak kullanıldığından ve AWS bölgeleri sınırlı olduğundan, şifreyi brute force denemek mümkün olabilir.
Bu bölüm ayrıca şunları içerir:
Veritabanı şifresini sıfırlama
Bağlantı havuzlamasını yapılandırma
SSL yapılandırma: Düz metin bağlantılarını reddet (varsayılan olarak etkin)
Disk boyutunu yapılandırma
Ağ kısıtlamaları ve yasaklar uygulama
API Yapılandırması
Bu verilere https://supabase.com/dashboard/project/<project-id>/settings/api gibi bir bağlantıdan erişilebilir.
Projenizdeki supabase API'sine erişim URL'si şöyle olacak: https://jnanozjdybtpqgcwhdiz.supabase.co.
anon api anahtarları
Ayrıca bir anon API anahtarı (role: "anon") oluşturacak, örneğin: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpuYW5vemRyb2J0cHFnY3doZGl6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MTQ5OTI3MTksImV4cCI6MjAzMDU2ODcxOX0.sRN0iMGM5J741pXav7UxeChyqBE9_Z-T0tLA9Zehvqk uygulamanın API anahtarını kullanması için gereklidir.
Bu API'ye erişmek için API REST'ini belgelerde bulmak mümkündür, ancak en ilginç uç noktalar şunlardır:
</details>
Yani, bir müşterinin kendilerine verilen alt alan adıyla supabase kullandığını keşfettiğinizde (şirketin bir alt alan adının supabase alt alan adlarına CNAME yönlendirmesi yapması mümkündür), **supabase API'sini kullanarak platformda yeni bir hesap oluşturmayı** deneyebilirsiniz.
### gizli / service\_role api anahtarları
**`role: "service_role"`** ile bir gizli API anahtarı da oluşturulacaktır. Bu API anahtarı gizli olmalıdır çünkü **Row Level Security**'yi atlatabilecektir.
API anahtarı şu şekilde görünür: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpuYW5vemRyb2J0cHFnY3doZGl6Iiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTcxNDk5MjcxOSwiZXhwIjoyMDMwNTY4NzE5fQ.0a8fHGp3N_GiPq0y0dwfs06ywd-zhTwsm486Tha7354`
### JWT Secret
Uygulamanın **özel JWT token'lar oluşturup imzalayabilmesi** için bir **JWT Secret** de oluşturulacaktır.
## Kimlik Doğrulama
### Kayıtlar
<div data-gb-custom-block data-tag="hint" data-style='success'>
**Varsayılan olarak** supabase, daha önce bahsedilen API uç noktalarını kullanarak **yeni kullanıcıların hesap oluşturmasına** izin verecektir.
</div>
Ancak, bu yeni hesaplar varsayılan olarak, **hesaba giriş yapabilmek için e-posta adreslerini doğrulamaları** gerekecektir. İnsanların e-posta adreslerini doğrulamadan giriş yapabilmeleri için **"Anonim girişlere izin ver"** seçeneğini etkinleştirmek mümkündür. Bu, **beklenmedik verilere** erişim sağlayabilir (kullanıcılar `public` ve `authenticated` rollerini alır).\
Bu çok kötü bir fikirdir çünkü supabase, aktif kullanıcı başına ücret alır, bu nedenle insanlar kullanıcı oluşturup giriş yapabilir ve supabase bu kullanıcılar için ücret alır:
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
### Şifreler ve oturumlar
Minimum şifre uzunluğunu belirtmek (varsayılan olarak), gereksinimleri (varsayılan olarak yok) ve sızdırılmış şifrelerin kullanılmasını engellemek mümkündür.\
**Varsayılan gereksinimlerin zayıf olduğu için gereksinimleri geliştirmek** önerilir.
* Kullanıcı Oturumları: Kullanıcı oturumlarının nasıl çalıştığını yapılandırmak mümkündür (zaman aşımı, kullanıcı başına 1 oturum...)
* Bot ve Kötüye Kullanım Koruması: Captcha etkinleştirmek mümkündür.
### SMTP Ayarları
E-posta göndermek için bir SMTP ayarlamak mümkündür.
### Gelişmiş Ayarlar
* Erişim token'ları için sonlanma süresi ayarlayın (varsayılan 3600)
* Potansiyel olarak tehlikeye atılmış yenileme token'larını tespit etmek ve iptal etmek için ayarlayın
* MFA: Kullanıcı başına bir kerede kaç MFA faktörünün kaydedilebileceğini belirtin (varsayılan 10)
* Maksimum Doğrudan Veritabanı Bağlantıları: Kimlik doğrulama için kullanılan maksimum bağlantı sayısı (varsayılan 10)
* Maksimum İstek Süresi: Bir Kimlik doğrulama isteğinin süresinin ne kadar olabileceği (varsayılan 10s)
## Depolama
<div data-gb-custom-block data-tag="hint" data-style='success'>
Supabase, **dosyaları depolamaya** ve bunları bir URL üzerinden erişilebilir hale getirmeye izin verir (S3 bucket'ları kullanır).
</div>
* Yükleme dosyası boyut sınırını ayarlayın (varsayılan 50MB)
* S3 bağlantısı şu şekilde bir URL ile verilir: `https://jnanozjdybtpqgcwhdiz.supabase.co/storage/v1/s3`
* `access key ID` (örneğin, `a37d96544d82ba90057e0e06131d0a7b`) ve `secret access key` (örneğin, `58420818223133077c2cec6712a4f909aec93b4daeedae205aa8e30d5a860628`) ile oluşturulan **S3 erişim anahtarı** talep etmek mümkündür.
## Edge Fonksiyonları
Supabase'te **gizli bilgileri** depolamak da mümkündür ve bunlar **edge fonksiyonları tarafından erişilebilir** (web üzerinden oluşturulup silinebilir, ancak değerlerine doğrudan erişmek mümkün değildir).
<div data-gb-custom-block data-tag="hint" data-style='success'>
AWS Hacking'i öğrenin ve pratik yapın:<img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
</div>