Önbelleğe alınıyor

Bu belge aşağıdaki yöntemler için geçerlidir:

Önbelleğe alma hakkında

İstemci bant genişliği kullanımını azaltmak ve Google'ı ani trafik artışlarından korumak için Tehdit verilerinin yerel bir önbelleğini oluşturmak ve sürdürmek için Lookup API ve Update API gerekir. Lookup API için önbellek, threatMatches sayısını azaltmak amacıyla kullanılır. ve müşterilerin Google'a gönderdiği istekler. Update API için önbellek, kullanıcı tarafından görüntülenmiş fullHashes istemcilerin Google'a gönderdiği isteklerdir. Her API için önbelleğe alma protokolü öğrenebilirsiniz.

Lookup API

Lookup API istemcileri, döndürülen her ThreatMatch öğesini tanımlanan süre boyunca önbelleğe almalıdır . Müşterilerin daha sonra manuel bir yapılandırma yapmadan önce önbelleğe bakması gerekir. Sunucuya threatMatches isteği. Daha önce döndürülen bir ThreatMatch için önbellek süresi süresi henüz dolmamışsa istemci, öğenin hâlâ güvenli olmadığını varsaymalıdır. ThreatMatch öğe önbelleğe alınıyor istemci tarafından yapılan API isteklerinin sayısını azaltabilir.

Örnek: ThreatMatches.find

Örneklerin tamamı için tablo başlığındaki istek ve yanıt bağlantılarını tıklayın.

URL Kontrolü
threatMatch'ler İsteği
URL eşleşmesi
threatMatches Yanıtı
Önbelleğe Alma Davranışı
"threatEntries": [
 {"url": "http://www.urltocheck.org/"}
]
"matches": [{
 "threat": {"url": "http://www.urltocheck.org/"},
 "cacheDuration": "300.000s"
}]
Eşleşme
. İstemci, şunu içeren yeni bir threatMatches isteği göndermeden önce 5 dakika beklemelidir: URL http://www.urltocheck.org/.

Update API

Müşteriler, Update API'yi kullanarak Google'a gönderilen fullHashes isteklerinin toplam sayısını azaltmak amacıyla yerel bir önbellek sağlamak için gereklidir. API, pozitif ve negatif olmak üzere iki tür önbelleğe alma oluşturur.

Pozitif önbelleğe alma

Müşterilerin belirli bir güvenli olmayan tam karmanın durumunu sürekli olarak sormasını önlemek için döndürülen her ThreatMatch pozitif bir önbellek süresi içerir (cacheDuration alanı tarafından tanımlanır), Bu değer, tam karmanın ne kadar süre boyunca "güvenli değil" olarak kabul edileceğini gösterir.

Negatif önbelleğe alma

Müşterilerin belirli bir güvenli tam karmanın durumunu sürekli olarak sormasını önlemek için her fullHashes yanıtı, istenen ön ek için negatif bir önbellek süresi tanımlar ( negativeCacheDuration alanı) tıklayın. Bu süre, istenen önekleri, sunucu tarafından güvenli değil. Önbelleğe alma, kaynaklanabilecek trafik yükünü önlediği için özellikle önemlidir çok fazla trafik alan güvenli bir URL ile karma ön ek çakışması nedeniyle.

Önbelleğe alma

Müşteri bir URL'nin durumunu kontrol etmek istediğinde önce tam karma değerini hesaplar. Eğer karmanın öneki yerel veritabanında bulunuyorsa istemci, kullanmadan önce sunucuya bir fullHashes isteği gönderiliyor.

İlk olarak, müşteriler pozitif bir önbellek isabeti olup olmadığını kontrol etmelidir. Süresi dolmamış pozitif önbellek varsa girilmediği sürece, bu giriş güvenli olarak değerlendirilmemelidir. Pozitif önbellek girişi süresi dolduysa istemcinin, ilişkilendirilen yerel önek için bir fullHashes isteği göndermesi gerekir. protokolü, sunucu tam karma değeri döndürürse güvenli olmayan kabul edilir; Aksi takdirde, güvenli.

Tam karma için pozitif önbellek girişleri yoksa istemci, önbellek isabeti. İlişkili yerel önek için süresi dolmamış bir negatif önbellek girişi varsa tam karma güvenli kabul edilir. Negatif önbellek girişinin süresi dolmuşsa veya giriş yoksa istemci ilişkilendirilen yerel önek için bir fullHashes isteği göndermeli ve yanıtı normal olarak yorumlamalıdır.

Önbelleği güncelleme

fullHashes yanıtı her alındığında istemci önbelleği güncellenmelidir. Pozitif önbellek girişi, cacheDuration alanına göre tam karma için oluşturulmalı veya güncellenmelidir. Karma ön eki negatif önbellek süresi de yanıtın negativeCacheDuration değerine göre oluşturulmalı veya güncellenmelidir. girin.

Sonraki bir fullHashes isteği şu anda pozitif olan tam bir karma döndürmezse önbelleğe alınmışsa istemcinin pozitif önbellek girişini kaldırması gerekmez. Bu endişe edilecek bir durum değil kısa süreli tarama için kısa (birkaç dakika) olduğundan, pozitif önbellek süreleri yanlış pozitiflerin düzeltmesi.

Örnek senaryo

Aşağıdaki örnekte h(url) kodunun URL'nin karma öneki ve H(url) kodunun ise URL'nin tam uzunluktaki karmasını kullanın. Yani, h(url) = SHA256(url).substr(4), H(url) = SHA256(url).

Şimdi, bir istemcinin (önbelleği boş olan) example.com/ adresini ziyaret ettiğini ve h(example.com/) adresinin yerel veritabanında bulunabilir. İstemci h(example.com/) karma öneki için tam uzunlukta karmaları ister. ve tam uzunluktaki karma H(example.com/) öğesini, 5 pozitif önbellek süresiyle birlikte geri alır. dakika ve 1 saatlik negatif önbellek süresi.

5 dakikalık pozitif önbellek süresi, istemciye tam uzunluktaki karmanın ne kadar sürdüğünü bildirir. Başka bir fullHashes isteği gönderilmeden H(example.com/) güvenli olmadığı kabul edilmelidir. 5'ten sonra dakika içinde istemcinin bu ön ek h(example.com/) için başka bir fullHashes isteği yayınlaması gerekir. example.com/ adresini tekrar ziyaret eder. İstemci, karma önekinin negatif önbellek süresini sıfırlamalıdır yeni yanıta göre ayarlanır.

1 saatlik negatif önbellek süresi, istemciye diğer tüm tam uzunluktaki karmaların ne kadar sürdüğünü bildirir. aynı h(example.com/) önekini paylaşan H(example.com/) dışındaki URL'lerin güvenli olarak kabul edilmesi gerekir. Örneğin, bir saat sürecekse, h(URL) = h(example.com/) gibi her URL güvenli kabul edilmelidir ve bu nedenle bir fullHashes isteğiyle sonuçlanmaz (H(URL) != H(example.com/) olduğu varsayılır.

fullHashes yanıtı sıfır eşleşme içeriyorsa ve negatif önbellek süresi ayarlanmışsa belirtilenfullHashes negatif önbellek süresi.

fullHashes yanıtı bir veya daha fazla eşleşme içeriyorsa negatif önbellek süresi yine de ayarlanır bir kullanıcı grubu oluşturduk. Bu durumda, tek bir tam karmanın önbellek süresi müşteri tarafından güvenli olmadığı varsayıldığından emin olun. ThreatMatch önbelleğinden sonra bir süre geçtikten sonra, istemcinin fullHashes isteği göndererek tam uzunluktaki karmayı yenilemesi istenen URL önbellekteki mevcut tam uzunluktaki karma ile eşleşirse bu karma önekini kullanın. Bu negatif önbellek süresinin uygulanmamasıdır. Yanıtın negatif önbellek süresi yalnızca geçerlidir fullHashes yanıtında bulunmayan tam uzunluktaki karmalara dönüştürüldü. Tam uzunluktaki karmalar için yanıtta mevcut değilse istemci, fullHashes istekleri göndermekten kaçınmalıdır. negatif önbellek süresi geçene kadar.

Örnek: fullHashes.find

Örneklerin tamamı için tablo başlığındaki istek ve yanıt bağlantılarını tıklayın.

Karma Ön Ekleri
fullHashes İsteği
Tam Uzunlukta Karma Eşleşmeleri
fullHashes Yanıtı
Önbelleğe Alma Davranışı
"threatEntries": [
  {"hash": "0xaaaaaaaa"}
]
"matches": [],
"negativeCacheDuration": "3600.000s"
Eşleşme yok.
. İstemci, en az bir saat boyunca 0xaaaaaaaa karma ön eki için fullHashes isteği göndermemelidir. 0xaaaaaaaa ön ekine sahip karmalar bir saat boyunca güvenli kabul edilir.
"threatEntries": [
  {"hash": "0xbbbbbbbb"}
]
"matches": [
 "threat": {"hash": "0xbbbbbbbb0000..."}
 "cacheDuration": "600.000s",
],
"negativeCacheDuration": "300.000s"
Olası eşleşmeler.
. İstemci, tam karma değeri 0xbbbbbbbb0000 olan URL'yi 10 dakika boyunca güvenli değil olarak kabul etmelidir. İlgili içeriği oluşturmak için kullanılan müşteri, 0xbbbbbbbb karma ön ekine sahip diğer tüm URL'leri 5 dakika boyunca güvenli kabul etmelidir. 5'ten sonra dakika, karma ön eklerin negatif önbellek girişinin süresi dolar. için pozitif önbellek girişinden 0xbbbbbbbb0000... için geçerlilik süresi henüz dolmadı, istemci tüm karmalar için fullHashes istekleri göndermelidir yalnızca o hariç.
"threatEntries": [
  {"hash": "0xcccccccc"}
]
"matches": [
 "threat": {"hash": "0xccccccccdddd..."},
 "cacheDuration": "600.000s"
],
"negativeCacheDuration": "3600.000s"
Olası eşleşmeler.
. İstemci, en az 1 saat boyunca 0xcccccc karma ön eki için herhangi bir fullHashes isteği göndermemeli ve o önekin güvenli olması gerekir (URL'nin tam karması, önbelleğe alınmış tam karma ile eşleşirse) 0xccccccccdddd.... Bu durumda, müşteri 10 dakika boyunca URL'nin güvenli olmadığını kabul etmelidir. 10 dakika sonra tam uzunluktaki karmanın süresi dolar. Bu tam karma için daha sonra yapılan aramalarda yeni bir fullHashes isteğini tetikleyin.