Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Gafam Detector
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Oncela
Gafam Detector
Commits
a363faaf
Commit
a363faaf
authored
Feb 26, 2018
by
Oncela
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace scan.js
parent
78bf10cc
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
37 deletions
+51
-37
scan.js
scan.js
+51
-37
No files found.
scan.js
View file @
a363faaf
//
Étape #2 : détecte les requêtes HTTP faites par les nom de domaines listés dans domain
s.js
//
détecte les requêtes HTTP faites par les nom de domaines listés dans domains.js et le envoie à tab
s.js
// Lorsque le navigateur reçoit une requête HTTP (depuis n'importe quelle URL et à partir de n'importe quel onglet),
// exécute la fonction d'analyse en lui passant en paramètre les détails de la requêtes
// L'analyse intervient avant que le navigateur ait répondu à la requête (false pour analyser après)
if
(
true
)
browser
.
webRequest
.
onBeforeRequest
.
addListener
(
scan
,
{
urls
:
[
"
<all_urls>
"
]});
else
browser
.
webRequest
.
onCompleted
.
addListener
(
scan
,
{
urls
:
[
"
<all_urls>
"
]});
// Lorsque le navigateur fait une requête HTTP (depuis n'importe quelle URL et à partir de n'importe quel onglet),
// exécute la fonction d'analyse en lui passant en paramètre les détails de la requête et de son header
browser
.
webRequest
.
onBeforeSendHeaders
.
addListener
(
scan
,
{
urls
:
[
"
<all_urls>
"
]
}
,
[
"
requestHeaders
"
]
);
// Analyse une requête
function
scan
(
request
)
{
// Si l
a requête a été faite depuis un onglet
if
(
request
.
tabId
!=
-
1
)
// Si l
'extention est active
if
(
extension
.
running
)
{
// Pour chaque nom de domaine listé dans domain.js
for
(
var
i
=
0
;
i
<
companies
.
length
;
i
++
)
// Recherche le referer et l'host de la requête
var
referer
=
0
;
var
host
=
0
;
for
(
var
header
of
request
.
requestHeaders
)
{
if
(
header
.
name
==
"
referer
"
)
referer
=
header
.
value
;
else
if
(
header
.
name
==
"
host
"
)
host
=
header
.
value
;
}
// Si la requête a été faite depuis un onglet et si elle a un referer et un host
if
(
request
.
tabId
!=
-
1
&&
referer
&&
host
)
{
for
(
var
j
=
0
;
j
<
companies
[
i
].
domains
.
length
;
j
++
)
// Commence la comparaison
var
keepScanning
=
true
;
// Pour chaque nom de domaine de chaque entreprise
for
(
var
i
=
0
;
i
<
companies
.
length
&&
keepScanning
==
true
;
i
++
)
{
// Isole le nom de domaine de l'URL d'où vient la requête
var
url
=
request
.
url
;
url
=
url
.
substr
(
url
.
indexOf
(
"
://
"
)
+
3
);
url
=
url
.
substr
(
0
,
url
.
indexOf
(
"
/
"
));
// Si le nom de domaine de la requête contient celui listé dans domain.js
if
(
url
.
indexOf
(
companies
[
i
].
domains
[
j
])
!=
-
1
)
for
(
var
j
=
0
;
j
<
companies
[
i
].
domains
.
length
&&
keepScanning
==
true
;
j
++
)
{
// Récupère l'identifiant de l'onglet d'où est partie la requête
var
id
=
request
.
tabId
;
// Prépare les information à afficher à l'utilisateur
var
info
=
{};
info
.
index
=
i
;
// Index de l'entreprise dont le nom de domaine correspond à celui de la requête
info
.
title
=
companies
[
i
].
title
;
// Nom de l'entreprise dont le nom de domaine correspond à celui de la requête
info
.
domain
=
companies
[
i
].
domains
[
j
];
// Nom de domaine correspondant à celui de la requête
info
.
url
=
request
.
url
;
// URL complète de la requête
info
.
content
=
request
.
type
;
// Type de ressource proposé (image, script, css...)
info
.
date
=
request
.
timeStamp
;
// Date de la requête
// Si l'host de la requête contient le nom de domaine
if
(
host
.
indexOf
(
companies
[
i
].
domains
[
j
])
!=
-
1
)
{
// Arrête l'analyse si le referer contient un des noms de domaine associés à l'entreprise
for
(
var
domain
of
companies
[
i
].
domains
)
{
if
(
referer
.
indexOf
(
domain
)
!=
-
1
)
{
var
keepScanning
=
false
;
break
;
}
}
// Prépare les information à afficher à l'utilisateur
var
info
=
{};
info
.
index
=
i
;
// Index de l'entreprise dont le nom de domaine correspond à celui de l'host la requête
info
.
title
=
companies
[
i
].
title
;
// Nom de l'entreprise
info
.
content
=
request
.
type
;
// Type de ressource demandée par la requête (image, script, css...)
info
.
url
=
request
.
url
;
// URL complète de la ressource demandée par la requête
info
.
date
=
request
.
timeStamp
;
// Date de la requête
// Passe les informations à l'objet chargé de les envoyer sur l'onglet correspondant, où elles seront affichées
tabs
.
update
(
id
,
info
);
// Arrête l'analyse
break
;
// Passe les informations à tabs.js
tabs
.
update
(
request
.
tabId
,
info
);
// Arrête l'analyse
keepScanning
=
false
;
break
;
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment