您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Block access to specific websites with password protection
当前为
- // ==UserScript==
- // @name Website Blocker with Password Protection
- // @namespace http://tampermonkey.net/
- // @version 1.2
- // @license MIT
- // @description Block access to specific websites with password protection
- // @match https://classroom.google.com/*
- // @match https://hac20.esp.k12.ar.us/*
- // @match https://www.youtube.com/*
- // @match https://docs.google.com/*
- // @match https://clever.discoveryeducation.com/*
- // @match https://www.desmos.com/*
- // @match https://chrome.google.com/webstore/detail/prodigy-hacking-extension/cddgplffojbmjffebkmngmmlhkkhfibp
- // @grant GM_setValue
- // @grant GM_getValue
- // ==/UserScript==
- (function() {
- 'use strict';
- const PASSWORDS = ["RedPeach9002!", "Charles17578!"]; // Set the passwords here
- const ERROR_PAGE = "https://example.com/error.html"; // Set the custom error page URL here
- const BLOCKED_URLS = [
- {
- url: "https://classroom.google.com/",
- message: "Enter the password to access Google Classroom"
- },
- {
- url: "https://hac20.esp.k12.ar.us/",
- message: "Enter the password to access Hac20"
- },
- {
- url: "https://www.youtube.com/",
- message: "Enter the password to access YouTube"
- },
- {
- url: "https://docs.google.com/",
- message: "Enter the password to access Google Docs"
- },
- {
- url: "https://clever.discoveryeducation.com/",
- message: "Enter the password to access Clever"
- },
- {
- url: "https://www.desmos.com/",
- message: "Enter the password to access Desmos"
- },
- {
- url: "https://chrome.google.com/webstore/detail/prodigy-hacking-extension/cddgplffojbmjffebkmngmmlhkkhfibp",
- message: "Enter the password to access Prodigy Hacks"
- }
- ];
- const PASSWORD_CACHE_TIME = 300 * 1000; // Password cache time in milliseconds (5 minutes)
- const currentPage = window.location.href;
- let isBlocked = false;
- let message = "";
- for (let i = 0; i < BLOCKED_URLS.length; i++) {
- const blockedUrl = BLOCKED_URLS[i];
- if (currentPage.startsWith(blockedUrl.url)) {
- isBlocked = true;
- message = blockedUrl.message;
- break;
- }
- }
- if (isBlocked) {
- const cachedPassword = GM_getValue("password_cache", {});
- if (currentPage in cachedPassword && (Date.now() - cachedPassword[currentPage].time) < PASSWORD_CACHE_TIME) {
- // Password is cached and not expired, continue to website
- return;
- }
- const password = prompt(message);
- if (!PASSWORDS.includes(password)) {
- // Redirect to custom error page with message
- window.location.href = ERROR_PAGE + "?message=Incorrect password";
- } else {
- // Cache the password for this page
- cachedPassword[currentPage] = {password: password, time: Date.now()};
- GM_setValue("password_cache", cachedPassword);
- }
- }
- })();