The Site Reputation SDK enables you to warn or guard your users from accessing low reputation websites. The getSiteReputation function of the SDK returns a SiteReputation structure with attributes you can use to form a decision on whether to block access to a site or display a warning to your users.
// const client = new SudoSiteReputationClient({...})
import {
SiteReputation
} from '@sudoplatform/sudo-site-reputation'
let siteReputation: SiteReputation
try {
siteReputation = client.getSiteReputation('https://sudoplatform.com')
console.log(siteReputation.reputationStatus)
} catch (error) {
// implement error handling
}
var client: SudoSiteReputationClient!
let uri = "http://www.wikipedia.com"
let result = try await instance.getSiteReputation(url: uri)
switch result.status {
case .notMalicious:
break
case .malicious:
break
case .unkown:
break
}
// val client: SudoSiteReputationClient
launch {
try {
val siteReputation = withContext(Dispatchers.IO) {
client.getSiteReputation(
url = "http://somedodgyhost.com/somewhere"
)
}
if (badSite.status == SudoSiteReputation.MaliciousState.MALICIOUS) {
System.out.println("This page is bad mkay")
}
} catch (e: SudoSiteReputationException) {
// Handle/notify user of exception
}
}
SiteReputation Interface
/**
* The state of knowledge of a site's reputation.
*/
export type ReputationStatus = 'NOTMALICIOUS' | 'MALICIOUS' | 'UNKNOWN'
/**
* The response of a given url's site reputation.
*/
export interface SiteReputation {
/** Returns `MALICIOUS` if malicious, `NOTMALICIOUS` if not, and `UNKNOWN` if unable to be determined. */
reputationStatus: ReputationStatus
}
public struct SiteReputation {
/// Search status
public enum ReputationStatus {
// URI not in dataset as not malicious
case notMalicious
// URI found in dataset as malicious
case malicious
// URI not found in the dataset
case unkown
}
/// The returned result of the lookup for the site. If .success you can expect the other properties to be non nil.
public let status: ReputationStatus
}
public data class SiteReputation(
/** status of the search */
val status: ReputationStatus,
) : Parcelable {
enum class ReputationStatus {
/** site is to be malicious */
MALICIOUS,
/** site is not known to be malicious */
NOTMALICIOUS,
/** no site data available to make a determination */
UNKNOWN
}
}