Compare commits
7 Commits
contributo
...
contributo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3da8754a11 | ||
|
|
f233de9bca | ||
|
|
da0204c156 | ||
|
|
7ca22daa9a | ||
|
|
7ca8412cc9 | ||
|
|
bc6afa635c | ||
|
|
95469b971f |
75
.github/README.md
vendored
75
.github/README.md
vendored
@@ -1021,6 +1021,13 @@ Credit to the following users for contributing to Web-Check
|
||||
<sub><b>PhiRequiem</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/34bits">
|
||||
<img src="https://avatars.githubusercontent.com/u/108784453?v=4" width="80;" alt="34bits"/>
|
||||
<br />
|
||||
<sub><b>Nikolaos G. Ntaiko</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Myzel394">
|
||||
<img src="https://avatars.githubusercontent.com/u/50424412?v=4" width="80;" alt="Myzel394"/>
|
||||
@@ -1028,6 +1035,8 @@ Credit to the following users for contributing to Web-Check
|
||||
<sub><b>Myzel394</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/murrple-1">
|
||||
<img src="https://avatars.githubusercontent.com/u/5559656?v=4" width="80;" alt="murrple-1"/>
|
||||
@@ -1035,8 +1044,6 @@ Credit to the following users for contributing to Web-Check
|
||||
<sub><b>Murray Christopherson</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/t3chn0m4g3">
|
||||
<img src="https://avatars.githubusercontent.com/u/4318452?v=4" width="80;" alt="t3chn0m4g3"/>
|
||||
@@ -1072,6 +1079,8 @@ Credit to the following users for contributing to Web-Check
|
||||
<sub><b>Ed Preston</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/dimitri-kandassamy">
|
||||
<img src="https://avatars.githubusercontent.com/u/21193806?v=4" width="80;" alt="dimitri-kandassamy"/>
|
||||
@@ -1079,8 +1088,6 @@ Credit to the following users for contributing to Web-Check
|
||||
<sub><b>Dimitri Kandassamy</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/0xflotus">
|
||||
<img src="https://avatars.githubusercontent.com/u/26602940?v=4" width="80;" alt="0xflotus"/>
|
||||
@@ -1102,17 +1109,17 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/koconder">
|
||||
<img src="https://avatars.githubusercontent.com/u/25068?u=582657b23622aaa3dfe68bd028a780f272f456fa&v=4" width="80;" alt="koconder"/>
|
||||
<a href="https://github.com/vincentkoc">
|
||||
<img src="https://avatars.githubusercontent.com/u/25068?v=4" width="80;" alt="vincentkoc"/>
|
||||
<br />
|
||||
<sub><b>Vincent Koc</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/tbjers">
|
||||
<img src="https://avatars.githubusercontent.com/u/1117052?v=4" width="80;" alt="tbjers"/>
|
||||
<a href="https://github.com/pho3nixf1re">
|
||||
<img src="https://avatars.githubusercontent.com/u/96882?v=4" width="80;" alt="pho3nixf1re"/>
|
||||
<br />
|
||||
<sub><b>Torgny Bjers</b></sub>
|
||||
<sub><b>Matthew Turney</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
@@ -1173,6 +1180,13 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
|
||||
<sub><b>Brian McGonagill</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/arcestia">
|
||||
<img src="https://avatars.githubusercontent.com/u/7936962?v=4" width="80;" alt="arcestia"/>
|
||||
<br />
|
||||
<sub><b>Laurensius Jeffrey</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/vlad-tim">
|
||||
<img src="https://avatars.githubusercontent.com/u/11474041?u=eee43705b54d2ec9f51fc4fcce5ad18dd17c87e4&v=4" width="80;" alt="vlad-tim"/>
|
||||
@@ -1180,6 +1194,8 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
|
||||
<sub><b>Vlad</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/helixzz">
|
||||
<img src="https://avatars.githubusercontent.com/u/12218889?u=d06d0c103dfbdb99450623064f7da3c5a3675fb6&v=4" width="80;" alt="helixzz"/>
|
||||
@@ -1187,8 +1203,6 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
|
||||
<sub><b>HeliXZz</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/patvdv">
|
||||
<img src="https://avatars.githubusercontent.com/u/12430107?u=e8911c2fb91af4d30432f76da8c40927b2830bd7&v=4" width="80;" alt="patvdv"/>
|
||||
@@ -1217,13 +1231,6 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
|
||||
<sub><b>Forward Email - Open-source & Privacy-focused Email Service (2023)</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Bastii717">
|
||||
<img src="https://avatars.githubusercontent.com/u/53431819?u=604977bed6ad6875ada890d0d3765a4cacc2fa14&v=4" width="80;" alt="Bastii717"/>
|
||||
<br />
|
||||
<sub><b>Bastii717</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/getumbrel">
|
||||
<img src="https://avatars.githubusercontent.com/u/59408891?v=4" width="80;" alt="getumbrel"/>
|
||||
@@ -1233,6 +1240,13 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/OlliVHH">
|
||||
<img src="https://avatars.githubusercontent.com/u/84959562?v=4" width="80;" alt="OlliVHH"/>
|
||||
<br />
|
||||
<sub><b>HamburgerJung</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/frankdez93">
|
||||
<img src="https://avatars.githubusercontent.com/u/87549420?v=4" width="80;" alt="frankdez93"/>
|
||||
@@ -1247,6 +1261,13 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
|
||||
<sub><b>Terminal Trove</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/st617">
|
||||
<img src="https://avatars.githubusercontent.com/u/128325650?v=4" width="80;" alt="st617"/>
|
||||
<br />
|
||||
<sub><b>st617</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/nrvo">
|
||||
<img src="https://avatars.githubusercontent.com/u/151435968?u=e1dcb307fd0efdc45cddbe9490a7b956e4da6835&v=4" width="80;" alt="nrvo"/>
|
||||
@@ -1256,12 +1277,28 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/hudsonrock-partnerships">
|
||||
<img src="https://avatars.githubusercontent.com/u/163282900?v=4" width="80;" alt="hudsonrock-partnerships"/>
|
||||
<img src="https://avatars.githubusercontent.com/u/163282900?u=5f2667f7fe5d284ac7a2da6b0800ea8970b0fcbf&v=4" width="80;" alt="hudsonrock-partnerships"/>
|
||||
<br />
|
||||
<sub><b>hudsonrock-partnerships</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/adamt279">
|
||||
<img src="https://avatars.githubusercontent.com/u/173125775?v=4" width="80;" alt="adamt279"/>
|
||||
<br />
|
||||
<sub><b>adamt279</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/CarterPerez-dev">
|
||||
<img src="https://avatars.githubusercontent.com/u/188120068?v=4" width="80;" alt="CarterPerez-dev"/>
|
||||
<br />
|
||||
<sub><b>Carter Perez</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tbody>
|
||||
</table>
|
||||
<!-- readme: sponsors -end -->
|
||||
|
||||
@@ -8,6 +8,9 @@ const TIMEOUT = process.env.API_TIMEOUT_LIMIT ? parseInt(process.env.API_TIMEOUT
|
||||
// If present, set CORS allowed origins for responses
|
||||
const ALLOWED_ORIGINS = process.env.API_CORS_ORIGIN || '*';
|
||||
|
||||
// Disable everything :( Setting this env var will turn off the instance, and show message
|
||||
const DISABLE_EVERYTHING = !!process.env.VITE_DISABLE_EVERYTHING;
|
||||
|
||||
// Set the platform currently being used
|
||||
let PLATFORM = 'NETLIFY';
|
||||
if (process.env.PLATFORM) { PLATFORM = process.env.PLATFORM.toUpperCase(); }
|
||||
@@ -21,7 +24,6 @@ const headers = {
|
||||
'Content-Type': 'application/json;charset=UTF-8',
|
||||
};
|
||||
|
||||
|
||||
const timeoutErrorMsg = 'You can re-trigger this request, by clicking "Retry"\n'
|
||||
+ 'If you\'re running your own instance of Web Check, then you can '
|
||||
+ 'resolve this issue, by increasing the timeout limit in the '
|
||||
@@ -31,6 +33,14 @@ const timeoutErrorMsg = 'You can re-trigger this request, by clicking "Retry"\n'
|
||||
+ 'in order to keep running costs affordable, so that Web Check can '
|
||||
+ 'remain freely available for everyone.';
|
||||
|
||||
const disabledErrorMsg = 'Error - WebCheck Temporarily Disabled.\n\n'
|
||||
+ 'We\'re sorry, but due to the increased cost of running Web Check '
|
||||
+ 'we\'ve had to temporatily disable the public instand. '
|
||||
+ 'We\'re activley looking for affordable ways to keep Web Check running, '
|
||||
+ 'while free to use for everybody.\n'
|
||||
+ 'In the meantime, since we\'ve made our code free and open source, '
|
||||
+ 'you can get Web Check running on your own system, by following the instructions in our GitHub repo';
|
||||
|
||||
// A middleware function used by all API routes on all platforms
|
||||
const commonMiddleware = (handler) => {
|
||||
|
||||
@@ -45,6 +55,11 @@ const commonMiddleware = (handler) => {
|
||||
|
||||
// Vercel
|
||||
const vercelHandler = async (request, response) => {
|
||||
|
||||
if (DISABLE_EVERYTHING) {
|
||||
response.status(503).json({ error: disabledErrorMsg });
|
||||
}
|
||||
|
||||
const queryParams = request.query || {};
|
||||
const rawUrl = queryParams.url;
|
||||
|
||||
@@ -83,6 +98,15 @@ const commonMiddleware = (handler) => {
|
||||
const queryParams = event.queryStringParameters || event.query || {};
|
||||
const rawUrl = queryParams.url;
|
||||
|
||||
if (DISABLE_EVERYTHING) {
|
||||
callback(null, {
|
||||
statusCode: 503,
|
||||
body: JSON.stringify({ error: 'Web-Check is temporarily disabled. Please try again later.' }),
|
||||
headers,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (!rawUrl) {
|
||||
callback(null, {
|
||||
statusCode: 500,
|
||||
|
||||
27
src/components/homepage/TempDisabled.astro
Normal file
27
src/components/homepage/TempDisabled.astro
Normal file
@@ -0,0 +1,27 @@
|
||||
<div class="banner">
|
||||
<p>
|
||||
⚠️ Web Check is temporarily disabled due to excess demand and associated costs.
|
||||
We apologize for any inconvenience and are working on a solution.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.banner {
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: var(--primary);
|
||||
color: var(--background);
|
||||
padding: 0.75rem 1rem;
|
||||
text-align: center;
|
||||
z-index: 1000;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.banner p {
|
||||
margin: 0;
|
||||
font-size: 0.95rem;
|
||||
line-height: 1.4;
|
||||
}
|
||||
</style>
|
||||
@@ -1,12 +1,15 @@
|
||||
---
|
||||
import BaseLayout from '@layouts/Base.astro';
|
||||
import HeroForm from '@components/homepage/HeroForm.astro';
|
||||
import TempDisabled from '@/components/homepage/TempDisabled.astro';
|
||||
import HomeBackground from '@/components/homepage/HomeBackground';
|
||||
import AboutSection from '@/components/homepage/AboutSection.astro';
|
||||
import Footer from '@components/scafold/Footer.astro';
|
||||
|
||||
const isBossServer = import.meta.env.BOSS_SERVER === true;
|
||||
|
||||
const disableEverything = import.meta.env.VITE_DISABLE_EVERYTHING === true;
|
||||
|
||||
// Redirect strait to /check or /check/:url if running as self-hosted instance
|
||||
if (!isBossServer) {
|
||||
const searchUrl = new URLSearchParams(new URL(Astro.request.url).search).get('url');
|
||||
@@ -20,6 +23,7 @@ if (!isBossServer) {
|
||||
<Fragment slot="head">
|
||||
{!isBossServer && (<meta http-equiv="refresh" content="0; url=/check" />)}
|
||||
</Fragment>
|
||||
{ disableEverything && <TempDisabled />}
|
||||
<main>
|
||||
<HeroForm />
|
||||
<AboutSection />
|
||||
|
||||
@@ -213,11 +213,11 @@ const resources = [
|
||||
searchLink: 'https://radar.cloudflare.com/domains/domain/{URL}',
|
||||
},
|
||||
{
|
||||
title: 'Mozilla Observatory',
|
||||
link: 'https://observatory.mozilla.org/',
|
||||
title: 'Mozilla HTTP Observatory',
|
||||
link: 'https://developer.mozilla.org/en-US/observatory',
|
||||
icon: 'https://i.ibb.co/hBWh9cj/logo-mozm-5e95c457fdd1.png',
|
||||
description: 'Assesses website security posture by analyzing various security headers and practices',
|
||||
searchLink: 'https://observatory.mozilla.org/analyze/{URL}',
|
||||
searchLink: 'https://developer.mozilla.org/en-US/observatory/analyze?host={URL}',
|
||||
},
|
||||
{
|
||||
title: 'AbuseIPDB',
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'react-toastify/dist/ReactToastify.css';
|
||||
|
||||
import type { LoadingState } from 'web-check-live/components/misc/ProgressBar';
|
||||
import type { AddressType } from 'web-check-live/utils/address-type-checker';
|
||||
import keys from 'web-check-live/utils/get-keys';
|
||||
|
||||
interface UseIpAddressProps<ResultType = any> {
|
||||
// Unique identifier for this job type
|
||||
@@ -37,6 +38,10 @@ const useMotherOfAllHooks = <ResultType = any>(params: UseIpAddressProps<ResultT
|
||||
// Fire off the HTTP fetch request, then set results and update loading / error state
|
||||
|
||||
const doTheFetch = () => {
|
||||
if (keys.disableEverything) {
|
||||
updateLoadingJobs(jobId, 'skipped', 'Web-Check is temporarily disabled. Please try again later.', reset);
|
||||
return Promise.resolve();
|
||||
}
|
||||
return fetchRequest()
|
||||
.then((res: any) => {
|
||||
if (!res) { // No response :(
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
const keys = {
|
||||
shodan: import.meta.env.REACT_APP_SHODAN_API_KEY || "default_value_if_not_set",
|
||||
whoApi: import.meta.env.REACT_APP_WHO_API_KEY || "default_value_if_not_set",
|
||||
disableEverything: import.meta.env.VITE_DISABLE_EVERYTHING === 'true',
|
||||
};
|
||||
// const keys = process && process.env ? {
|
||||
// shodan: process.env.REACT_APP_SHODAN_API_KEY,
|
||||
|
||||
Reference in New Issue
Block a user