Maison > Article > interface Web > javascript fermer la console
JavaScript Désactiver la console
Si vous êtes un développeur front-end, vous devez souvent utiliser la console du navigateur (Console) pour déboguer votre code. La console peut fournir de nombreuses informations utiles, telles que des messages d'erreur, des journaux, des analyses de performances, etc.
Cependant, dans un environnement de production, il peut être nécessaire de désactiver la console pour protéger votre code et votre application. De plus, la console peut divulguer des informations telles que des clés API, des données sensibles ou des cookies.
Dans cet article, nous expliquerons comment fermer la console, comment empêcher son apparition et quelques autres suggestions pratiques.
Tout d'abord, voyons comment désactiver la console à l'aide de code. Pendant que le navigateur vous permet d'ouvrir la console, vous pouvez la désactiver avec le code suivant :
// 如果控制台被打开则重定向 if (typeof console !== "undefined") { console.log("控制台被禁用"); console.clear(); window.location.href = "about:blank"; }
Le code ci-dessus surveille et désactive l'apparition de la console. Si la console est ouverte, elle sera redirigée vers une page vierge.
En plus de désactiver la console, vous pouvez également désactiver F12. La touche de raccourci F12 est l'option par défaut pour ouvrir la console. Dans la plupart des cas, les utilisateurs utiliseront cette touche de raccourci pour ouvrir la console.
Afin de désactiver la touche de raccourci, vous pouvez ajouter le code suivant dans votre fichier HTML :
<script> document.addEventListener("keydown", function(e) { // 禁用 F12 if (e.keyCode === 123) { console.log("F12 键被禁用"); e.preventDefault(); } }); </script>
Le code ci-dessus écoute la touche F12 et empêche le comportement par défaut de cette touche de raccourci.
Si votre application s'appuie sur la sortie du journal de la console, vous devez supprimer les instructions de console inutilisées, en particulier celles qui impriment des informations sensibles dans l'instruction de console.
Vous pouvez utiliser le code suivant pour supprimer l'instruction de sortie de la console :
// 删除 console.log() if (!window.console) window.console = {}; if (!window.console.log) window.console.log = function() {}; // 删除 console.warn() if (!window.console) window.console = {}; if (!window.console.warn) window.console.warn = function() {}; // 删除 console.error() if (!window.console) window.console = {}; if (!window.console.error) window.console.error = function() {};
Cela supprimera la sortie du journal de la console, mais vous pouvez toujours ouvrir la console par d'autres moyens. Cette solution n’est donc pas parfaite.
Vous pouvez également empêcher l'ouverture de la console en modifiant votre code JavaScript. Même si cette approche n’est pas parfaite, elle peut fonctionner dans certaines situations.
Voici l'exemple de code pour implémenter cette méthode :
var oldLogs = []; // 在页面加载时禁止控制台并覆盖 console.log() (function() { var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime); // 如果用户访问页面并且为 Chrome 浏览器,则禁用控制台 if (isChrome) { setInterval(function() { // 如果控制台被打开,则刷新页面 if((window.outerHeight - window.innerHeight) > 200){ window.location.reload(); } }, 1000); // 缓存先前的日志并覆盖 console.log() var oldLogs = []; if (!window.console) window.console = {}; if (!window.console.log) window.console.log = function() {}; if (!window.console.warn) window.console.warn = function() {}; if (!window.console.error) window.console.error = function() {}; window.console.log = function(log) { oldLogs.push(log); }; window.console.warn = function(log) { oldLogs.push(log); }; window.console.error = function(log) { oldLogs.push(log); }; } })();
Le code ci-dessus détectera si l'utilisateur utilise le navigateur Chrome pour accéder à la page. Si tel est le cas, désactivez la console et empêchez-la d'apparaître. De plus, il écrase la sortie du journal de la console et stocke les anciens journaux dans un tableau pour un rappel ultérieur.
Bien que cette méthode soit relativement sûre, elle peut ne pas fonctionner sur des navigateurs tels que Firefox ou Safari.
Conclusion
Fermer la console dans un environnement de production n'est pas une pratique courante, mais reste parfois nécessaire. La désactivation de la console protège votre code et vos applications contre les attaques telles que CSRF, XSS, DDoS, etc. Cependant, nous devons être prudents à ce sujet et prendre d'autres mesures pour protéger notre code et nos applications, comme utiliser des suites de sécurité et suivre les meilleures pratiques.
Enfin, que vous désactiviez la console ou non, vous pouvez améliorer la qualité du code et les performances des applications en l'utilisant judicieusement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!