Skip to content

Commit bd92aa8

Browse files
committed
first done
1 parent 2cbe8cf commit bd92aa8

File tree

7 files changed

+219
-0
lines changed

7 files changed

+219
-0
lines changed

.idea/.gitignore

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/secure-web.iml

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "secure-web",
3+
"version": "1.0.0",
4+
"description": "Introducing Secure-Web, your trusted companion for ensuring unparalleled security and privacy in your online endeavors. Our innovative package encompasses a suite of cutting-edge technologies designed to fortify your web presence against potential threats, including the prevention of user screenshot capture. With Secure-Web, you can confidently navigate the digital landscape knowing that your sensitive information remains shielded from prying eyes. Embrace peace of mind and elevate your online security with Secure-Web today.",
5+
"main": "secure-web.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"repository": {
10+
"type": "git",
11+
"url": "https://github.com/bmiit145/secure-web.git"
12+
},
13+
"keywords": [
14+
"secure-web",
15+
"noscreenshot",
16+
"prevent-screenshot"
17+
],
18+
"author": "Priyank Sutariya",
19+
"license": "ISC",
20+
"bugs": {
21+
"url": "https://github.com/bmiit145/secure-web/issues"
22+
},
23+
"homepage": "https://github.com/bmiit145/secure-web#readme"
24+
}

secure-web.js

+153
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
// here we will implement the function to prevent user to take screenshot of the web page
2+
function noScreenshot() {
3+
// Disable right click
4+
document.addEventListener('contextmenu', event => event.preventDefault());
5+
// Disable keyboard shortcuts
6+
document.addEventListener('keydown', event => {
7+
if (event.ctrlKey && (event.key === 'c' || event.key === 'u' || event.key === 'i' || event.key === 'j' || event.key === 'k' || event.key === 's') || (event.metaKey && (event.key === 'c' || event.key === 'u' || event.key === 'i' || event.key === 'j' || event.key === 'k' || event.key === 's'))) {
8+
event.preventDefault();
9+
}
10+
});
11+
// Disable inspect element
12+
document.addEventListener('keydown', event => {
13+
if ((event.ctrlKey && event.shiftKey && event.key === 'i') || (event.metaKey && event.shiftKey && event.key === 'i')) {
14+
event.preventDefault();
15+
}
16+
});
17+
// Disable print screen
18+
document.addEventListener('keydown', event => {
19+
if ((event.key === 'PrintScreen')) {
20+
event.preventDefault();
21+
}
22+
});
23+
// Disable screenshot
24+
document.addEventListener('keydown', event => {
25+
if ((event.ctrlKey && event.shiftKey && event.key === 's') || (event.ctrlKey && event.key === 's') || (event.metaKey && event.shiftKey && event.key === 's') || (event.metaKey && event.key === 's')) {
26+
event.preventDefault();
27+
}
28+
});
29+
// Disable screenshot
30+
document.addEventListener('keydown', event => {
31+
if ((event.ctrlKey && event.key === 's') || (event.metaKey && event.key === 's')) {
32+
event.preventDefault();
33+
}
34+
});
35+
// Disable screenshot
36+
document.addEventListener('keydown', event => {
37+
if (event.metaKey && event.shiftKey && event.key === 's') {
38+
event.preventDefault();
39+
}
40+
});
41+
// Disable screenshot
42+
document.addEventListener('keydown', event => {
43+
if (event.metaKey && event.key === 's') {
44+
event.preventDefault();
45+
}
46+
});
47+
// Disable screenshot
48+
document.addEventListener('keydown', event => {
49+
if (event.ctrlKey && event.shiftKey && event.key === 'i') {
50+
event.preventDefault();
51+
}
52+
});
53+
// Disable screenshot
54+
document.addEventListener('keydown', event => {
55+
if (event.metaKey && event.shiftKey && event.key === 'i') {
56+
event.preventDefault();
57+
}
58+
});
59+
// Disable screenshot
60+
document.addEventListener('keydown', event => {
61+
if (event.ctrlKey && event.key === 'i') {
62+
event.preventDefault();
63+
}
64+
});
65+
// Disable screenshot
66+
document.addEventListener('keydown', event => {
67+
if (event.metaKey && event.key === 'i') {
68+
event.preventDefault();
69+
}
70+
});
71+
// Disable screenshot
72+
document.addEventListener('keydown', event => {
73+
if ((event.ctrlKey && event.shiftKey && event.key === 'j') || (event.ctrlKey && event.key === 'j') || (event.metaKey && event.shiftKey && event.key === 'j') || (event.metaKey && event.key === 'j') || (event.ctrlKey && event.shiftKey && event.key === 'k') || (event.ctrlKey && event.key === 'k') || (event.metaKey && event.shiftKey && event.key === 'k') || (event.metaKey && event.key === 'k')) {
74+
event.preventDefault();
75+
}
76+
});
77+
78+
// disable screenshot for mac users
79+
document.addEventListener('keydown', event => {
80+
if ((event.metaKey && event.shiftKey && event.key === 'j') || (event.metaKey && event.shiftKey && event.key === '4')) {
81+
event.preventDefault();
82+
alert('Screenshot is disabled');
83+
}
84+
85+
if (event.metaKey && event.key === '$') {
86+
event.preventDefault(); // Prevent the default action
87+
}
88+
89+
});
90+
document.addEventListener('keydown', event => {
91+
if (event.metaKey && event.shiftKey && event.key === 'k') {
92+
event.preventDefault();
93+
}
94+
});
95+
// disable all function key
96+
document.addEventListener('keydown', event => {
97+
if (event.key === 'F1' || event.key === 'F2' || event.key === 'F3' || event.key === 'F5' || event.key === 'F6' || event.key === 'F7' || event.key === 'F8' || event.key === 'F9' || event.key === 'F10' || event.key === 'F11' || event.key === 'F12') {
98+
event.preventDefault();
99+
}
100+
});
101+
102+
document.addEventListener('keydown', event => {
103+
if (event.ctrlKey && event.key === 'F4') {
104+
event.preventDefault();
105+
}
106+
});
107+
108+
document.addEventListener('keydown', event => {
109+
if (event.ctrlKey || event.metaKey) {
110+
overlayScreen();
111+
}
112+
});
113+
}
114+
115+
function overlayScreen() {
116+
const overlay = document.createElement('div');
117+
overlay.style.position = 'fixed';
118+
overlay.style.top = '0';
119+
overlay.style.left = '0';
120+
overlay.style.width = '100%';
121+
overlay.style.height = '100%';
122+
overlay.style.background = 'rgba(255, 255, 255, 1)'; // semi-transparent white background
123+
overlay.style.zIndex = '9999';
124+
overlay.style.display = 'flex';
125+
overlay.style.alignItems = 'center';
126+
overlay.style.justifyContent = 'center';
127+
128+
const message = document.createElement('div');
129+
message.textContent = 'Press Esc to close. Screenshots are disabled.';
130+
message.style.fontSize = '24px';
131+
message.style.color = 'black'; // You can adjust the color as needed
132+
message.style.padding = '20px'; // Add padding to the message
133+
message.style.background = 'rgba(255, 255, 255, 0.9)'; // semi-transparent white background for message
134+
message.style.borderRadius = '10px'; // Rounded corners for the message box
135+
message.style.boxShadow = '0px 0px 10px rgba(0, 0, 0, 0.5)'; // Drop shadow for the message box
136+
137+
overlay.appendChild(message);
138+
document.body.appendChild(overlay);
139+
140+
// Disable pointer events on body while the overlay is active
141+
document.body.style.pointerEvents = 'none';
142+
143+
document.addEventListener('keydown', escListener);
144+
145+
function escListener(event) {
146+
if (event.key === 'Escape') {
147+
document.body.removeChild(overlay);
148+
document.body.style.pointerEvents = 'auto'; // Re-enable pointer events on body
149+
document.removeEventListener('keydown', escListener);
150+
}
151+
}
152+
}
153+
module.exports = noScreenshot;

secure-web.js.css

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@media print {
2+
body {
3+
display: none;
4+
}
5+
html {
6+
display: none;
7+
}
8+
}

0 commit comments

Comments
 (0)