Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отследить открытие консоли разработчика (https://javascript.ru/forum/misc/73190-otsledit-otkrytie-konsoli-razrabotchika.html)

Malleys 28.03.2018 20:53

А ещё инструменты разработчика могут быть уже открыты, когда переходят на страницу.

Ключевое слово debugger позволяет приостановить выполнение скрипта в том месте, где оно находится.

В случае отсутствия инструментов разработчика, данное выражение не будет иметь никакого эффекта.

Неправильный способ:
<script>
	function isDevToolsOpen() {
		var now = performance.now();
		debugger;
		return performance.now() - now > 10;
	}
</script>
<input
	type="button"
	value="Is DevTools open?"
	onclick="document.querySelector('output').textContent = isDevToolsOpen();"
>
<output></output>
<style>body{font-size: 200%;}</style>


Этот вариант, конечно же, никуда не годный, возвратит isDevToolsOpen() значение true, и что дальше?

Я считаю, пусть пользователи открывают инструменты, а раз в приложении на сайте что-то сломалось, то пользователи сами могут понять, что это произошло из-за их действии...

Что касается безопасности, то об этом можно предупредить пользователей, раз так получилось...

Правильный способ:
var cssRuleHeader = `
	color: red;
	font: 500% sans-serif;
	text-shadow: 1px 1px 5px currentColor;
	filter: dropshadow(color = currentColor, offx = 1px, offy = 1px);
`;

var cssRuleText = `
	font: bold 150% sans-serif;
`;

setTimeout(console.log.bind(console, "%c☠☠☠ Осторожно!!! ☠☠☠", cssRuleHeader));
setTimeout(console.log.bind(console, "%cЭта функция браузера предназначена для разработчиков. Если кто-то сказал вам скопировать и вставить что-то сюда — это мошенники. Выполнив эти действия, вы предоставите им доступ к своему аккаунту!!!", cssRuleText));

j0hnik 28.03.2018 23:10

Malleys,
Хорошая шутеичка =)


Часовой пояс GMT +3, время: 14:35.