SafeBrowsing
Protect your users against malware and phishing threats using Google Safe Browsing
🌟 Features
- Check multiple URLs asynchronously
- Check single URL asynchronously
- Check single URL synchronously
- Open URL in Safari only if it's safe
- UIApplication extension
📲 Installation
SafeBrowsing is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SafeBrowsing'
Carthage:
Or you can install it withgithub "alexruperez/SafeBrowsing"
Swift Package Manager:
Or install it withdependencies: [
.package(url: "https://github.com/alexruperez/SafeBrowsing.git", from: "0.1.0")
]
🛠 Configuration
Required configuration
Just enable Google Safe Browsing API and get your API key.
SafeBrowsing.apiKey = "YOUR_API_KEY_HERE"
Advanced optional configuration
You can easily customize threat types, platform types or threat entry types.
SafeBrowsing.clientId = "YOUR_CLIENT_ID" // By default your bundle identifier.
SafeBrowsing.clientVersion = "YOUR_CLIENT_VERSION" // By default your bundle short version.
SafeBrowsing.threatTypes = [.malware, .socialEngineering, .unwantedSoftware, .potenciallyHarmfulApplication]
SafeBrowsing.platformTypes = [.any]
SafeBrowsing.threatEntryTypes = [.url, .executable]
🐒 Usage
Check multiple URLs asynchronously:
SafeBrowsing.isSafe([anURL, anotherURL]) { isSafe, error in
// Your code here
}
Check single URL asynchronously:
SafeBrowsing.isSafe(anURL) { isSafe, error in
// Your code here
}
Check single URL synchronously:
Caution: Don't call it in main thread
if SafeBrowsing.isSafe(anURL) {
// Your code here
}
Open URL in Safari only if it's safe:
SafeBrowsing.safeOpen(anURL) { opened, error in
// Your code here
}
UIApplication extension
Yes, you can use SafeBrowsing with UIApplication, just like open(_:options:completionHandler:) method works.
You also have all isSafe(_:) methods available with this extension.
UIApplication.shared.safeOpen(anURL) { opened, error in
// Your code here
}
Testing Google Safe Browsing
let testingURL = URL(string: "http://malware.testing.google.test/testing/malware/")!
SafeBrowsing.isSafe(testingURL) { isSafe, error in
print(error.debugDescription)
}
❤️ Etc.
- Contributions are very welcome.
- Attribution is appreciated (let's spread the word!), but not mandatory.
👨💻 Authors
alexruperez, contact@alexruperez.com
👮♂️ License
SafeBrowsing is available under the MIT license. See the LICENSE file for more info.