지정된 접두사와 일치하는 전체 해시를 검색합니다.
이는 https://google.aip.dev/136에 정의된 맞춤 메서드입니다 (맞춤 메서드는 Google의 일반 API 개발 명명법 내에서 맞춤 이름이 있는 이 메서드를 의미하며 맞춤 HTTP 메서드 사용을 의미하지는 않음).
HTTP 요청
GET https://safebrowsing.googleapis.com/v5/hashes:search
URL은 gRPC 트랜스코딩 문법을 사용합니다.
쿼리 매개변수
| 매개변수 | |
|---|---|
hashPrefixes[] |
필수 항목입니다. 조회할 해시 접두사입니다. 클라이언트는 해시 접두사를 1,000개 이상 전송하면 안 됩니다(MUST NOT). 하지만 URL 처리 절차에 따라 클라이언트는 30개 이상의 해시 접두사를 전송할 필요가 없습니다(SHOULD NOT). 현재 각 해시 프리픽스는 정확히 4바이트여야 합니다. 이 제한은 향후 완화될 수 있습니다(MAY). base64 인코딩 문자열입니다. |
요청 본문
요청 본문은 비어 있어야 합니다.
응답 본문
위협 해시를 검색한 후 반환된 응답입니다.
아무것도 찾지 못한 경우 서버는 NOT_FOUND 상태 (HTTP 상태 코드 404)를 반환하는 대신 fullHashes 필드가 비어 있는 OK 상태 (HTTP 상태 코드 200)를 반환합니다.
V5의 새로운 기능: FullHash와 FullHashDetail가 분리되었습니다. 해시가 여러 위협 (예: 멀웨어와 소셜 엔지니어링 모두)이 있는 사이트를 나타내는 경우 V4에서와 같이 전체 해시를 두 번 전송할 필요가 없습니다. 또한 캐시 기간이 단일 cacheDuration 필드로 간소화되었습니다.
성공한 경우 응답 본문은 다음과 같은 구조의 데이터를 포함합니다.
| JSON 표현 |
|---|
{
"fullHashes": [
{
object ( |
| 필드 | |
|---|---|
fullHashes[] |
순서가 지정되지 않은 목록 찾은 전체 해시의 순서가 지정되지 않은 목록입니다. |
cacheDuration |
클라이언트 측 캐시 기간입니다. 클라이언트는 이 기간을 현재 시간에 추가하여 만료 시간을 결정해야 합니다(MUST). 그러면 응답에서 반환되는 전체 해시 수와 관계없이 요청에서 클라이언트가 쿼리한 모든 해시 프리픽스에 만료 시간이 적용됩니다. 서버가 특정 해시 프리픽스에 대해 전체 해시를 반환하지 않더라도 이 사실은 클라이언트가 캐시해야 합니다(MUST). 필드 중요: 클라이언트는 서버가 모든 응답에 동일한 캐시 기간을 반환한다고 가정해서는 안 됩니다(MUST NOT). 서버는 상황에 따라 응답별로 다른 캐시 기간을 선택할 수 있습니다(MAY). 소수점 아래가 최대 9자리까지이고 ' |
FullHash
하나 이상의 일치 항목으로 식별된 전체 해시입니다.
| JSON 표현 |
|---|
{
"fullHash": string,
"fullHashDetails": [
{
object ( |
| 필드 | |
|---|---|
fullHash |
일치하는 전체 해시입니다. SHA256 해시입니다. 길이는 정확히 32바이트입니다. base64 인코딩 문자열입니다. |
fullHashDetails[] |
순서가 지정되지 않은 목록 이 전체 해시와 관련된 세부정보를 식별하는 반복 필드입니다. |
FullHashDetail
일치하는 전체 해시에 관한 세부정보입니다.
향후 호환성에 관한 중요한 참고사항: 새로운 위협 유형과 위협 속성은 언제든지 서버에서 추가될 수 있으며 이러한 추가는 부 버전 변경으로 간주됩니다. Google의 정책에 따라 API에 마이너 버전 번호가 노출되지 않으므로(버전 관리 정책은 https://cloud.google.com/apis/design/versioning 참고) 클라이언트는 클라이언트에서 유효하지 않은 것으로 간주되는 ThreatType 열거형 값 또는 ThreatAttribute 열거형 값이 포함된 FullHashDetail 메시지를 수신할 준비가 되어 있어야 합니다(MUST). 따라서 모든 ThreatType 및 ThreatAttribute enum 값의 유효성을 확인하는 것은 클라이언트의 책임입니다. 값이 유효하지 않은 것으로 간주되면 클라이언트는 전체 FullHashDetail 메시지를 무시해야 합니다(MUST).
| JSON 표현 |
|---|
{ "threatType": enum ( |
| 필드 | |
|---|---|
threatType |
위협 유형입니다. 이 필드는 비어 있지 않습니다. |
attributes[] |
순서가 지정되지 않은 목록 전체 해시에 관한 추가 속성입니다. 비어 있을 수 있습니다. |
ThreatAttribute
위협의 속성입니다. 이러한 속성은 특정 위협에 추가 의미를 부여할 수 있지만 위협 유형에는 영향을 미치지 않습니다. 예를 들어 한 속성은 낮은 신뢰도를 지정하고 다른 속성은 높은 신뢰도를 지정할 수 있습니다. 향후 더 많은 속성이 추가될 수 있습니다.
| 열거형 | |
|---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
알 수 없는 속성입니다. 서버에서 이를 반환하면 클라이언트는 FullHashDetail을 완전히 무시해야 합니다. |
CANARY |
위협 유형을 시행에 사용해서는 안 됨을 나타냅니다. |
FRAME_ONLY |
threatType이 프레임에 대한 시행에만 사용되어야 함을 나타냅니다. |