Detecting tor browser
This commit is contained in:
parent
5aa08c53c3
commit
e7d44b099d
4 changed files with 62 additions and 21 deletions
46
frontend/src/components/DataBlock.js
Normal file
46
frontend/src/components/DataBlock.js
Normal 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;
|
||||||
|
|
@ -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 />
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue