Adds checking for Blocklists

This commit is contained in:
Alicia Sykes 2023-08-18 16:20:16 +01:00
parent 6b8c50a9aa
commit 519d2f0f79
5 changed files with 39 additions and 1 deletions

View File

@ -99,7 +99,7 @@ exports.handler = middleware(async (url) => {
const results = await checkDomainAgainstDnsServers(domain);
return {
statusCode: 200,
body: JSON.stringify(results)
body: JSON.stringify({ blocklists: results })
};
});

View File

@ -0,0 +1,19 @@
import { Card } from 'components/Form/Card';
import Row from 'components/Form/Row';
const BlockListsCard = (props: {data: any, title: string, actionButtons: any }): JSX.Element => {
const blockLists = props.data.blocklists;
return (
<Card heading={props.title} actionButtons={props.actionButtons}>
{ blockLists.map((blocklist: any) => (
<Row
title={blocklist.serverIp}
lbl={blocklist.server}
val={blocklist.isBlocked ? '❌ Blocked' : '✅ Not Blocked'} />
))}
</Card>
);
}
export default BlockListsCard;

View File

@ -217,6 +217,7 @@ const jobNames = [
'http-security',
'rank',
'archives',
'block-lists',
] as const;
export const initialJobs = jobNames.map((job: string) => {

View File

@ -52,6 +52,7 @@ import HttpSecurityCard from 'components/Results/HttpSecurity';
import FirewallCard from 'components/Results/Firewall';
import ArchivesCard from 'components/Results/Archives';
import RankCard from 'components/Results/Rank';
import BlockListsCard from 'components/Results/BlockLists';
import keys from 'utils/get-keys';
import { determineAddressType, AddressType } from 'utils/address-type-checker';
@ -439,6 +440,14 @@ const Results = (): JSX.Element => {
fetchRequest: () => fetch(`${api}/rank?url=${address}`).then(res => parseJson(res)),
});
// Check site against DNS blocklists
const [blockListsResults, updateBlockListsResults] = useMotherHook({
jobId: 'block-lists',
updateLoadingJobs,
addressInfo: { address, addressType, expectedAddressTypes: urlTypeOnly },
fetchRequest: () => fetch(`${api}/block-lists?url=${address}`).then(res => parseJson(res)),
});
/* Cancel remaining jobs after 10 second timeout */
useEffect(() => {
const checkJobs = () => {
@ -493,6 +502,7 @@ const Results = (): JSX.Element => {
{ id: 'dns-server', title: 'DNS Server', result: dnsServerResults, Component: DnsServerCard, refresh: updateDnsServerResults },
{ id: 'linked-pages', title: 'Linked Pages', result: linkedPagesResults, Component: ContentLinksCard, refresh: updateLinkedPagesResults },
{ id: 'txt-records', title: 'TXT Records', result: txtRecordResults, Component: TxtRecordCard, refresh: updateTxtRecordResults },
{ id: 'block-lists', title: 'Block Lists', result: blockListsResults, Component: BlockListsCard, refresh: updateBlockListsResults },
{ id: 'features', title: 'Site Features', result: siteFeaturesResults, Component: SiteFeaturesCard, refresh: updateSiteFeaturesResults },
{ id: 'sitemap', title: 'Pages', result: sitemapResults, Component: SitemapCard, refresh: updateSitemapResults },
{ id: 'carbon', title: 'Carbon Footprint', result: carbonResults, Component: CarbonFootprintCard, refresh: updateCarbonResults },

View File

@ -462,6 +462,14 @@ const docs: Doc[] = [
],
screenshot: 'https://i.ibb.co/nkbczgb/Screenshot-from-2023-08-14-22-02-40.png',
},
{
id: 'block-lists',
title: 'Block Detection',
description: 'Checks access to the URL using 10+ of the most popular privacy, malware and parental control blocking DNS servers.',
use: '',
resources: [],
screenshot: '',
},
// {
// id: '',
// title: '',