/** * @param string $url * @param string $key * @return bool|null */ function localSearchUrl($url, $key) { $safeBrowsing = new SafeBrowsingClient($key); //Creating hashes by url $hashes = $safeBrowsing->getHashesByUrl($url); $localDbFile = 'hosts_prefixes.json'; if (!is_file($localDbFile)) { exit('File "' . $localDbFile . '" not found'); } $data = file_get_contents($localDbFile); $localHashPrefixes = json_decode($data, true); foreach ($hashes as $hash) { foreach ($localHashPrefixes as $shavar) { foreach ($shavar as $chunkNum => $chunk) { foreach ($chunk as $hashPrefix) { if ($hash['prefix'] === $hashPrefix) { //Found prefix in local DB echo '<div class="alert alert-info"> Префикс хеша найден в локальной БД. Ищем в списке опасных сайтов... </div>'; //Check full hash if ($safeBrowsing->searchUrl($url)) { return true; } } } } } } return false; }
<div class="container"> <div class="jumbotron"> <h2><span class="glyphicon glyphicon glyphicon-certificate"></span> Пример работы с Safe Browsing API Яндекса</h2> </div> <h3>Проверить адреса</h3> <?php try { $settings = (require_once '../settings.php'); if (!isset($settings["safebrowsing"]["key"]) || !$settings["safebrowsing"]["key"]) { throw new SafeBrowsingException('Empty Safe Browsing key'); } if (isset($_GET['url']) && $_GET['url']) { $url = $_GET['url']; $key = $settings["safebrowsing"]["key"]; $safeBrowsing = new SafeBrowsingClient($key); /** * Using "gethash" request */ if ($safeBrowsing->searchUrl($url)) { ?> <div class="alert alert-danger">Найден полный хеш для "<?php echo htmlentities($url); ?> " в списке опасных сайтов</div> <?php } else { ?> <div class="alert alert-success"><?php echo htmlentities($url); ?>
<link rel="stylesheet" href="//yandex.st/bootstrap/3.0.0/css/bootstrap.min.css"> <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet"> <link rel="stylesheet" href="/examples/Disk/css/style.css"> </head> <body> <div class="container"> <h3>Обновление локальной базы префиксов хешей вредоносных сайтов</h3> <?php try { $settings = (require_once '../settings.php'); if (!isset($settings["safebrowsing"]["key"]) || !$settings["safebrowsing"]["key"]) { throw new SafeBrowsingException('Empty Safe Browsing key'); } $key = $settings["safebrowsing"]["key"]; $safeBrowsing = new SafeBrowsingClient($key); $localDbFile = 'hosts_prefixes.json'; if (!is_file($localDbFile)) { exit('File "' . $localDbFile . '" not found'); } $data = file_get_contents($localDbFile); $localHashPrefixes = json_decode($data, true); /** * Example: */ //$savedChunks['ydx-malware-shavar'] = array( // 'added' => array( // 'min' => 1, // 'max' => 30000 // ), // 'removed' => array(
</head> <body> <div class="container"> <h3>Lookup API и Check Adult API</h3> <?php try { $settings = (require_once '../settings.php'); if (!isset($settings["safebrowsing"]["key"]) || !$settings["safebrowsing"]["key"]) { throw new SafeBrowsingException('Empty Safe Browsing key'); } if (isset($_GET['url']) && $_GET['url']) { $url = $_GET['url']; $key = $settings["safebrowsing"]["key"]; $safeBrowsing = new SafeBrowsingClient($key); /** * Using "lookup" request */ $result = $safeBrowsing->lookup($url); if ($result) { ?> <div class="alert alert-danger">Небезопасный адресс. Lookup ответ: "<?php echo $result; ?> "</div> <?php } else { ?> <div class="alert alert-success"><?php echo htmlentities($url);
public function testPrepareDownloadsRequestException() { $safeBrowsing = new SafeBrowsingClient(); $safeBrowsing->setMalwareShavars([]); $this->setExpectedException('Yandex\\SafeBrowsing\\SafeBrowsingException'); $safeBrowsing->getMalwaresData(); }
<link rel="stylesheet" href="//yandex.st/bootstrap/3.0.0/css/bootstrap.min.css"> <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet"> <link rel="stylesheet" href="/examples/Disk/css/style.css"> </head> <body> <div class="container"> <h3>Сохранение базы префиксов хешей вредоносных сайтов</h3> <?php try { $settings = (require_once '../settings.php'); if (!isset($settings["safebrowsing"]["key"]) || !$settings["safebrowsing"]["key"]) { throw new SafeBrowsingException('Empty Safe Browsing key'); } $key = $settings["safebrowsing"]["key"]; $safeBrowsing = new SafeBrowsingClient($key); //Get all shavars from Yandex Safe Browsing /** * Using "list" request */ $shavarsList = $safeBrowsing->getShavarsList(); ?> <p>Списки опасных сайтов:</p> <ul> <?php foreach ($shavarsList as $shavar) { ?> <li><?php echo $shavar; ?>