From 23f65a9bbb99d18294c856eabf2443f78e155de0 Mon Sep 17 00:00:00 2001 From: Poyraz <78071274+poyrazavsever@users.noreply.github.com> Date: Wed, 22 Jul 2026 09:33:10 +0300 Subject: [PATCH] feat: added new blog --- content/blog/things-to-check-before-launch.md | 310 +++++++++++++++++ .../blog/yayina-cikmadan-once-dikkat-et.md | 311 ++++++++++++++++++ .../yayina-cikmadan-once-dikkat-et-cover.png | Bin 0 -> 75831 bytes 3 files changed, 621 insertions(+) create mode 100644 content/blog/things-to-check-before-launch.md create mode 100644 content/blog/yayina-cikmadan-once-dikkat-et.md create mode 100644 public/blog/images/yayina-cikmadan-once-dikkat-et-cover.png diff --git a/content/blog/things-to-check-before-launch.md b/content/blog/things-to-check-before-launch.md new file mode 100644 index 0000000..4d00ae9 --- /dev/null +++ b/content/blog/things-to-check-before-launch.md @@ -0,0 +1,310 @@ +--- +title: "Things to Check Before Launch: A Production Checklist for Web Applications" +category: "Testing" +date: "2026-07-22" +readTime: "16 min read" +author: "Poyraz Avsever" +slug: "things-to-check-before-launch" +excerpt: "Before shipping your web application to production, walk through functional tests, security checks, dependency safety, OWASP ZAP scans, legal data handling, SEO, accessibility, performance, and final operational checks." +coverImage: "/blog/images/yayina-cikmadan-once-dikkat-et-cover.png" +lang: "en" +--- + +# Things to Check Before Launch: A Production Checklist for Web Applications + +A web application working smoothly in development does not mean it is ready for production. Real users arrive from different devices, enter unexpected data, interrupt requests halfway through, click the same button twice, and discover corners of the application you never thought about. In production, you are not only responsible for features. Security, personal data, search visibility, accessibility, monitoring, and recovery plans all become part of the product. + +That is why a launch should not be treated as a single `deploy` command. It should be handled as a controlled delivery process. The checklist below can be adapted to anything from a small portfolio site to a larger product with accounts, payments, dashboards, and third-party integrations. Not every item will have the same weight in every project. The important part is to understand the risks, make conscious decisions, and keep a record of what was checked. + +> Apply the security steps in this article only to systems you own or have explicit permission to test. Also, do not treat automated scanner results as final proof that an application is secure. + +## 1. Core Functional Tests + +Your first goal is to confirm that users can complete the most important tasks from beginning to end. Instead of randomly clicking through every screen, list the critical user journeys and test them deliberately. + +For an application with user accounts, check flows such as: + +- New user registration, email verification, and first login +- Login with both correct and incorrect credentials +- Password reset link expiration and single-use behavior +- Viewing, updating, and deleting a profile +- Success, error, and loading states during form submission +- Pages visible to authorized and unauthorized users +- Application behavior after a session expires +- Attempts to access private pages with the browser back button after logout + +Testing only the happy path is not enough. Try empty fields, very long text, unexpected characters, duplicate submissions, slow connections, and server responses such as `400`, `401`, `403`, `404`, `429`, and `500`. When something fails, the user should understand what happened. The application should not present a half-finished action as completed. + +### Run the production build for real + +The development server and the production build may behave differently. Optimizations, environment variables, server-side rendering, and build-only errors can expose problems that never appeared locally during development. + +If you are using PowerShell 7 or later, run this in the project directory: + +```powershell +npm run build && npm run start +``` + +If your older Windows PowerShell version does not support `&&`, run the commands separately. After confirming that the build finished successfully: + +```powershell +npm run build +npm run start +``` + +Once the application is running, open the browser developer tools and check the Console and Network tabs. Silent JavaScript errors, failed network requests, mixed content warnings, and unexpected redirect loops usually show up there first. + +### Short functional launch checklist + +- Can critical flows be completed on desktop and mobile screen sizes? +- Are forms usable with a keyboard, and do they show the correct validation messages? +- Do refreshes and direct URL visits work as expected? +- Are empty, loading, success, and error states designed and tested? +- Have email, file upload, payment, and third-party services been checked with real production settings? +- Is there a rollback plan for database migrations and seed data? + +## 2. Basic Security and Penetration Checks + +Security is not just about running a scanner. First, manually check the application's basic defenses. The goal here is not to attack the system. The goal is to catch obvious misconfigurations before launch. + +### Separate authentication from authorization + +A user being logged in does not mean they should have access to every resource. If a user can change an ID in the URL and view another user's order, profile, or document, you likely have a broken access control problem. Hiding a button in the UI is not a security control. Authorization must be enforced on the server for every relevant request. + +Try these checks: + +- Send direct requests to private pages and API endpoints without logging in. +- Try to reach admin routes with a normal user account. +- Change resource IDs in the URL, query string, or request body. +- Use one account's token while requesting resources that belong to another account. +- Confirm that old tokens stop working after logout. + +### Secrets and security headers + +Passwords, private API keys, database connection strings, and access tokens must not appear in source code, JavaScript bundles, source maps, network requests, or error messages. Anything sent to the client should be considered visible. + +Review HTTPS redirection and evaluate at least these headers based on your application's needs: + +- `Content-Security-Policy` +- `Strict-Transport-Security` +- `X-Content-Type-Options: nosniff` +- `Referrer-Policy` +- `Permissions-Policy` +- `frame-ancestors` in CSP for clickjacking protection + +For cookies, use `Secure`, `HttpOnly`, and the appropriate `SameSite` value based on sensitivity. Avoid accepting arbitrary origins in CORS when credentials are enabled. Add rate limiting to abuse-prone endpoints such as login, password reset, and form submissions. + +You can use the OWASP Top 10 as a shared starting point for discussing risk, not as a complete security test. In the 2025 list, Broken Access Control, Security Misconfiguration, and Software Supply Chain Failures are among the top categories. + +## 3. Dependency Security + +Your application's security is not limited to the code you wrote. Every package installed through a package manager, including transitive dependencies, becomes part of your software supply chain. + +For Node.js projects, start with one of these commands depending on your package manager: + +```powershell +npm audit +``` + +```powershell +pnpm audit +``` + +Do not judge the report only by the number of findings. Ask these questions: + +1. Is the vulnerability in a production dependency or only in a development tool? +2. Does your application actually use the vulnerable code path? +3. Does upgrading to the safe version introduce a breaking change? +4. Is the package still maintained, or do you need a safer alternative? +5. If you accept the risk temporarily, is the owner, reason, and review date documented? + +Avoid running forceful commands such as `npm audit fix --force` without reviewing the result. Major version upgrades can break the application. Keep the lockfile in the repository, use deterministic installs in CI, and merge dependency updates only after tests pass. + +Also scan the repository for accidentally committed secrets. Removing a leaked key from the latest file is not enough if it already entered Git history. Revoke and rotate the key. Production credentials should follow the principle of least privilege and be rotated regularly. + +## 4. Automated Security Scanning with OWASP ZAP (Windows / PowerShell) + +After manual checks, you can use OWASP ZAP Baseline Scan to inspect the running application. Baseline Scan crawls the target for a short time with a spider and then runs passive scan rules against the generated traffic. Because it does not perform active attacks, it is a safer starting point for CI/CD and controlled production checks than Full Scan. + +This distinction matters. Baseline Scan can find useful warnings, but it does not prove the application is secure. It may not reach authenticated screens, it cannot understand business logic vulnerabilities, and it does not attempt active exploitation. Treat the results as one layer in a broader review that includes code review, authorization testing, and specialist penetration testing when needed. + +### Requirements + +- Docker Desktop must be installed and running on Windows. +- The PowerShell session must be opened in the correct project directory. +- The production build of the application must be running. +- The target must be your own system or a system you have explicit permission to test. + +Start the application in the first PowerShell window: + +```powershell +npm run build && npm run start +``` + +If the application runs at `http://localhost:3000`, open a second PowerShell window in the project root and run this single-line command: + +```powershell +docker run --rm -t -v "${PWD}:/zap/wrk/:rw" zaproxy/zap-stable zap-baseline.py -t http://host.docker.internal:3000 -r zap-baseline-report.html +``` + +When the scan finishes, the file `zap-baseline-report.html` will be created in your project folder. Open it in the browser to review alerts, affected URLs, evidence, and the remediation guidance from ZAP. + +### What each part of the command does + +| Part | Explanation | +| --- | --- | +| `docker run` | Starts a temporary container from the ZAP image. | +| `--rm` | Removes the stopped container after the scan finishes. It does not delete the HTML report because the report is written to the mounted host folder. | +| `-t` | Allocates a pseudo-terminal so the output is easier to read. | +| `-v "${PWD}:/zap/wrk/:rw"` | Mounts the current project folder into the container as `/zap/wrk/` with read-write access. This is what allows the report to be saved on your machine. | +| `zaproxy/zap-stable` | Uses the stable OWASP ZAP Docker image. The image may be downloaded during the first run. | +| `zap-baseline.py` | Runs the Baseline Scan script, which performs a time-limited spider and passive analysis. | +| `-t http://host.docker.internal:3000` | Defines the target to scan. The protocol is required. | +| `-r zap-baseline-report.html` | Sets the HTML report filename. Because of the mounted volume, the file appears in the project directory. | + +### Why not `localhost:3000`? + +From inside the container, `localhost` refers to the ZAP container itself, not the application running on Windows. Docker Desktop provides `host.docker.internal` as a hostname for reaching the host machine. That is why the application you open as `http://localhost:3000` in the browser is usually scanned as `http://host.docker.internal:3000` from the ZAP container. + +If your application runs on another port, change only the port: + +```powershell +docker run --rm -t -v "${PWD}:/zap/wrk/:rw" zaproxy/zap-stable zap-baseline.py -t http://host.docker.internal:8080 -r zap-baseline-report.html +``` + +If you are scanning a remote staging or production address, use the HTTPS URL directly: + +```powershell +docker run --rm -t -v "${PWD}:/zap/wrk/:rw" zaproxy/zap-stable zap-baseline.py -t https://example.com -r zap-baseline-report.html +``` + +### Useful Baseline Scan options + +- `-m 3`: Sets how many minutes the traditional spider should crawl the target. The default is 1 minute. +- `-T 10`: Limits the maximum time, in minutes, for ZAP startup and passive scan completion. +- `-j`: Also uses the modern spider for JavaScript-heavy pages. It may increase scan time and resource usage. +- `-J zap-report.json`: Produces a JSON report for automation tools. +- `-w zap-report.md`: Produces a Markdown report. +- `-g zap-rules.conf`: Generates the default rule configuration file. +- `-c zap-rules.conf`: Uses a configuration file where rules can be classified as `INFO`, `WARN`, `FAIL`, or `IGNORE`. +- `-I`: Prevents warnings from causing a non-zero exit code. Do not add this before deciding your CI policy deliberately. + +For example, to produce both HTML and JSON reports while increasing crawl time: + +```powershell +docker run --rm -t -v "${PWD}:/zap/wrk/:rw" zaproxy/zap-stable zap-baseline.py -t http://host.docker.internal:3000 -m 3 -T 10 -r zap-baseline-report.html -J zap-baseline-report.json +``` + +### Read exit codes correctly + +The ZAP script can generate a report and still finish with a non-zero exit code. That does not always mean the tool failed: + +- `0`: Success according to the selected policy. +- `1`: At least one `FAIL` was found. +- `2`: No `FAIL` findings, but at least one `WARN` was found. +- `3`: Another scan error occurred, such as target connection failure, timeout, or configuration issue. + +In PowerShell, write `$LASTEXITCODE` immediately after the scan to see the final exit code. Your team policy should define how CI handles `1` and `2`. Instead of ignoring the tool forever, review the initial report, promote real risks to `FAIL`, document accepted risks, and track temporary exceptions. + +### Common problems + +#### The target cannot be reached + +First confirm that the application opens in the browser. Then check the port and make sure the command uses `host.docker.internal`. If the application is bound to a different interface, inspect the server's listen settings. + +#### The report does not appear in the project folder + +Make sure you ran the command from the project root, kept the volume expression in quotes, and mounted `/zap/wrk/:rw` with write access. If the Windows drive is not shared with Docker Desktop, check Docker Desktop file sharing settings. + +#### There are too many warnings + +Group findings by severity first. Security headers, cookie options, and information-revealing server headers are common findings. Review the request and response evidence for each alert. Do not dismiss false positives without writing down why. After fixing issues, run the same command again and compare reports. + +## 5. Legal Requirements and Data Management + +If you collect personal data, being technically secure is not enough. You should know what data you collect, why you collect it, which legal basis applies, who receives it, and how long you keep it. This section is not legal advice. Get expert guidance based on your product, business model, and target countries. + +Under Turkey's KVKK framework, the obligation to inform data subjects includes explaining the identity of the data controller, processing purposes, transfers, collection method, legal basis, and data subject rights. Getting explicit consent where required does not remove the obligation to inform the user. + +Before launch, check these points: + +- Do the privacy notice and disclosure texts reflect the real data flow? +- Do non-essential cookies and tracking tools wait for the required consent? +- Is every collected field actually necessary, or can you apply data minimization? +- Is there a plan for deleting, destroying, or anonymizing data after the retention period? +- How will users request access, correction, deletion, or other data rights? +- Which data is transferred to analytics, email, error monitoring, and cloud providers? +- Are backups encrypted, has restore been tested, and are accesses logged? +- Is there a written incident response plan for data breaches, including owners and communication steps? + +Do not log passwords, full access tokens, payment card data, or unnecessary personal information. Do not copy production data into development or test environments. If it is unavoidable, use anonymization or masking. For admin panels, use multi-factor authentication and role-based authorization. + +KVKK's data security guidance expects data controllers to take appropriate technical and administrative measures to prevent unlawful processing, prevent unlawful access, and preserve personal data. Your security checklist and legal compliance work should therefore be treated as connected parts of the same launch process. + +## 6. SEO, Accessibility, and Final Checks + +At the final stage, make sure the product is discoverable, usable, and observable. An application that technically works but cannot be read by search engines, cannot be used with a keyboard, or fails without alerting anyone is not production-ready. + +### SEO + +- Every page should have a descriptive and unique `title` and meta description. +- Canonical URLs should be correct; HTTP/HTTPS, `www`, and trailing slash variants should resolve to one address. +- `robots.txt` should not accidentally block production pages. +- The XML sitemap should include only publishable and canonical URLs. +- Open Graph and social media cover images should be reachable in the real environment. +- Heading hierarchy should be meaningful; do not use headings only for visual size. +- The 404 page should return the correct HTTP status code. +- Structured data should match the visible page content. + +### Accessibility + +Use WCAG 2.2 as a reference and check at least keyboard usage, visible focus, color contrast, form labels, error messages, and alternative text. + +- Can the whole page be used with only a keyboard? +- Is the focus order logical, and is the focus indicator visible? +- Do meaningful images have useful `alt` text, and are decorative images hidden from screen readers? +- Do form fields have visible labels and programmatic names? +- Are errors explained with text, not only with red color? +- When a modal opens, is focus managed, and can it be closed with `Escape`? +- Does motion-heavy content respect reduced motion preferences? +- Does content remain available when zoomed or viewed on narrow screens? + +Automated accessibility tools are a good start, but they do not replace keyboard and screen reader testing. + +### Performance and operations + +With Lighthouse or similar tools, focus on the real bottleneck, not only the score. Serve large images at the right size and in modern formats, defer non-critical JavaScript, review font loading, and validate cache policies. Repeat measurements several times, ideally on lower-power mobile devices and slower networks. + +Finally, answer these operational questions: + +- Are errors tracked in a central system, and do alerts reach the right person? +- Do you have health checks, uptime monitoring, and basic metrics? +- Is the deployed version or commit ID recorded? +- Is the database migration backward-compatible? +- Has the rollback path to the previous version actually been tested? +- Are DNS, SSL certificates, and domain renewals monitored? +- Have production environment variables and third-party webhook URLs been verified? + +## Conclusion: Launch Is a Process, Not a Moment + +A good launch checklist does not guarantee that nothing will ever go wrong. Its real value is making known risks visible and defining what you will do when something breaks. + +In short, before going live: + +1. Test critical user flows on the production build. +2. Review authorization, secrets, cookies, and security headers. +3. Evaluate dependency and software supply chain risks. +4. Scan the running application with OWASP ZAP Baseline Scan and interpret the report. +5. Verify personal data flows, disclosure texts, and retention processes. +6. Complete SEO, accessibility, performance, monitoring, and rollback checks. + +Turn this checklist into a living document in your repository. Review it for every release, update it after incidents, and automate the items that can be handled in CI/CD. That gives you a launch process with evidence and a recovery plan instead of a deploy based on hope. + +## Sources + +- [OWASP ZAP Baseline Scan documentation](https://www.zaproxy.org/docs/docker/baseline-scan/) +- [OWASP ZAP Docker user guide](https://www.zaproxy.org/docs/docker/about/) +- [OWASP Top 10:2025](https://owasp.org/Top10/) +- [KVKK - Obligation to Inform](https://www.kvkk.gov.tr/Icerik/2033/Aydinlatma-Yukumlulugu-) +- [KVKK - Obligations Related to Data Security](https://www.kvkk.gov.tr/Icerik/2040/Veri-Guvenligine-Iliskin-Yukumlulukler) +- [W3C - Web Content Accessibility Guidelines (WCAG) 2.2](https://www.w3.org/TR/WCAG22/) diff --git a/content/blog/yayina-cikmadan-once-dikkat-et.md b/content/blog/yayina-cikmadan-once-dikkat-et.md new file mode 100644 index 0000000..2a5edf1 --- /dev/null +++ b/content/blog/yayina-cikmadan-once-dikkat-et.md @@ -0,0 +1,311 @@ +--- +title: "Yayına Çıkmadan Önce Dikkat Et: Web Uygulamaları İçin Production Checklist" +category: "Testing" +date: "2026-07-22" +readTime: "16 min read" +author: "Poyraz Avsever" +slug: "yayina-cikmadan-once-dikkat-et" +permalink: "/yayina-cikmadan-once-dikkat-et" +excerpt: "Web uygulamanızı production ortamına göndermeden önce fonksiyon, güvenlik, bağımlılık, OWASP ZAP, KVKK, SEO, erişilebilirlik ve performans kontrollerini adım adım tamamlayın." +coverImage: "/blog/images/yayina-cikmadan-once-dikkat-et-cover.png" +lang: "tr" +--- + +# Yayına Çıkmadan Önce Dikkat Et: Web Uygulamaları İçin Production Checklist + +Bir web uygulamasının geliştirme ortamında sorunsuz çalışması, yayına hazır olduğu anlamına gelmez. Gerçek kullanıcılar farklı cihazlardan gelir, beklemediğiniz girişler yapar, bağlantıyı yarıda keser, aynı butona iki kez basar ve uygulamanın hiç düşünmediğiniz köşelerine ulaşır. Üstelik production ortamında yalnızca fonksiyonlar değil; güvenlik, kişisel veriler, arama motorları, erişilebilirlik ve operasyon süreçleri de devreye girer. + +Bu nedenle yayına çıkışı tek bir `deploy` komutu olarak değil, kontrollü bir teslim süreci olarak görmek gerekir. Aşağıdaki kontrol listesi küçük bir portföy sitesinden üyelik ve ödeme içeren büyük bir ürüne kadar uyarlanabilir. Her madde her projede aynı ağırlıkta olmayacaktır; önemli olan riskleri bilinçli biçimde değerlendirip sonucu kayıt altına almaktır. + +> Bu yazıdaki güvenlik adımlarını yalnızca sahibi olduğunuz veya test etmek için açık izin aldığınız sistemlerde uygulayın. Otomatik araçların verdiği sonuçları da tek başına kesin açık kanıtı olarak değerlendirmeyin. + +## 1. Temel Fonksiyon Testleri + +İlk hedef, kullanıcının en önemli işlerini baştan sona tamamlayabildiğini doğrulamaktır. Bunun için uygulamanın bütün ekranlarını rastgele dolaşmak yerine kritik kullanıcı yolculuklarını listeleyin. + +Örneğin üyelik içeren bir uygulamada şu akışları ayrı ayrı deneyin: + +- Yeni kullanıcı kaydı, e-posta doğrulama ve ilk giriş +- Doğru ve yanlış bilgilerle oturum açma +- Şifre sıfırlama bağlantısının süresi ve tek kullanımlık olması +- Profil görüntüleme, güncelleme ve hesap silme +- Form gönderimi sırasında başarı, hata ve yükleniyor durumları +- Yetkili ve yetkisiz kullanıcıların görebildiği sayfalar +- Oturum süresi dolduğunda uygulamanın davranışı +- Çıkış yaptıktan sonra geri tuşuyla özel sayfalara erişim denemesi + +Sadece “mutlu yolu” kontrol etmek yeterli değildir. Boş alan, çok uzun metin, beklenmeyen karakter, aynı isteğin iki kez gönderilmesi, yavaş bağlantı ve sunucudan gelen `400`, `401`, `403`, `404`, `429` ve `500` yanıtları da denenmelidir. Kullanıcı hata aldığında ne olduğunu anlayabilmeli; uygulama da yarım kalmış bir işlemi tamamlanmış gibi göstermemelidir. + +### Production build'i gerçekten çalıştırın + +Geliştirme sunucusu ile production build aynı davranmayabilir. Optimizasyonlar, çevre değişkenleri, sunucu tarafı render işlemleri ve yalnızca build sırasında görülen hatalar nedeniyle son kontrolü production modunda yapın. + +PowerShell 7 ve üzerindeyseniz proje klasöründe şu komutu çalıştırabilirsiniz: + +```powershell +npm run build && npm run start +``` + +Eski Windows PowerShell sürümlerinde `&&` desteklenmiyorsa iki komutu ayrı ayrı çalıştırın. Önce build'in başarıyla bittiğini gördükten sonra: + +```powershell +npm run build +npm run start +``` + +Uygulama açıldıktan sonra tarayıcının geliştirici araçlarında Console ve Network sekmelerini kontrol edin. Sessizce oluşan JavaScript hataları, başarısız ağ istekleri, karışık içerik uyarıları ve beklenmeyen yönlendirme döngüleri burada görünür. + +### Yayın öncesi kısa fonksiyon listesi + +- Kritik akışlar masaüstü ve mobil ekran boyutlarında tamamlanabiliyor mu? +- Formlar klavye ile kullanılabiliyor ve doğru hata mesajını gösteriyor mu? +- Yenileme ve doğrudan URL ile açma işlemleri çalışıyor mu? +- Boş, yükleniyor, başarı ve hata durumlarının her biri tasarlandı mı? +- E-posta, dosya yükleme, ödeme ve üçüncü taraf servisleri gerçek production ayarlarıyla kontrol edildi mi? +- Veritabanı migration'ları ve başlangıç verileri için geri dönüş planı var mı? + +## 2. Basit Güvenlik ve Sızma Kontrolleri + +Güvenlik yalnızca bir tarama aracını çalıştırmak değildir. Önce uygulamanın temel savunmalarını elle kontrol edin. Buradaki amaç saldırı yapmak değil, açıkça görülebilen yanlış yapılandırmaları yayın öncesinde yakalamaktır. + +### Kimlik doğrulama ile yetkilendirmeyi ayırın + +Kullanıcının oturum açmış olması, her kaynağa erişebileceği anlamına gelmez. Bir kullanıcı URL'deki kimliği değiştirerek başka bir kullanıcının siparişini, profilini veya belgesini görebiliyorsa Broken Access Control problemi vardır. Butonu arayüzden saklamak güvenlik önlemi değildir; yetki kontrolü her istekte sunucu tarafında yapılmalıdır. + +Şunları deneyin: + +- Oturum açmadan özel sayfalara ve API uçlarına doğrudan istek gönderin. +- Normal kullanıcı hesabıyla yönetici rotalarına ulaşmayı deneyin. +- URL, sorgu parametresi veya istek gövdesindeki kaynak kimliğini değiştirin. +- Bir hesabın oturum belirtecini başka kullanıcıya ait kaynaklarda kullanmayı deneyin. +- Çıkış yaptıktan sonra eski belirtecin geçersiz olduğundan emin olun. + +### Gizli bilgiler ve güvenlik başlıkları + +Kaynak kodu, JavaScript paketleri, source map dosyaları, ağ istekleri ve hata mesajlarında parola, özel API anahtarı, veritabanı bağlantı adresi veya erişim belirteci bulunmamalıdır. İstemciye gönderilen hiçbir değer gerçek anlamda gizli değildir. + +HTTPS yönlendirmesini ve en azından şu başlıkları ihtiyacınıza göre değerlendirin: + +- `Content-Security-Policy` +- `Strict-Transport-Security` +- `X-Content-Type-Options: nosniff` +- `Referrer-Policy` +- `Permissions-Policy` +- Clickjacking'e karşı CSP içindeki `frame-ancestors` kuralı + +Çerezlerde hassasiyete göre `Secure`, `HttpOnly` ve uygun `SameSite` değerlerini kullanın. CORS ayarında kimlik bilgileri açıkken gelişigüzel origin kabul etmeyin. Giriş, şifre sıfırlama ve form gönderme gibi kötüye kullanıma açık noktalarda rate limit uygulayın. + +OWASP Top 10'u bir “tam güvenlik testi” olarak değil, riskleri konuşmak için ortak bir başlangıç noktası olarak kullanabilirsiniz. 2025 listesinin ilk sıralarında Broken Access Control, Security Misconfiguration ve Software Supply Chain Failures bulunuyor. + +## 3. Bağımlılık Güvenliği + +Uygulamanızın güvenliği yalnızca yazdığınız koddan oluşmaz. Paket yöneticisiyle kurduğunuz her bağımlılık ve onun alt bağımlılıkları yazılım tedarik zincirine eklenen yeni bir halkadır. + +Node.js projelerinde ilk kontrol için kullandığınız paket yöneticisine göre şu komutlardan birini çalıştırın: + +```powershell +npm audit +``` + +```powershell +pnpm audit +``` + +Raporu yalnızca açık sayısına bakarak değerlendirmeyin. Şu soruları sorun: + +1. Açık production bağımlılığında mı, sadece geliştirme aracında mı? +2. Uygulamanız savunmasız kod yolunu gerçekten kullanıyor mu? +3. Güvenli sürüme yükseltme breaking change oluşturuyor mu? +4. Paket artık bakım almıyor mu; daha güvenli bir alternatif gerekli mi? +5. Risk kabul edilecekse sahibi, gerekçesi ve yeniden değerlendirme tarihi belli mi? + +`npm audit fix --force` gibi zorlayıcı komutları sonucu incelemeden çalıştırmayın. Büyük sürüm yükseltmeleri uygulamayı bozabilir. Kilit dosyasını repoda tutun, CI ortamında deterministik kurulum kullanın ve bağımlılık güncellemelerini testlerden geçirerek birleştirin. + +Ayrıca repoyu yanlışlıkla eklenmiş sırlar için tarayın. Geçmiş bir commit'e giren anahtarı yalnızca dosyadan silmek yeterli değildir; anahtarın iptal edilip yenilenmesi gerekir. Production'da kullanılan anahtarları en az yetki ilkesiyle sınırlandırın ve düzenli olarak döndürün. + +## 4. OWASP ZAP ile Otomatik Güvenlik Taraması (Windows / PowerShell) + +Elle yaptığınız kontrollerin ardından uygulamayı çalışan sistem üzerinden incelemek için OWASP ZAP Baseline Scan kullanabilirsiniz. Baseline Scan hedefi varsayılan olarak kısa süre spider ile dolaşır, ardından oluşan trafik üzerinde pasif tarama kurallarını çalıştırır. Aktif saldırı gerçekleştirmediği için CI/CD ve kontrollü production kontrolleri için Full Scan'e göre daha güvenli bir başlangıçtır. + +Bu ayrım önemlidir: Baseline Scan yararlı uyarılar bulabilir ama uygulamanın güvenli olduğunu kanıtlamaz. Kimlik doğrulamalı ekranların tamamına ulaşamayabilir, iş mantığı açıklarını anlayamaz ve aktif sömürü denemeleri yapmaz. Sonuçları kod incelemesi, yetki testleri ve gerektiğinde uzman sızma testiyle tamamlayın. + +### Gereksinimler + +- Windows üzerinde Docker Desktop kurulu ve çalışıyor olmalı. +- Projeyi açtığınız PowerShell oturumu doğru klasörde olmalı. +- Uygulamanın production build'i çalışıyor olmalı. +- Tarayacağınız hedef size ait olmalı veya açık test izniniz bulunmalı. + +Birinci PowerShell penceresinde uygulamayı başlatın: + +```powershell +npm run build && npm run start +``` + +Uygulamanız `http://localhost:3000` adresinde açılıyorsa ikinci bir PowerShell penceresinde, yine projenin ana klasöründe şu tek satırı çalıştırın: + +```powershell +docker run --rm -t -v "${PWD}:/zap/wrk/:rw" zaproxy/zap-stable zap-baseline.py -t http://host.docker.internal:3000 -r zap-baseline-report.html +``` + +Tarama tamamlandığında proje klasörünüzde `zap-baseline-report.html` dosyası oluşur. Dosyayı tarayıcıda açarak uyarıları, etkilenen URL'leri ve ZAP'ın önerdiği çözümleri inceleyebilirsiniz. + +### Komutun her parçası ne yapıyor? + +| Parça | Açıklama | +| --- | --- | +| `docker run` | ZAP imajından geçici bir konteyner başlatır. | +| `--rm` | Tarama bittiğinde durmuş konteyneri otomatik kaldırır; HTML raporunu silmez çünkü rapor host klasörüne yazılır. | +| `-t` | Konteynere sanal terminal ayırır ve çıktının terminalde okunmasını kolaylaştırır. | +| `-v "${PWD}:/zap/wrk/:rw"` | Geçerli proje klasörünü konteynerde `/zap/wrk/` yoluna okuma-yazma yetkisiyle bağlar. Raporun bilgisayarınızda kalmasını sağlayan kısım budur. | +| `zaproxy/zap-stable` | ZAP'ın kararlı Docker imajını kullanır. İlk çalıştırmada imaj indirilebilir. | +| `zap-baseline.py` | Zaman sınırlı spider ve pasif analiz yapan Baseline Scan betiğini çalıştırır. | +| `-t http://host.docker.internal:3000` | Taranacak hedefi belirtir. Protokol zorunludur. | +| `-r zap-baseline-report.html` | Tam HTML raporunun adını belirler. Mount sayesinde dosya proje klasörüne gelir. | + +### Neden `localhost:3000` değil? + +Konteynerin içinden bakıldığında `localhost`, Windows'ta çalışan uygulamanızı değil ZAP konteynerinin kendisini ifade eder. Docker Desktop, host makineye ulaşmak için `host.docker.internal` adını sağlar. Bu nedenle tarayıcıda `http://localhost:3000` olarak gördüğünüz uygulama ZAP komutunda genellikle `http://host.docker.internal:3000` olur. + +Uygulamanız başka portta çalışıyorsa yalnızca portu değiştirin: + +```powershell +docker run --rm -t -v "${PWD}:/zap/wrk/:rw" zaproxy/zap-stable zap-baseline.py -t http://host.docker.internal:8080 -r zap-baseline-report.html +``` + +Uzak bir test veya production adresi taranacaksa doğrudan HTTPS adresini yazın: + +```powershell +docker run --rm -t -v "${PWD}:/zap/wrk/:rw" zaproxy/zap-stable zap-baseline.py -t https://example.com -r zap-baseline-report.html +``` + +### Faydalı Baseline Scan seçenekleri + +- `-m 3`: Geleneksel spider'ın hedefi kaç dakika dolaşacağını belirler. Varsayılan değer 1 dakikadır. +- `-T 10`: ZAP'ın başlaması ve pasif taramanın tamamlanması için beklenecek azami süreyi dakika cinsinden sınırlar. +- `-j`: JavaScript ağırlıklı sayfaları keşfetmek için modern spider'ı da kullanır; süreyi ve kaynak tüketimini artırabilir. +- `-J zap-report.json`: HTML yanında otomasyon araçlarının okuyabileceği JSON raporu üretir. +- `-w zap-report.md`: Markdown raporu üretir. +- `-g zap-rules.conf`: Varsayılan kural yapılandırmasını oluşturur. +- `-c zap-rules.conf`: Kuralları `INFO`, `WARN`, `FAIL` veya `IGNORE` olarak sınıflandırdığınız yapılandırmayı kullanır. +- `-I`: WARN bulunduğunda komutun başarısız dönüş kodu vermemesini sağlar. CI politikanızı bilinçli belirlemeden eklemeyin. + +Örneğin HTML ve JSON raporunu birlikte üretip tarama süresini artırmak için: + +```powershell +docker run --rm -t -v "${PWD}:/zap/wrk/:rw" zaproxy/zap-stable zap-baseline.py -t http://host.docker.internal:3000 -m 3 -T 10 -r zap-baseline-report.html -J zap-baseline-report.json +``` + +### Dönüş kodlarını doğru okuyun + +ZAP betiği rapor üretmiş olsa bile terminal komutu sıfırdan farklı bir kodla bitebilir. Bu her zaman aracın bozulduğu anlamına gelmez: + +- `0`: Belirlenen politikaya göre başarı. +- `1`: En az bir `FAIL` bulundu. +- `2`: `FAIL` yok, en az bir `WARN` bulundu. +- `3`: Taramanın kendisinde başka bir hata oluştu; hedefe erişememe, zaman aşımı veya yapılandırma problemi gibi nedenleri araştırın. + +PowerShell'de son dönüş kodunu görmek için taramadan hemen sonra `$LASTEXITCODE` yazabilirsiniz. CI sürecinde `1` ve `2` kodlarına nasıl davranılacağını takım politikanız belirlemelidir. Varsayılan olarak uyarı üretmesi beklenen bir aracı sürekli yok saymak yerine, önce başlangıç raporunu değerlendirin; gerçek riskleri `FAIL`, kabul edilenleri gerekçesiyle `IGNORE` veya geçici olarak takip edilenleri uygun bir ilerleme kaydıyla yönetin. + +### Sık karşılaşılan sorunlar + +#### Hedefe ulaşılamıyor + +Önce uygulamanın tarayıcıda açıldığını doğrulayın. Sonra portun doğru olduğunu ve komutta `host.docker.internal` kullandığınızı kontrol edin. Uygulama yalnızca farklı bir arayüze bağlanmışsa sunucu dinleme ayarını incelemeniz gerekebilir. + +#### Rapor proje klasöründe görünmüyor + +Komutu proje ana klasöründe çalıştırdığınızdan, volume ifadesinin tırnak içinde olduğundan ve `/zap/wrk/:rw` ile yazma izni verdiğinizden emin olun. Windows sürücüsü Docker Desktop ile paylaşılmıyorsa Docker ayarlarını da kontrol edin. + +#### Çok fazla uyarı var + +Önce uyarıları önem derecesine göre gruplayın. Güvenlik başlıkları, çerez seçenekleri ve bilgi sızdıran sunucu başlıkları sık görülür. Her bulgunun istek ve yanıt kanıtını inceleyin; false positive olanı gerekçesiz biçimde kapatmayın. Düzeltmeden sonra aynı komutu çalıştırıp raporları karşılaştırın. + +## 5. Yasal Gereklilikler ve Veri Yönetimi + +Kişisel veri topluyorsanız teknik olarak güvenli olmak tek başına yeterli değildir. Hangi veriyi, hangi amaçla, hangi hukuki sebebe dayanarak, ne kadar süreyle işlediğinizi bilmeniz gerekir. Bu bölüm hukuki danışmanlık değildir; ürününüzün faaliyet alanı ve hedeflediği ülkelere göre uzman görüşü alın. + +Türkiye'de KVKK kapsamında aydınlatma yükümlülüğü, kişisel verisi işlenen kişiye veri sorumlusunun kimliği, işleme amacı, aktarım, toplama yöntemi, hukuki sebep ve ilgili kişi hakları hakkında bilgi verilmesini kapsar. Açık rıza gereken bir işlemde rıza almak, aydınlatma yükümlülüğünü ortadan kaldırmaz. + +Yayın öncesinde şunları kontrol edin: + +- Gizlilik ve aydınlatma metinleri gerçek veri akışını yansıtıyor mu? +- Zorunlu olmayan çerezler ve izleme araçları gerekli onaydan önce çalışıyor mu? +- Toplanan her alan gerçekten gerekli mi; veri minimizasyonu uygulandı mı? +- Saklama süresi dolan verinin silinmesi, yok edilmesi veya anonimleştirilmesi planlandı mı? +- Kullanıcı erişim, düzeltme ve silme taleplerini nasıl iletecek? +- Analitik, e-posta, hata izleme ve bulut sağlayıcılarına hangi veriler aktarılıyor? +- Yedekler şifreli mi, geri yükleme testi yapıldı mı ve erişimler kayıt altına alınıyor mu? +- Veri ihlalinde sorumluların, iletişim zincirinin ve yapılacak işlemlerin yazılı olduğu bir olay müdahale planı var mı? + +Loglarda parola, tam erişim belirteci, kredi kartı verisi veya gereksiz kişisel bilgi tutmayın. Production verisini geliştirme ve test ortamlarına kopyalamayın; zorunluysa anonimleştirme veya maskeleme uygulayın. Yönetim panellerinde çok faktörlü kimlik doğrulama ve rol bazlı yetkilendirme kullanın. + +KVKK'nın veri güvenliği açıklaması, veri sorumlusunun hukuka aykırı işlemeyi ve erişimi önlemek, verilerin muhafazasını sağlamak için uygun teknik ve idari tedbirleri almasını bekler. Bu nedenle güvenlik kontrol listeniz hukuki uyum sürecinden ayrı düşünülemez. + +## 6. SEO, Erişilebilirlik ve Kapanış Kontrolleri + +Son aşamada ürünün bulunabilir, kullanılabilir ve gözlemlenebilir olduğundan emin olun. Teknik olarak çalışan ama arama motorunun okuyamadığı, klavyeyle kullanılamayan veya hata verdiğinde kimseye haber vermeyen bir uygulama production'a hazır değildir. + +### SEO + +- Her sayfada açıklayıcı ve benzersiz `title` ile meta description bulunmalı. +- Canonical URL doğru olmalı; HTTP/HTTPS, `www` ve sondaki eğik çizgi varyasyonları tek adrese yönlenmeli. +- `robots.txt` production sayfalarını yanlışlıkla engellememeli. +- XML sitemap yalnızca yayınlanabilir ve canonical URL'leri içermeli. +- Open Graph ve sosyal medya kapakları gerçek ortamda erişilebilir olmalı. +- Başlık hiyerarşisi anlamlı olmalı; her şeyi görsel boyut için başlık yapmayın. +- 404 sayfası doğru HTTP durum kodunu döndürmeli. +- Yapılandırılmış veriler sayfada görünen içerikle uyuşmalı. + +### Erişilebilirlik + +WCAG 2.2'yi referans alarak en azından klavye kullanımı, görünür odak, renk kontrastı, form etiketleri, hata mesajları ve alternatif metinleri kontrol edin. + +- Sayfanın tamamı yalnızca klavye ile kullanılabiliyor mu? +- Odak sırası mantıklı ve odak göstergesi görünür mü? +- Görsellerin anlamlı `alt` metni var mı; dekoratif görseller ekran okuyucudan gizleniyor mu? +- Form alanları görünür etiketlere ve programatik isimlere sahip mi? +- Hata yalnızca kırmızı renk ile mi anlatılıyor, yoksa metinle de açıklanıyor mu? +- Modal açıldığında odak yönetiliyor ve `Escape` ile kapanabiliyor mu? +- Hareketli içerik azaltılmış hareket tercihini dikkate alıyor mu? +- Yakınlaştırmada ve dar ekranlarda içerik kayboluyor mu? + +Otomatik erişilebilirlik araçları iyi bir başlangıçtır ama klavye ve ekran okuyucu denemesinin yerini tutmaz. + +### Performans ve operasyon + +Lighthouse veya benzeri ölçümlerle yalnızca puana değil, gerçek darboğaza bakın. Büyük görselleri uygun boyutta ve modern formatta sunun, kritik olmayan JavaScript'i erteleyin, font yüklemesini düzenleyin ve cache politikasını doğrulayın. Ölçümü birkaç kez, mümkünse düşük güçlü mobil cihaz ve yavaş ağ koşullarında tekrarlayın. + +Son olarak şu operasyon sorularını cevaplayın: + +- Hatalar merkezi bir sistemde izleniyor ve doğru kişiye bildirim gidiyor mu? +- Sağlık kontrolü, uptime takibi ve temel metrikler var mı? +- Deployment sürümü veya commit kimliği kaydediliyor mu? +- Veritabanı migration'ı geriye uyumlu mu? +- Bir önceki sürüme dönme adımı gerçekten denendi mi? +- DNS, SSL sertifikası ve alan adı yenilemeleri izleniyor mu? +- Production çevre değişkenleri ve üçüncü taraf webhook adresleri doğrulandı mı? + +## Sonuç: Yayına Çıkmak Bir An Değil, Bir Süreçtir + +İyi bir yayın kontrolü, hiç hata olmayacağını garanti etmez. Asıl kazancı, bilinen riskleri görünür hâle getirmesi ve sorun çıktığında ne yapacağınızı önceden belirlemesidir. + +Kısa özetle yayına çıkmadan önce: + +1. Kritik kullanıcı akışlarını production build üzerinde test edin. +2. Yetki kontrollerini, gizli bilgileri, çerezleri ve güvenlik başlıklarını inceleyin. +3. Bağımlılık ve yazılım tedarik zinciri risklerini değerlendirin. +4. OWASP ZAP Baseline Scan ile çalışan uygulamayı tarayıp raporu yorumlayın. +5. Kişisel veri akışlarını, aydınlatma metinlerini ve saklama süreçlerini doğrulayın. +6. SEO, erişilebilirlik, performans, izleme ve geri dönüş planını tamamlayın. + +Bu listeyi repoda yaşayan bir dokümana dönüştürün. Her sürümde işaretleyin, yeni bir olay yaşandığında listeyi güncelleyin ve mümkün olan maddeleri CI/CD sürecinde otomatikleştirin. Böylece “umarım çalışır” diyerek yapılan bir yayın yerine, kanıtı ve geri dönüş planı olan kontrollü bir teslim süreci kurarsınız. + +## Kaynaklar + +- [OWASP ZAP Baseline Scan dokümantasyonu](https://www.zaproxy.org/docs/docker/baseline-scan/) +- [OWASP ZAP Docker kullanıcı rehberi](https://www.zaproxy.org/docs/docker/about/) +- [OWASP Top 10:2025](https://owasp.org/Top10/) +- [KVKK — Aydınlatma Yükümlülüğü](https://www.kvkk.gov.tr/Icerik/2033/Aydinlatma-Yukumlulugu-) +- [KVKK — Veri Güvenliğine İlişkin Yükümlülükler](https://www.kvkk.gov.tr/Icerik/2040/Veri-Guvenligine-Iliskin-Yukumlulukler) +- [W3C — Web Content Accessibility Guidelines (WCAG) 2.2](https://www.w3.org/TR/WCAG22/) diff --git a/public/blog/images/yayina-cikmadan-once-dikkat-et-cover.png b/public/blog/images/yayina-cikmadan-once-dikkat-et-cover.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e188811647fde99b617e1d2c84ffaf9e73e2e8 GIT binary patch literal 75831 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
S5*guAHmn1- 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 ?e0}02W;?S;Wj9zq{hqt=gojVQ~ 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 R2Jn+h3UVs4@1>3W{y+Oi43q!> literal 0 HcmV?d00001