İçeriğe geç
Bir mühendisle konuşun

Case study

Kendi web sitesi analiz aracımız

Bu sitedeki ücretsiz web sitesi analizi bizim kendi geliştirmemizdir. Nasıl ürettik: hesaplanmış bulgular, açıkça beyan edilen sınırlar ve hiçbir şey saklamayan, SSRF korumalı bir…

Industry
0saklanan analiz sonucu

The client & context

Who they are, and what was at stake.

Bu, ücretli bir müşteri işi değil, dahili bir geliştirmedir ve onu bilinçli olarak bir vaka çalışması olarak sunuyoruz. Erken aşamada bir stüdyo, henüz hak etmediği bir müşteri logoları duvarını dürüstçe gösteremez. Yapabileceği şey, geliştirip canlıda çalıştırdığı gerçek bir şeyi açmak — ve onu doğrudan incelemenize izin vermektir.

Bu sitedeki ücretsiz web sitesi analizi işte o şeydir. Canlıdır, önünüzdedir ve onu kendi sitenizde bir dakika içinde çalıştırabilirsiniz. Yani inanmak zorunda kalacağınız bir işi anlatmak yerine, bu çalışma hâlihazırda kullanabileceğiniz bir aracın nasıl mühendislikle üretildiğini adım adım gösterir — ve arkasındaki standartlar, bir müşteri projesinin aldığı standartların aynısıdır.

Onu, tüm stüdyonun işlediği kurala tabi tuttuk: yalnızca doğru olanı söyle ve işi herkesin kontrol edebileceği kadar anlaşılır kıl.

The challenge

The problem we were brought in to solve.

Ücretsiz “web sitesi karne” araçlarının çoğu bir e-posta toplamak için vardır ve bu kendini belli eder: şişirilmiş puanlar, muğlak bulgular ve bir görüşme ayarlatacak kadar alarm verici görünmesi için tasarlanmış bir sayı. Bu yaklaşım baştan elendi — sattığımız şeyin tam tersidir ve göstergenin hileli olduğunu sonradan fark eden bir alıcı bir daha asla geri dönmez. Bu yüzden brief bilerek zorlayıcıydı. Araç gerçekten faydalı ve gerçekten dürüst olmalıydı: her puan gerçek sayfadan hesaplanmış, her bulgu üzerine harekete geçilecek kadar spesifik ve — en zor kısmı — hızlı bir taramanın gerçekte belirleyemeyeceği şeyler tahmin edilmek yerine açıkça beyan edilmiş olmalıydı.

Genç bir stüdyo için araç, bir seçme sınavıdır. Özensiz ya da dürüst değilse, herhangi bir tanıtımın bizim lehimize savunabileceğinden daha ikna edici şekilde aleyhimize konuşur.

The approach

How we engineered it.

Üçüncü taraf bir analiz API’sini yeniden satmak yerine kendi kendine yeten bir puanlama motoru geliştirdik. Her kontrol, gerçekten çektiğimiz HTML’i ve sunucunun onu nasıl sunduğunu okur, ardından üç şeyi sade bir dille raporlar: ne gördüğümüz, neden önemli olduğu ve düzeltmenin kabaca ne kadar emek gerektirdiği.

Puanlama bilinçli olarak ağırlıksız ve anlaşılırdır — geçen bir kontrol tam, bir uyarı yarım, bir başarısızlık sıfır sayılır ve nötr gözlemler şişirilmek yerine dışarıda bırakılır. Hiçbir şey, bir sayıyı olduğundan kötü göstermek için bir eğriye oturtulmaz.

  1. Sade dille üç sütun

    Bulunabilirlik (SEO), Erişim (erişilebilirlik) ve Sunum (ön yüz performansı) — altta yatan jargona göre değil, bir işletme sahibi için ne anlama geldiklerine göre adlandırıldı.

  2. Hesaplanmış, asla uydurulmamış

    Her bulgu, çekilen baytlardan ve yanıt süresinden türetilir. Verinin olmadığı yerde araç, tahmin yürütmek yerine bunu açıkça söyler.

  3. Kör noktaları konusunda dürüst

    Tek bir statik istek; oluşturulmuş renk kontrastını, gerçek klavye sırasını ya da saha Core Web Vitals değerlerini değerlendiremez. Rapor bu sınırları açıkça belirtir ve daha derin, render tabanlı taramaya yönlendirir.

  4. Kötüye kullanıma karşı sıkılaştırılmış

    Sunucuda, yabancı birinin sağladığı bir URL’i çeker; bu nedenle sunucu taraflı istek sahteciliğine (SSRF) karşı korunur, ziyaretçi başına hız sınırlıdır — ve hiçbir şey saklamaz.

Technical depthFor engineers

Sunucuda ziyaretçinin sağladığı bir URL’i çekmek klasik bir SSRF vektörüdür; bu yüzden koruma iki katmanda çalışır. Ucuz bir metin taraması, http(s) olmayan her şeyi reddeder, kimlik bilgilerini ayıklar ve dahili adları ile özel, loopback, link-local, unique-local, CGNAT ve bulut-meta-veri adreslerini reddeder. Ardından, derinlemesine savunma olarak, çekme işlemi ana bilgisayar adını çözümler ve çözümlenen her adresi yeniden kontrol eder — böylece özel bir IP’ye işaret eden herkese açık bir alan adı da engellenir.

Kötüye kullanım koruması, bellek içi, IP başına sabit bir penceredir — istemci başına dakikada birkaç çalıştırma. Kapsamı dürüstçe belirlenmiştir: tek bir örneği korur, dağıtık bir sınırlayıcı değildir. Örnekler arası bir sınırlayıcı, halihazırda varmış gibi davranmak yerine işaretlediğimiz bir altyapı işidir.

Uç nokta Node çalışma zamanında çalışır, asla önbelleğe alınmaz ve hiçbir şeyi kalıcılaştırmaz — bellek içi hız sınırı penceresinin ötesinde URL, sonuç ya da IP tutmaz. Sayfayı gerçek bir tarayıcıda oluşturan ve bir anahtar yapılandırıldığında PageSpeed Insights’tan saha Core Web Vitals değerlerini katabilen opsiyonel daha derin rapor; gizli bir veri toplama değil, mevcut iletişim formumuz üzerinden ayrı, açık ve isteğe bağlı bir işlemdir.

What we built

The solution, concretely.

Sonuç, saniyeler içinde puanlanmış bir rapor döndüren ücretsiz bir analizdir: genel bir not, her sütun için bir not ve sayım ve başarısızlıkların ve uyarıların önce gösterildiği, sıralanmış bir bulgular listesi. Her bulgu, neden önemli olduğuna dair sade bir açıklama ve bunun hızlı bir düzeltme mi yoksa gerçek bir mühendislik işi mi olduğuna dair dürüst bir izlenim taşır.

Motor, SSRF koruması, hız sınırlayıcı ve rapor oluşturma tamamen bizimdir ve bu sitenin bir parçası olarak sunulur — bir sunucu uç noktası ve döndürdüğü JSON’u oluşturan küçük bir istemci adası.

Üç sütun — Bulunabilirlik, Erişim ve Sunum — yazıp baktığımız tek bir motorla puanlanır.

Yirmiden fazla ayrı kontrol, her biri çektiğimiz sayfadan hesaplanmış, asla tahmin edilmemiş.

Dürüst sınırlar: oluşturulmuş kontrast, gerçek klavye sırası ve saha Core Web Vitals değerleri tahmin edilmez, beyan edilir.

URL, sonuç ya da ziyaretçi verisi saklamayan, SSRF korumalı ve hız sınırlı bir uç nokta.

Ücretsiz, kayıt gerektirmeyen bir ilk tarama; daha derin render tabanlı rapor ise açık ve isteğe bağlı bir e-postadır.

  • Üç sütun — Bulunabilirlik, Erişim ve Sunum — yazıp baktığımız tek bir motorla puanlanır.
  • Yirmiden fazla ayrı kontrol, her biri çektiğimiz sayfadan hesaplanmış, asla tahmin edilmemiş.
  • Dürüst sınırlar: oluşturulmuş kontrast, gerçek klavye sırası ve saha Core Web Vitals değerleri tahmin edilmez, beyan edilir.
  • URL, sonuç ya da ziyaretçi verisi saklamayan, SSRF korumalı ve hız sınırlı bir uç nokta.
  • Ücretsiz, kayıt gerektirmeyen bir ilk tarama; daha derin render tabanlı rapor ise açık ve isteğe bağlı bir e-postadır.

The outcome

What measurably changed.

Bu bizim kendi aracımız olduğu için, size gösteremeyeceğimiz bir metriğe güvenmenizi istemiyoruz — onu kontrol etmeye davet ediyoruz. Kendi sitenizde çalıştırın, sonra göremediğini söylediği şeyi okuyun. Asıl önemli sonuç bu dürüstlüktür: araç, iddia ettiğimiz değil, doğrulayabileceğiniz bir şey olarak nasıl çalıştığımızı gösterir.

Aşağıdaki rakamlar, ödünç alınmış iş sonuçları değil, aracın kendisine dair gerçeklerdir — tam olarak erken aşamada bir stüdyonun arkasında durabileceği türden bir iddia.

  • 3sütun, tek motorBulunabilirlik, Erişim ve Sunum — yeniden satılan bir API değil, yazıp baktığımız kodla puanlanır.
  • 0saklanan kayıtBellek içi hız sınırı penceresinin ötesinde kaydedilen URL, sonuç ya da IP yok. Tasarımı gereği gizlilik.
  • مجانيçalıştırmak için kayıt yokSaniyeler içinde eksiksiz bir rapor; daha derin render tabanlı tarama ise açık ve isteğe bağlı bir e-postadır.

Ownership & handover

What the client owns now.

Bu aracı kendimiz çalıştırıyoruz; bu yüzden disiplini anlatılmıyor, sergileniyor. Belgelidir, puanlaması anlaşılırdır, sınırları yazıya dökülmüştür ve uç noktası korunur — bir müşteri geliştirmesinin sunulduğu mühendislik duruşunun ve aynı “ona sahipsiniz, üzerinde akıl yürütebilirsiniz” ilkesinin aynısı. Sizin için geliştirdiğimizde bu duruş; tüm kaynak kodu, altyapı ve belgelenmiş bir devir teslimle gelir; böylece ekibiniz — ya da herhangi bir ekip — onu çalıştırıp geliştirebilir. Burada kanıt, sonucu kendiniz görüp kullanabilmenizden ibarettir.

Bu standartta geliştirilmiş bir araç — ya da bir sistem — ister misiniz?

Bize gerçek bir sorun getirin. Bir satışçı değil, kıdemli bir mühendis bir iş günü içinde yanıt verir; başlamadan önce sabit bir kapsam belirlenir ve geliştirdiğimiz her şeyin sahibi siz olursunuz.