Skip to content

Commit c2259f8

Browse files
committed
inspect element done
1 parent d5d81c3 commit c2259f8

File tree

1 file changed

+87
-13
lines changed

1 file changed

+87
-13
lines changed

dist/secure-web.js

Lines changed: 87 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ function noScreenshot(options, overlayId) {
2020
ctrlOverlay = true,
2121
altOverlay = false,
2222
shiftOverlay = false,
23+
// new at 1.2.2
24+
clearConsole = true,
25+
clearSensitiveContent = [
26+
'body'
27+
],
2328
} = options;
2429

2530
if (disableRightClick) {
@@ -97,20 +102,54 @@ function noScreenshot(options, overlayId) {
97102
}
98103

99104
if (disableInspectElement) {
105+
106+
// Prevent certain keyboard shortcuts
100107
document.addEventListener('keydown', event => {
101-
if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.key === 'i') {
102-
event.preventDefault();
103-
}
104-
if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.key === 'c') {
105-
event.preventDefault();
106-
}
107-
if (event.keyCode === 123) {
108-
event.preventDefault();
108+
if ((event.ctrlKey && event.shiftKey && event.key === 'I') ||
109+
(event.metaKey && event.shiftKey && event.key === 'I') ||
110+
(event.ctrlKey && event.shiftKey && event.key === 'C') ||
111+
(event.metaKey && event.shiftKey && event.key === 'C') ||
112+
event.key === 'F12') {
113+
event.preventDefault();
109114
}
110-
});
111-
document.addEventListener('contextmenu', event => {
112-
event.preventDefault();
113-
});
115+
});
116+
117+
document.addEventListener('contextmenu', event => event.preventDefault());
118+
119+
// clear console every secound
120+
clearConsoleArea();
121+
122+
// detect if inspect element open
123+
(function () {
124+
let devtoolsOpen = false;
125+
126+
const detectDevTools = () => {
127+
const threshold = 160;
128+
const isDevToolsOpen = () => {
129+
// Detect if the developer tools are open by checking dimensions
130+
const widthDiff = window.outerWidth - window.innerWidth;
131+
const heightDiff = window.outerHeight - window.innerHeight;
132+
return widthDiff > threshold || heightDiff > threshold;
133+
};
134+
135+
if (isDevToolsOpen()) {
136+
if (!devtoolsOpen) {
137+
devtoolsOpen = true;
138+
alert('Developer tools are open!');
139+
console.warn('Developer tools are open!');
140+
overlayScreen(overlayId);
141+
clearSensitiveData(clearSensitiveContent);
142+
}
143+
} else {
144+
if (devtoolsOpen) {
145+
devtoolsOpen = false;
146+
HideOverlayScreen(overlayId);
147+
}
148+
}
149+
};
150+
// Run the check every second
151+
setInterval(detectDevTools, 1000);
152+
})();
114153
}
115154

116155
if (disablePrintScreen) {
@@ -179,7 +218,7 @@ function noScreenshot(options, overlayId) {
179218
}
180219
});
181220
}
182-
221+
183222
// Disable pointer events on body while the overlay is active
184223
// document.body.style.pointerEvents = 'none';
185224
document.body.style.pointerEvents = 'auto';
@@ -276,6 +315,41 @@ function HideOverlayScreen(overlayId) {
276315
//document.removeEventListener('keydown', escListener);
277316
}
278317

318+
319+
function clearConsoleArea(){
320+
var checkStatus;
321+
var element = document.createElement('any');
322+
element.__defineGetter__('id', function() {
323+
checkStatus = 'on';
324+
});
325+
326+
setInterval(function() {
327+
checkStatus = 'off';
328+
console.log(element);
329+
console.clear();
330+
}, 1000);
331+
}
332+
333+
334+
function clearSensitiveData(selector) {
335+
if (selector) {
336+
if (Array.isArray(selector)) {
337+
selector.forEach(sel => {
338+
const elements = document.querySelectorAll(sel);
339+
elements.forEach(el => el.innerHTML = '');
340+
});
341+
} else if (typeof selector === 'string') {
342+
const element = document.querySelector(selector);
343+
if (element) {
344+
element.innerHTML = '';
345+
}
346+
}
347+
} else {
348+
// Default clear body if no selector provided or if false
349+
document.body.innerHTML = '';
350+
}
351+
}
352+
279353
if (isNode) {
280354
module.exports = noScreenshot;
281355
}else{

0 commit comments

Comments
 (0)