summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSheogorath2019-06-08 23:33:34 +0200
committerSheogorath2019-06-08 23:43:50 +0200
commitda4665c7590616dd3d17baf4488006dac98eeee4 (patch)
treeaf1c1e26f28d2f2df998c93d3f1a830175e24018
parent6462968e84e8d92292dd23764a9e558d7800147d (diff)
Respect DNT header
Do Not Track (DNT) is an old web standard in order to notify pages that the user doesn't want to be tracked. Even while a lot of pages either ignore this header or even worse, use it for tracking purposes, the orignal intention of this header is good and should be adopted. This patch implements a respect of the DNT header by no longer including the optional Google Analytics and disqus integrations when sending a DNT header. This should reduce outside resource usage and help to stay more private. This should later-on extended towards other document content (i.e. iframe based content). The reason to not change the CDN handling is that CDNs will be deprecated with next release and removed in long term. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
Diffstat (limited to '')
-rw-r--r--lib/response.js6
-rw-r--r--public/views/pretty.ejs2
-rw-r--r--public/views/shared/ga.ejs2
-rw-r--r--public/views/slide.ejs2
4 files changed, 7 insertions, 5 deletions
diff --git a/lib/response.js b/lib/response.js
index dd33e42b..1313f9f4 100644
--- a/lib/response.js
+++ b/lib/response.js
@@ -226,7 +226,8 @@ function showPublishNote (req, res, next) {
robots: meta.robots || false, // default allow robots
GA: meta.GA,
disqus: meta.disqus,
- cspNonce: res.locals.nonce
+ cspNonce: res.locals.nonce,
+ dnt: req.headers.dnt
}
return renderPublish(data, res)
}).catch(function (err) {
@@ -608,7 +609,8 @@ function showPublishSlide (req, res, next) {
robots: meta.robots || false, // default allow robots
GA: meta.GA,
disqus: meta.disqus,
- cspNonce: res.locals.nonce
+ cspNonce: res.locals.nonce,
+ dnt: req.headers.dnt
}
return renderPublishSlide(data, res)
}).catch(function (err) {
diff --git a/public/views/pretty.ejs b/public/views/pretty.ejs
index 9604d422..1970ab2f 100644
--- a/public/views/pretty.ejs
+++ b/public/views/pretty.ejs
@@ -63,7 +63,7 @@
</div>
</div>
<div id="ui-toc-affix" class="ui-affix-toc ui-toc-dropdown unselectable hidden-print" data-spy="affix" style="display:none;"></div>
- <% if(typeof disqus !== 'undefined' && disqus) { %>
+ <% if(typeof disqus !== 'undefined' && disqus && !dnt) { %>
<div class="container-fluid" style="max-width: 758px; margin-bottom: 40px;">
<%- include shared/disqus %>
</div>
diff --git a/public/views/shared/ga.ejs b/public/views/shared/ga.ejs
index 27abb742..f6b807fb 100644
--- a/public/views/shared/ga.ejs
+++ b/public/views/shared/ga.ejs
@@ -1,4 +1,4 @@
-<% if(typeof GA !== 'undefined' && GA) { %>
+<% if(typeof GA !== 'undefined' && GA && !dnt) { %>
<script nonce="<%= cspNonce %>">
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
diff --git a/public/views/slide.ejs b/public/views/slide.ejs
index ff4be9e9..3331b85d 100644
--- a/public/views/slide.ejs
+++ b/public/views/slide.ejs
@@ -78,7 +78,7 @@
<% } %>
</small>
</div>
- <% if(typeof disqus !== 'undefined' && disqus) { %>
+ <% if(typeof disqus !== 'undefined' && disqus && !dnt) { %>
<div class="slides-disqus">
<%- include shared/disqus %>
</div>