AdguardTeam / AdguardTeam/Scriptlets

Add "prevent-console-hijack(ing)" scriptlet?

Abierto
#167 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Feature request Priority: P4
Lenguaje dominante
JavaScript
Estrellas
195
Forks
33
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

#### Hello,
 
A lot of websites like [TF1.fr](https://github.com/AdguardTeam/AdguardFilters/pull/102134) hijack `window.console` — allowing them, if necessary, to send the results of `console.error`, etc. to their servers.

#### This forced me to create this userscript in Tampermonkey because of my many uses of `console.xxx` during my tests:

```javascript
// ==UserScript==
// @name Force keeping native window.console on different websites
// @namespace http://tampermonkey.net/
// @version 0.3
// @description Force keeping native window.console on different websites (currently: various catch-up TV websites).
// @author Contribucious
// @match http*://*.6play.fr/*
// @match http*://*.rtlplay.be/*
// @match http*://*.tf1.fr/*
// @run-at document-start
// ==/UserScript==

(function() {
'use strict';

// Based on: https://humanwhocodes.com/blog/2014/04/22/creating-defensive-objects-with-es6-proxies/

// Function(s)
function createDefensiveObject(target, wanted) {
return new Proxy(target, {
get(target, prop) {
if (prop in wanted) {
return wanted[prop];
}
}
});
}

// Main
unsafeWindow.console = createDefensiveObject(window.console, unsafeWindow.console);
})();

```
###### [`// @grant none`](https://www.tampermonkey.net/documentation.php#_grant) must not be present (i.e. sandbox required here for this to work).
 

:arrow_right: What about adding an equivalent in **AdGuard**, to be added [here](https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#debug-scriptlets) afterwards, as:
- `example.org#%#//scriptlet('prevent-console-hijack')` or
- `example.org#%#//scriptlet('prevent-console-hijacking')`,

… to keep a name similar to `prevent-window-open` and others? 🙂

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.