Güvenlik ve CI doğrulamasını güçlendir - #1
Merged
Conversation
PR'in CI'i PHP 8.2 job'unda basarisizdi: maennchen/zipstream-php 3.2.2 requires php-64bit ^8.3 -> your php-64bit version (8.2.32) does not satisfy that requirement Your lock file does not contain a compatible set of packages. PhpSpreadsheet'in dolayli bagimliligi olan zipstream 3.2'den itibaren PHP 8.3 istiyor. composer.json ^8.2 diyor ve CI matrisi 8.2'yi iceriyor; kilit dosyasi ise fiilen 8.3'e bagliydi. Uc ayri iddia, ucu de farkli. Bu tutarsizlik PR'dan once de vardi (main'de zipstream 3.2.1, o da ^8.3) ama "platform-check": false onu gizliyordu. PR maskeyi hakli olarak kaldirdi; asil tutarsizligin da giderilmesi gerekti. - zipstream ~3.1.2'ye sabitlendi (>=3.1.2 <3.2.0 — PHP 8.2 destekleyen son 3.1 serisi). Kesin surum "3.1.2" yerine tilde kullanildi: kesin kisit "composer validate --strict" altinda exit 1 veriyor ve CI'i bu kez baska yerden kirardi (olculdu). - README "PHP 8.0+" diyordu; bagimliliklar zaten 8.1+ istiyor, kilit 8.2+ -> "PHP 8.2+" olarak duzeltildi. - Sabitlemenin NEDENI README'ye yazildi; yoksa ilk "guncelleme" bunu kaldirip sorunu geri getirir. Guvenlik kaybi yok: zipstream'in hicbir surumunde bildirilmis acik bulunmuyor (packagist advisories bos) ve "composer audit --locked --no-dev" temiz kaliyor. Dogrulama (yerel, PHP 8.1 + platform yok sayilarak kurulum) composer validate --strict --no-check-publish : gecerli (exit 0) composer audit --locked --no-dev : acik yok scripts/dependency-smoke.php : PDF + XLSX uretildi scripts/security-regression.sh : gecti php -l : 241 dosya, 0 hata
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Özet
Bu değişiklik, son güvenlik ve CI incelemesinde kalan üç somut boşluğu kapatır:
M_GIRIS_LOGşemasını ve sorgu indekslerini ekler.Kök neden
barkod_ekle.php, GET ile geleneandeğerini sunucu tarafında POST/CSRF varmış gibi dönüştürüyordu.M_GIRIS_LOGçalışma zamanında kullanılıyor ancak temiz kurulum şemalarında oluşturulmuyordu; bu durumda giriş koruması fail-open davranıyordu.Değişiklikler
sql/m_giris_log.sqlve gerekli indeksler eklendi.dompdf/dompdf3.1.6 vephpoffice/phpspreadsheet2.4.7 sürümüne yükseltildi; kilit dosyası Composer ile yeniden üretildi.Etki
Kullanıcı
Barkod üretip aktarma davranışı korunur; durum değişikliği artık yalnız yetkili ve geçerli CSRF oturumuyla yapılır.
Güvenlik
GET/CSRF atlatması kapanır, temiz kurulumlarda giriş hız sınırlama altyapısı hazır olur ve bilinen 14 bağımlılık bildirimi giderilir.
Geliştirici iş akışı
Kilit dosyası sapması, savunmasız üretim bağımlılıkları, hareketli Action referansları ve kritik güvenlik regresyonları PR aşamasında kırmızıya döner.
Doğrulama
scripts/validate.sh: SONUÇ: TAMAMcomposer validate --strict --no-check-publish: başarılıcomposer audit --locked --no-dev: bilinen güvenlik açığı yokactionlint .github/workflows/lint.yml: başarılıscripts/security-regression.sh: başarılıgit diff --check: temizYayın öncesi not
Mevcut kurulumlarda
sql/m_giris_log.sqlstaging/üretim veritabanına uygulanmalı. Canlı SQL Server ve oturumlu HTTP akışı bu çalışma ortamında bulunmadığından, barkod aktarımı ile giriş kilidi staging üzerinde son kez doğrulanmalıdır.