PHP使用安全浏览API检查网站网址

时间:2016-12-21 09:31:17

标签: php laravel codeigniter safe-browsing

我正在尝试使用Google安全浏览API检查网址是否安全

我遵循了以下教程

https://developers.google.com/safe-browsing/v4/get-started

我按照上面的网址指南完成了以下步骤

  1. 获取帐户
  2. 创建项目
  3. 设置API密钥
  4. 终于我结束了 https://safebrowsing.googleapis.com/v4/...?key=API_KEY

    我的问题是我如何将网站网址传递到上面的安全浏览网址

2 个答案:

答案 0 :(得分:2)

发布请求的请求正文如下所示:

{
    "client": {
      "clientId":      "yourcompanyname",
      "clientVersion": "1.5.2"
    },
    "threatInfo": {
      "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
      "platformTypes":    ["WINDOWS"],
      "threatEntryTypes": ["URL"],
      "threatEntries": [
        {"url": "http://www.urltocheck1.org/"},
        {"url": "http://www.urltocheck2.org/"},
        {"url": "http://www.urltocheck3.com/"}
      ]
    }
}

如您所见,您需要在threatEntries部分发送网址。但是您传递了Google网址(http://www.google.com),而是添加了您需要检查的网址。

其自我解释,请参阅:url to check1.org("http://www.urltocheck1.org/"

source

答案 1 :(得分:0)

完成以下步骤以启用API并获取API密钥:

  1. 打开Google Developers Console API Library.
  2. 从项目下拉列表中,选择一个项目或创建一个新项目。
  3. Google APIs 标签中,搜索并选择安全浏览API ,然后单击启用API
  4. 接下来,在左侧的边栏中选择凭据
  5. 选择创建凭据下拉菜单,然后选择 API密钥
  6. 根据您的应用程序,从“创建新密钥”弹出窗口中,选择浏览器密钥服务器密钥
  7. 输入密钥名称,设置可选的引荐来源网址或IP地址,然后单击创建。您的密钥已创建并显示在弹出窗口中。密钥也列在“凭据”页面上。

这是100%有效的cURL代码

curl -X POST \
  'https://safebrowsing.googleapis.com/v4/threatMatches:find?key=YOUR_KEY_HERE' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'postman-token: ec7ffd77-d3fa-f017-44f9-d895efaba258' \
  -d '  {
    "client": {
      "clientId":      "yourcompanyname",
      "clientVersion": "1.5.2"
    },
    "threatInfo": {
      "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
      "platformTypes":    ["WINDOWS"],
      "threatEntryTypes": ["URL"],
      "threatEntries": [
        {"url": "https://accounts-wallets.redirectme.net/webapps/57a39/websrc"},
        {"url": "http://stackoverflow.com/"}


      ]
    }
  }'

我得到了输出

{
    "matches": [
        {
            "threatType": "SOCIAL_ENGINEERING",
            "platformType": "WINDOWS",
            "threat": {
                "url": "https://accounts-wallets.redirectme.net/webapps/57a39/websrc"
            },
            "cacheDuration": "300s",
            "threatEntryType": "URL"
        }
    ]
}

Python示例

import requests

url = "https://safebrowsing.googleapis.com/v4/threatMatches:find"

querystring = {"key":"YOUR_KEY"}

payload = """

  {
    "client": {
      "clientId":      "yourcompanyname",
      "clientVersion": "1.5.2"
    },
    "threatInfo": {
      "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
      "platformTypes":    ["WINDOWS"],
      "threatEntryTypes": ["URL"],
      "threatEntries": [
        {"url": "https://accounts-wallets.redirectme.net/webapps/57a39/websrc"},
        {"url": "http://stackoverflow.com/"}


      ]
    }
  }

"""
headers = {
    'content-type': "application/json",
    'cache-control': "no-cache",
    'postman-token': "460d6d44-4a55-d6ab-fb58-2ff9fb306154"
    }

response = requests.request("POST", url, data=payload, headers=headers, params=querystring)

print(response.text)

PHP示例

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://safebrowsing.googleapis.com/v4/threatMatches:find?key=YOUR_KEY",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "  {
"client": {
  "clientId":      "yourcompanyname",
  "clientVersion": "1.5.2"
},
"threatInfo": {
  "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
  "platformTypes":    ["WINDOWS"],
  "threatEntryTypes": ["URL"],
  "threatEntries": [
    {"url": "https://accounts-wallets.redirectme.net/webapps/57a39/websrc"},
    {"url": "http://stackoverflow.com/"}


  ]
}
  }",
  CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache",
    "content-type: application/json",
    "postman-token: b05b8d34-85f2-49cf-0f8e-03686a71e4e9"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}