VulnCheckプラットフォームでは、APIとポータルの両方で共有されるトークンシステムを採用しています。この共有トークンシステムにより、同じトークンを使用してAPIとウェブポータルの両方を操作でき、両者を行き来することが可能です。また、トークンを一元管理できます。このガイドでは、トークンの作成と使用方法について説明します。
VulnCheckプラットフォームでAPIコールを開始するには、アカウントにトークンを発行する必要があります。以下の手順に従ってください:
30日間使用されなかったトークンは自動的に失効します。
VulnCheckでは、トークンを渡す方法が3つあります。
カスタムヘッダーとしてAuthorization: Bearer insert_token_here
を追加します。
curl --request GET \
--url https://api.vulncheck.com/v3/index/initial-access \
--header 'Accept: application/json' \
--header 'Authorization: Bearer insert_token_here'
client := &http.Client{}
var responseJSON interface{}
request, _ := http.NewRequest("GET", "https://api.vulncheck.com/v3/index/initial-access", nil)
request.Header.Set("Accept", "application/json")
request.Header.Set("Authorization", "Bearer " + "insert_token_here")
response, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
_ := json.NewDecoder(response.Body).Decode(responseJSON)
import requests
url = "https://api.vulncheck.com/v3/index/initial-access"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}"
}
params = {}
response = requests.get(url, headers=headers, params=params)
print(response.json())
APIトークンをGET/URLパラメータとして渡すことができ、ブラウザでのテストやエンドポイントの閲覧が容易になります。
curl --request GET \
--url https://api.vulncheck.com/v3/index/initial-access \
--header 'Accept: application/json' \
--url-query token=insert_token_here
client := &http.Client{}
var responseJSON interface{}
request, _ := http.NewRequest("GET", "https://api.vulncheck.com/v3/index/initial-access", nil)
request.Header.Set("Accept", "application/json")
params := url.Values{}
params.Add("token", "insert_token_here")
response, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
_ := json.NewDecoder(response.Body).Decode(responseJSON)
import requests
url = "https://api.vulncheck.com/v3/index/initial-access"
headers = {
"accept": "application/json"
}
params = {
"token": "insert_token_here"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
トークンはクッキーとして渡すことが可能です。これにより、APIへのアクセスをポータル経由で行い、トークンの完全な管理を提供できます。
curl --request GET \
--url https://api.vulncheck.com/v3/index/initial-access \
--header 'Accept: application/json' \
--cookie "token=insert_token_here"
client := &http.Client{}
var responseJSON interface{}
request, _ := http.NewRequest("GET", "https://api.vulncheck.com/v3/index/initial-access", nil)
request.Header.Set("Accept", "application/json")
request.AddCookie(&http.Cookie{
Name: "token",
Value: "insert_token_here",
})
response, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
_ := json.NewDecoder(response.Body).Decode(responseJSON)
import requests
url = "https://api.vulncheck.com/v3/index/initial-access"
headers = {
"accept": "application/json"
}
cookies = {
"token": "insert_token_here"
}
response = requests.get(url, headers=headers, cookies=cookies)
print(response.json())
VulnCheckは、APIと対話するためのCLIおよびSDKを提供しています。VC_TOKEN
環境変数を設定することで、CLIやSDKでトークンを使用できます。
package main
import (
"encoding/json"
"fmt"
"log"
"github.com/vulncheck-oss/sdk-go"
)
func main() {
client := sdk.Connect("https://api.vulncheck.com", "insert_token_here")
response, err := client.GetIndexInitialAccess(sdk.IndexQueryParameters{})
if err != nil {
panic(err)
}
response, err := client.GetIndexInitialAccess(sdk.IndexQueryParameters{})
if err != nil {
panic(err)
}
prettyJSON, err := json.MarshalIndent(response.Data, "", " ")
if err != nil {
log.Fatalf("Failed to generate JSON: %v", err)
return
}
fmt.Println(string(prettyJSON))
}
import vulncheck_sdk
configuration = vulncheck_sdk.Configuration(host="https://api.vulncheck.com/v3")
configuration.api_key["Bearer"] = "insert_token_here"
with vulncheck_sdk.ApiClient(configuration) as api_client:
indices_client = vulncheck_sdk.IndicesApi(api_client)
api_response = indices_client.index_initial_access_get()
print(api_response.data)
export VC_TOKEN=insert_token_here
vulncheck index browse initial-access