A lightweight, open-source Chrome/Edge browser extension that prevents cheating during online exams by restricting browser behavior โ no backend required.
๐ Get Started ยท ๐ธ Screenshots ยท ๐ค Contribute ยท ๐ License
Online exams are broken.
With remote learning and digital assessments becoming the norm, cheating has never been easier:
- Students open answer tabs mid-exam without any detection
- Copy-paste from external sources takes seconds
- Right-click menus expose hidden copy/search options
- Institutions lose credibility; top performers are unfairly disadvantaged
- Expensive proctoring software is out of reach for small colleges and startups
๐ Studies show that ~73% of students admit to some form of cheating in online assessments. The gap between expensive enterprise proctoring tools and zero-protection quizzes is massive.
ExamShield fills that gap โ for free.
ExamShield is a free, open-source browser extension that transforms any standard browser into a focused, locked-down exam environment โ without requiring any server infrastructure, login system, or paid subscription.
It works silently in the background, enforcing exam discipline directly at the browser level. Student opens exam โ Activates ExamShield โ Browser locks down โ Exam runs clean โ
| Feature | Description |
|---|---|
| ๐ซ Tab Blocking | Prevents opening new tabs or switching away from the exam window |
| ๐ Copy-Paste Disabled | Blocks Ctrl+C, Ctrl+V, and clipboard access entirely |
| ๐ฑ๏ธ Right-Click Disabled | Removes the context menu to prevent search/copy shortcuts |
| โก Zero Latency | Runs 100% client-side โ no backend, no data collection |
| ๐ Cross-Browser | Works on Chrome and Edge (Manifest V3 compliant) |
| ๐ Lightweight | Under 50KB โ no bloat, no tracking, no nonsense |
| ๐ Plug & Play | No configuration needed โ load and go |
New tab shortcuts (Ctrl+T, Cmd+T) and link-based tab opens are intercepted and blocked.
If a student attempts to open a new tab, the action is silently suppressed โ keeping focus on the exam page.
// Blocks new tab creation at the Chrome extension level
chrome.tabs.onCreated.addListener((tab) => {
chrome.tabs.remove(tab.id);
});This covers: keyboard shortcuts, right-click โ open in new tab, and middle-click link opens.
All clipboard operations are disabled using DOM event listeners injected into the exam page:
Ctrl+C/Cmd+Cโ Copy blockedCtrl+V/Cmd+Vโ Paste blockedCtrl+X/Cmd+Xโ Cut blocked- Drag-and-drop text selection is also intercepted
This prevents students from copying questions into external AI tools or pasting in pre-written answers.
The browser's native context menu is suppressed entirely via the contextmenu event.
This removes quick-access options like:
- "Search Google for..."
- "Copy"
- "Inspect Element" (useful for advanced cheating attempts)
| Technology | Purpose |
|---|---|
| JavaScript (ES6+) | Core extension logic |
| HTML5 | Popup UI |
| CSS3 | Extension styling |
| Chrome Extensions API | Tab management, scripting, permissions |
| Manifest V3 | Modern extension standard (Chrome/Edge compatible) |
โ ๏ธ This extension is not yet on the Chrome Web Store. Load it manually using the steps below.
Step 1 โ Download the Extension
git clone https://github.com/YOUR_USERNAME/examshield.gitOr Download as ZIP and extract it.
Step 2 โ Open Chrome Extensions Page
Step 3 โ Enable Developer Mode
Toggle "Developer mode" in the top-right corner of the extensions page.
Step 4 โ Load the Extension
- Click "Load unpacked"
- Select the extracted
examshieldfolder - The ExamShield icon will appear in your browser toolbar โ
Step 5 โ Activate During Exam
- Open your exam/test URL
- Click the ExamShield icon in the toolbar
- Press "Enable Protection"
- The browser is now locked โ exam mode is active ๐
The same steps apply for Microsoft Edge (edge://extensions/). ExamShield is fully compatible with Chromium-based browsers.
๐ Replace placeholders below with actual screenshots.
Extension Popup (Active)
Tab Blocking in Action
Exam Mode Dashboard
Lock student browsers during remote midterms and finals. No need for expensive proctoring software โ deploy ExamShield as a lightweight alternative or supplementary layer.
Tech companies and HR teams running online coding assessments or aptitude tests can ensure candidates aren't Googling answers mid-test.
Integrate ExamShield instructions into your test-taking flow. Ask users to install and activate before beginning โ a zero-infrastructure integrity layer.
Students who want to practice under real exam conditions can activate ExamShield themselves to simulate a focused test environment.
We believe in honesty. ExamShield is a deterrent, not an absolute lock. Here's what it currently cannot prevent:
| Limitation | Why |
|---|---|
| ๐ฅ๏ธ Secondary device usage | Cannot detect phones or second monitors |
| ๐๏ธ Screen sharing to a helper | No video monitoring capability |
| ๐งฉ Other browsers | Only works on the browser it's installed in |
| ๐ ๏ธ Extension removal | A determined user can disable it before the exam |
| ๐ค AI tools on other devices | External ChatGPT usage is undetectable |
ExamShield works best when combined with human supervision, time limits, and question randomization.
We have big plans. Here's what's on the roadmap:
- ๐ค AI-Powered Proctoring โ Detect suspicious behavior patterns
- ๐๏ธ Face Detection โ Verify student presence via webcam (WebRTC + ML)
- ๐ธ Periodic Screenshots โ Capture exam screen at random intervals
- ๐ Tab Switch Detection โ Log and alert on window focus loss
- ๐ฅ๏ธ Full-Screen Enforcement โ Force exam into fullscreen mode
- ๐ Admin Dashboard โ View exam integrity reports per student
- ๐ Firefox Support โ Extend to Manifest V2/V3 Firefox builds
- ๐ LMS Integration โ Plugins for Moodle, Canvas, Google Classroom
Want to work on any of these? Open a PR!
Contributions are what make open source amazing. All contributions are welcome!
# 1. Fork the repo
# 2. Create your feature branch
git checkout -b feature/amazing-feature
# 3. Commit your changes
git commit -m "Add: amazing feature description"
# 4. Push to the branch
git push origin feature/amazing-feature
# 5. Open a Pull RequestPlease read CONTRIBUTING.md before submitting.
Open an Issue with steps to reproduce. We respond within 48 hours.
Distributed under the MIT License. See LICENSE for more information.