Detecting tor browser

This commit is contained in:
z0ccc 2021-09-08 19:16:17 -04:00
parent 5aa08c53c3
commit e7d44b099d
4 changed files with 62 additions and 21 deletions

View file

@ -0,0 +1,46 @@
/* eslint-disable no-unused-vars */
import { useState, useEffect } from 'react';
import Bowser from 'bowser';
import ScanBlock from './ScanBlock';
import Table from './Table';
import {
checkNavigatorProperties,
checkWebWorker,
checkScreenProperties,
getBrowser,
} from './main';
const NavigatorBlock = () => {
const [firstRender, setfirstRender] = useState(true);
const [workerData, setWorkerData] = useState('');
const [userAgent, setUserAgent] = useState();
useEffect(() => {
checkWebWorker('userAgent', setWorkerData);
}, []);
useEffect(() => {
if (!workerData) {
setUserAgent(Bowser.parse(navigator.userAgent));
} else {
setUserAgent(Bowser.parse(workerData));
}
}, [workerData]);
return (
<ScanBlock>
<h1>Data</h1>
{userAgent && (
<div className="boxWrap">
{getBrowser(userAgent.browser.name)} {userAgent.browser.version}
</div>
)}
<p>
<b>Explanation:</b> JavaScript can be used to find information about
your hardware. This information can be used to create a fingerprint.
</p>
</ScanBlock>
);
};
export default NavigatorBlock;

View file

@ -1,4 +1,5 @@
/* eslint-disable no-unused-vars */ /* eslint-disable no-unused-vars */
import DataBlock from './DataBlock';
import NavigatorBlock from './NavigatorBlock'; import NavigatorBlock from './NavigatorBlock';
import ScreenBlock from './ScreenBlock'; import ScreenBlock from './ScreenBlock';
import FingerprintBlock from './FingerprintBlock'; import FingerprintBlock from './FingerprintBlock';
@ -11,6 +12,7 @@ import FiltersBlock from './FiltersBlock';
const ScanBlocks = () => ( const ScanBlocks = () => (
<> <>
<DataBlock />
<ScreenBlock /> <ScreenBlock />
<NavigatorBlock /> <NavigatorBlock />
{/* <LocationBlock /> {/* <LocationBlock />

View file

@ -34,7 +34,9 @@ const TableRow = ({ item }) => {
{ele} {ele}
</div> </div>
))} ))}
<div className="newline">{workerData}</div> <div className="newline">
{workerData && <>{`Did not match web worker (${workerData})`}</>}
</div>
</td> </td>
</tr> </tr>
); );

View file

@ -1,11 +1,14 @@
/* eslint-disable no-unused-vars */ /* eslint-disable no-unused-vars */
/* eslint-disable dot-notation */ /* eslint-disable dot-notation */
// import Bowser from 'bowser';
export { export {
getNavigator, getNavigator,
checkNavigatorProperties, checkNavigatorProperties,
checkWebWorker, checkWebWorker,
getScreen, getScreen,
checkScreenProperties, checkScreenProperties,
getBrowser,
}; };
const getDeviceMemory = () => ({ const getDeviceMemory = () => ({
@ -344,25 +347,6 @@ const checkScreenPrototype = (key) => {
return null; return null;
}; };
// const checkWindowProperties = (key) => {
// const list = [];
// if (
// Object.getOwnPropertyDescriptor(Window.prototype, key).value !== undefined
// ) {
// list.push('Failed descriptor.value undefined');
// }
// // try {
// // // eslint-disable-next-line no-unused-vars
// // const check = Window.prototype[key];
// // list.push('Failed Navigator.prototype');
// // } catch (err) {
// // // eslint-disable-next-line no-unused-vars
// // const check = '';
// // }
// return list.toString().split(',').join('<br />');
// };
const checkWidth = () => { const checkWidth = () => {
if (window.screen.availWidth > window.screen.width) { if (window.screen.availWidth > window.screen.width) {
return 'Avail width is wider then width'; return 'Avail width is wider then width';
@ -388,7 +372,14 @@ const checkWebWorker = (key, setWorkerData) => {
event.data !== undefined && event.data !== undefined &&
event.data.toString() !== navigator[key].toString() event.data.toString() !== navigator[key].toString()
) { ) {
setWorkerData(`Did not match web worker (${event.data.toString()})`); setWorkerData(event.data.toString());
} }
}; };
}; };
const getBrowser = (userAgent) => {
if (navigator.brave) {
return 'Brave';
}
return userAgent;
};