Method: hashes.search

Tìm kiếm toàn bộ hàm băm khớp với các tiền tố đã chỉ định.

Đây là một phương thức tuỳ chỉnh theo quy định của https://google.aip.dev/136 (phương thức tuỳ chỉnh là phương thức này có tên tuỳ chỉnh theo thuật ngữ phát triển API chung của Google; không phải việc sử dụng một phương thức HTTP tuỳ chỉnh).

Yêu cầu HTTP

GET https://safebrowsing.googleapis.com/v5/hashes:search

URL sử dụng cú pháp Chuyển mã gRPC.

Tham số truy vấn

Tham số
hashPrefixes[]

string (bytes format)

Bắt buộc. Các tiền tố hàm băm cần tra cứu. Ứng dụng KHÔNG ĐƯỢC gửi hơn 1.000 tiền tố băm. Tuy nhiên, theo quy trình xử lý URL, ứng dụng KHÔNG cần gửi hơn 30 tiền tố băm.

Hiện tại, mỗi tiền tố hàm băm bắt buộc phải dài chính xác 4 byte. Điều này CÓ THỂ được nới lỏng trong tương lai.

Một chuỗi được mã hoá base64.

Nội dung yêu cầu

Nội dung yêu cầu phải trống.

Nội dung phản hồi

Phản hồi được trả về sau khi tìm kiếm hàm băm về mối đe doạ.

Nếu không tìm thấy gì, máy chủ sẽ trả về trạng thái OK (mã trạng thái HTTP 200) với trường fullHashes trống, thay vì trả về trạng thái NOT_FOUND (mã trạng thái HTTP 404).

Tính năng mới trong phiên bản 5: Có sự tách biệt giữa FullHashFullHashDetail. Trong trường hợp một hàm băm biểu thị một trang web có nhiều mối đe doạ (ví dụ: cả MALWARE và SOCIAL_EngineERING), thì bạn không cần gửi hàm băm đầy đủ như trong phiên bản 4. Hơn nữa, thời lượng bộ nhớ đệm đã được đơn giản hoá thành một trường cacheDuration duy nhất.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
Trường
fullHashes[]

object (FullHash)

Danh sách không theo thứ tự. Đã tìm thấy danh sách hàm băm đầy đủ không theo thứ tự.

cacheDuration

string (Duration format)

Thời lượng bộ nhớ đệm phía máy khách. Ứng dụng PHẢI thêm thời lượng này vào thời gian hiện tại để xác định thời gian hết hạn. Sau đó, thời gian hết hạn sẽ áp dụng cho mọi tiền tố hàm băm được ứng dụng truy vấn trong yêu cầu, bất kể phản hồi trả về bao nhiêu hàm băm đầy đủ. Ngay cả khi máy chủ không trả về hàm băm đầy đủ cho một tiền tố hàm băm cụ thể, máy khách cũng PHẢI lưu vào bộ nhớ đệm trên thực tế này.

Lưu ý quan trọng: ứng dụng KHÔNG ĐƯỢC giả định rằng máy chủ sẽ trả về cùng thời lượng bộ nhớ đệm cho tất cả phản hồi. Máy chủ CÓ THỂ chọn thời lượng bộ nhớ đệm khác nhau cho các phản hồi khác nhau tuỳ theo tình huống.

Thời lượng tính bằng giây với tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

FullHash

Hàm băm đầy đủ được xác định có một hoặc nhiều kết quả trùng khớp.

Biểu diễn dưới dạng JSON
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
Trường
fullHash

string (bytes format)

Hàm băm đầy đủ trùng khớp. Đây là hàm băm SHA256. Độ dài sẽ là 32 byte.

Một chuỗi được mã hoá base64.

fullHashDetails[]

object (FullHashDetail)

Danh sách không theo thứ tự. Một trường lặp lại xác định các chi tiết liên quan đến hàm băm đầy đủ này.

FullHashDetail

Thông tin chi tiết về một hàm băm đầy đủ trùng khớp.

Lưu ý quan trọng về khả năng tương thích chuyển tiếp: các kiểu mối đe doạ và thuộc tính mối đe doạ mới có thể được máy chủ thêm vào bất cứ lúc nào; những phần bổ sung đó được coi là các thay đổi nhỏ về phiên bản. Theo chính sách của Google, Google không tiết lộ số phiên bản nhỏ trong API (xem https://cloud.google.com/apis/design/versioning để biết chính sách về phiên bản). Vì vậy, ứng dụng PHẢI chuẩn bị để nhận các thông báo FullHashDetail chứa giá trị enum ThreatType hoặc giá trị enum ThreatAttribute bị ứng dụng coi là không hợp lệ. Do đó, ứng dụng có trách nhiệm kiểm tra tính hợp lệ của tất cả các giá trị enum ThreatTypeThreatAttribute; nếu có bất kỳ giá trị nào được coi là không hợp lệ, ứng dụng PHẢI bỏ qua toàn bộ thông báo FullHashDetail.

Biểu diễn dưới dạng JSON
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
Trường
threatType

enum (ThreatType)

Kiểu đe doạ. Trường này sẽ không bao giờ để trống.

attributes[]

enum (ThreatAttribute)

Danh sách không theo thứ tự. Các thuộc tính bổ sung về hàm băm đầy đủ đó. Có thể trống.

ThreatType

Các loại hành vi đe doạ.

Enum
THREAT_TYPE_UNSPECIFIED Kiểu mối đe doạ không xác định. Nếu máy chủ trả về mã này, thì ứng dụng sẽ bỏ qua hoàn toàn FullHashDetail đi kèm.
MALWARE

Kiểu mối đe doạ phần mềm độc hại. Phần mềm độc hại là những phần mềm hay ứng dụng dành cho thiết bị di động được thiết kế riêng biệt nhằm gây hại cho máy tính, thiết bị di động, phần mềm mà máy tính/thiết bị di động đang chạy hoặc người dùng. Phần mềm độc hại thực hiện những hành vi độc hại, chẳng hạn như cài đặt phần mềm khi người dùng chưa đồng ý và cài đặt những phần mềm có hại như vi-rút.

Bạn có thể tìm thêm thông tin tại đây.

SOCIAL_ENGINEERING

Kiểu đe doạ tấn công phi kỹ thuật. Các trang tấn công phi kỹ thuật ngụ ý sai sự thật cho hành động thay mặt cho một bên thứ ba nhằm làm người xem bối rối khi thực hiện một hành động mà người xem sẽ chỉ tin tưởng một đại diện thực sự của bên thứ ba đó. Tấn công giả mạo là một loại hành vi tấn công phi kỹ thuật nhằm lừa người xem thực hiện một hành động cụ thể là cung cấp thông tin, chẳng hạn như thông tin đăng nhập.

Bạn có thể tìm thêm thông tin tại đây.

UNWANTED_SOFTWARE Kiểu mối đe doạ phần mềm không mong muốn. Phần mềm không mong muốn là bất kỳ phần mềm nào không tuân thủ Nguyên tắc về phần mềm của Google nhưng không phải là phần mềm độc hại.
POTENTIALLY_HARMFUL_APPLICATION Kiểu mối đe doạ đối với ứng dụng có khả năng gây hại như Google Play Protect sử dụng cho Cửa hàng Play.

ThreatAttribute

Thuộc tính của mối đe doạ. Những thuộc tính này có thể mang ý nghĩa bổ sung cho một mối đe doạ cụ thể nhưng sẽ không ảnh hưởng đến kiểu mối đe doạ đó. Ví dụ: một thuộc tính có thể chỉ định độ tin cậy thấp hơn, trong khi một thuộc tính khác có thể chỉ định độ tin cậy cao hơn. Các thuộc tính khác có thể được thêm vào trong tương lai.

Enum
THREAT_ATTRIBUTE_UNSPECIFIED Thuộc tính không xác định. Nếu máy chủ trả về mã này, thì ứng dụng sẽ bỏ qua hoàn toàn FullHashDetail đi kèm.
CANARY Cho biết không nên dùng NonprofitType để thực thi.
FRAME_ONLY Cho biết chỉ nên sử dụng trực tuyến đem lại để thực thi trên các khung.