@@ -23,9 +23,93 @@ function App() {
23
23
) ;
24
24
const [ counterValue , setCounterValue ] = useState ( 0 ) ;
25
25
26
+ // useEffect(() => {
27
+ // // 마우스 메뉴 막기
28
+ // const handleContextMenu = (e) => {
29
+ // e.preventDefault();
30
+ // };
31
+ // const handleKeyDown = (e) => {
32
+ // if (
33
+ // // CMD + Alt + I (Chrome, Firefox, Safari)
34
+ // (e.metaKey && e.altKey && e.keyCode === 73) ||
35
+ // // CMD + Alt + J (Chrome)
36
+ // (e.metaKey && e.altKey && e.keyCode === 74) ||
37
+ // // CMD + Alt + C (Chrome)
38
+ // (e.metaKey && e.altKey && e.keyCode === 67) ||
39
+ // // CMD + Shift + C (Chrome)
40
+ // (e.metaKey && e.shiftKey && e.keyCode === 67) ||
41
+ // // Ctrl + Shift + I (Chrome, Firefox, Safari, Edge)
42
+ // (e.ctrlKey && e.shiftKey && e.keyCode === 73) ||
43
+ // // Ctrl + Shift + J (Chrome, Edge)
44
+ // (e.ctrlKey && e.shiftKey && e.keyCode === 74) ||
45
+ // // Ctrl + Shift + C (Chrome, Edge)
46
+ // (e.ctrlKey && e.shiftKey && e.keyCode === 67) ||
47
+ // // F12 (Chome, Firefox, Edge)
48
+ // e.keyCode === 123 ||
49
+ // // CMD + Alt + U, Ctrl + U (View source: Chrome, Firefox, Safari, Edge)
50
+ // (e.metaKey && e.altKey && e.keyCode === 85) ||
51
+ // (e.ctrlKey && e.keyCode === 85)
52
+ // ) {
53
+ // e.preventDefault();
54
+ // }
55
+ // };
56
+
57
+ // document.addEventListener("contextmenu", handleContextMenu);
58
+ // document.addEventListener("keydown", handleKeyDown);
59
+
60
+ // return () => {
61
+ // document.removeEventListener("contextmenu", handleContextMenu);
62
+ // document.removeEventListener("keydown", handleKeyDown);
63
+ // };
64
+ // }, []);
65
+
66
+ useEffect ( ( ) => {
67
+ // 개발자 도구 검사
68
+ const detectDevTool = ( allow ) => {
69
+ let a = false ;
70
+ if ( isNaN ( + allow ) ) allow = 100 ;
71
+ const start = + new Date ( ) ;
72
+ debugger ;
73
+ const end = + new Date ( ) ;
74
+ if ( isNaN ( start ) || isNaN ( end ) || end - start > allow ) {
75
+ alert ( "DEVTOOLS detected. all operations will be terminated." ) ;
76
+ window . location . href = "/" ;
77
+ }
78
+ } ;
79
+
80
+ if ( window . attachEvent ) {
81
+ if (
82
+ document . readyState === "complete" ||
83
+ document . readyState === "interactive"
84
+ ) {
85
+ detectDevTool ( ) ;
86
+ window . attachEvent ( "onresize" , detectDevTool ) ;
87
+ window . attachEvent ( "onmousemove" , detectDevTool ) ;
88
+ window . attachEvent ( "onfocus" , detectDevTool ) ;
89
+ window . attachEvent ( "onblur" , detectDevTool ) ;
90
+ } else {
91
+ setTimeout ( arguments . callee , 0 ) ;
92
+ }
93
+ } else {
94
+ window . addEventListener ( "load" , detectDevTool ) ;
95
+ window . addEventListener ( "resize" , detectDevTool ) ;
96
+ window . addEventListener ( "mousemove" , detectDevTool ) ;
97
+ window . addEventListener ( "focus" , detectDevTool ) ;
98
+ window . addEventListener ( "blur" , detectDevTool ) ;
99
+ }
100
+ } , [ ] ) ;
101
+
26
102
useEffect ( ( ) => {
27
103
fetchCounterValue ( ) ;
28
104
egg ( ) ;
105
+
106
+ window . addEventListener ( "devtoolschange" , ( event ) => {
107
+ if ( event . detail . isOpen ) {
108
+ console . log ( "Developer tools opened" ) ;
109
+ } else {
110
+ console . log ( "Developer tools closed" ) ;
111
+ }
112
+ } ) ;
29
113
} , [ ] ) ;
30
114
31
115
const fetchCounterValue = async ( ) => {
0 commit comments