fix: bind Telegram pairing to expiring single-use account challenges
This commit is contained in:
@@ -1116,3 +1116,11 @@ Taslak türü seçicisine erişilebilir ad eklendi. Üretim derlemesi geçti. Ö
|
||||
- Test sırasında kurum tipi seçiminin erişilebilir adının eksik olduğu bulundu; `Filtre kurum tipi` adı eklendi. Diğer seçimlerde mevcut erişilebilir adlar kullanıldı. QA verisine sentetik usul/kurum tipi alanları eklendi; resmi ihale verisi olarak değerlendirilmez.
|
||||
- Beş tarayıcı kontrolü geçti: ilk birleşik sonuç, yenileme sonrası yeniden uygulama, çelişen bölge boş sonucu, sıfırlama ve tekrar uygulama. Kanıt `rapor/qa-combined-saved-filter.json`. Build başarılı. Test sekmesi ve bu çalışmaya ait geçici sunucu kapatıldı. Bu dar UI değişikliği için otomatik süit tekrar çalıştırılmadı; son süit 262 testte geçmişti.
|
||||
- D05/D09 birleşik filtre kullanıcı akışına kanıt eklendi. Resmi kaynak alanlarının doğruluğu, gerçek firma ile beş başvuru dosyası ve diğer kabul maddeleri hâlâ açık; genel plan tamamlanmadı.
|
||||
|
||||
### 2026-09-06 — Hesaba bağlı, süreli Telegram doğrulaması
|
||||
|
||||
- Güvenlik/işlev hatası: eski kod tarayıcıda Math.random ile üretiliyor, herhangi bir altı haneli değer kabul ediliyor ve getUpdates mesajının rakamları içinde alt-dizi aranıyordu; süre/hesap/tek kullanım yoktu. Sunucuda 24 rastgele baytlık kod, yalnız hash saklama, 10 dakika süre, hesaba bağlı doğrulama ve tüketim eklendi.
|
||||
- Özel sohbet, insan gönderici ve sohbet/gönderici kimliği eşleşmesi gerekiyor. Yalnız yeni mesajın tamamının kod veya `/start kod` olması kabul ediliyor; grup, bot, eski/gelecek tarih, düzenlenmiş mesaj ve alt-dizi eşleşmesi reddediliyor. Sağlayıcı okumasından sonra kod tekrar doğrulanıyor; bu sırada iptal/yenileme/süre dolması bağlantıyı engelliyor. Sürüm kontrollü kayıt tek kullanımı koruyor.
|
||||
- Genel veri yazma API'siyle doğrudan Telegram chatId atama yolu kapatıldı. UI sunucudan yeni kod oluşturuyor, son geçerliliği gösteriyor, kod oluşmadan doğrulama sunmuyor. Mevcut bağlı hesaplar korunuyor; otomatik bağlantı-onay mesajı yerine uygulama sonucu gösteriliyor.
|
||||
- Doğrulama: 266 test ve build başarılı. Gerçek kullanıcı deposunda hesap ayrımı, hash saklama, yenileme, süre sınırı, tüketim ve devam eden doğrulamanın iptali; sahte Telegram yanıtlarında özel/taze/tam eşleşme; HTTP üzerinden doğrudan yazma ve eski kod reddi test edildi. Gerçek Telegram ağına test mesajı gönderilmedi.
|
||||
- Açık kabul: yeni kod ekranının tarayıcı testi, izinli gerçek hesapla bağlama; getUpdates son 100 güncelleme penceresinin yoğun botta yetersiz kalması; genel Telegram bağlantı sürüm/geri dönüş akışları. Genel plan henüz tamamlanmadı.
|
||||
|
||||
@@ -93,3 +93,5 @@ Eski `server/data/brief-son.json` silinmez: eski sürümün aynı hafta için i
|
||||
Haftalık belirsiz kayıtların karar akışı artık Yönetim → Mobil PWA → **Haftalık özet gönderim incelemesi** bölümündedir. `/api/admin/brief/outbox` yalnız yöneticiye açıktır. Gönderildi kararı sağlayıcı kimliği, açık kontrol onayı ve 20–2000 karakterlik açıklama ister; doğrulanamayan mesaj yeni gönderim yapmadan kapatılabilir. `brief_reviews` tablosu karar sahibini, türünü, açıklamasını ve tarihini aynı transaction içinde saklar. İkinci karar 409 ile reddedilir. Süresi dolmuş gönderim sahipliği liste yenilendiğinde belirsiz olarak görünür; etkin gönderim için karar verilemez. Tam volume yedeği karar tablosunu da kapsar. Bu bölüm önceki nottaki eksik yönetici karar ekranını tamamlar; sağlayıcı teslimat kanıtını otomatik olarak doğrulamaz.
|
||||
|
||||
Yeni haftalık Telegram kabulleri `brief_messages.receipt` alanında `chat_id:message_id` olarak saklanır. Eski `telegram-accepted` değerleri gerçek mesaj kimliği değildir ve geriye dönük kimlik üretilmez. Sağlayıcı incelemesinde mesajın ait olduğu sohbet de kontrol edilmelidir; mesaj numarası tek başına bütün sohbetlerde tekil kabul edilmez.
|
||||
|
||||
Telegram bağlama protokolü değişti: tarayıcının ürettiği altı haneli kod kabul edilmez. Oturumlu POST `/api/me/telegram` `{islem:"kod"}` sunucuda 24 rastgele baytlık kod üretir; kullanıcı deposunda yalnız hash, oluşturulma ve 10 dakikalık son geçerlilik saklanır. Yeni kod önceki kodu geçersiz kılar. Doğrulama yalnız hesapta aktif olan kodu tüketir; bağlantı kaldırma veya kod yenileme sürmekteki doğrulamayı da geçersiz kılar. Ön yüz ve sunucu birlikte güncellenmelidir. Mevcut bağlı sohbetler korunur. Genel `/api/me/data` yolu Telegram verisini yazamaz; bağlantı ekranı kullanılmalıdır. Bağlama sonrası otomatik Telegram onay mesajı kaldırıldı; bağlantı sonucu uygulamada gösterilir. Ayrı test mesajı düğmesi yine açık kullanıcı eylemidir.
|
||||
|
||||
Reference in New Issue
Block a user