1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-09-28 07:08:20 +00:00

Add rel="noopener noreferrer" to external links

Background:
https://medium.com/@jitbit/target-blank-the-most-underestimated-vulnerab
ility-ever-96e328301f4c#.hduwdbjlb
This commit is contained in:
Jermolene 2016-05-05 11:49:40 +01:00
parent 8a08eee4bd
commit 3a3754aebb
17 changed files with 22 additions and 16 deletions

View File

@ -42,7 +42,8 @@ exports.parse = function() {
attributes: { attributes: {
href: {type: "string", value: this.match[0]}, href: {type: "string", value: this.match[0]},
"class": {type: "string", value: "tc-tiddlylink-external"}, "class": {type: "string", value: "tc-tiddlylink-external"},
target: {type: "string", value: "_blank"} target: {type: "string", value: "_blank"},
rel: {type: "string", value: "noopener noreferrer"}
}, },
children: [{ children: [{
type: "text", text: this.match[0] type: "text", text: this.match[0]

View File

@ -106,6 +106,7 @@ exports.parseLink = function(source,pos) {
} }
node.attributes.href = {type: "string", value: URL}; node.attributes.href = {type: "string", value: URL};
node.attributes.target = {type: "string", value: "_blank"}; node.attributes.target = {type: "string", value: "_blank"};
node.attributes.rel = {type: "string", value: "noopener noreferrer"};
// Update the end position // Update the end position
node.end = closePos + 2; node.end = closePos + 2;
return node; return node;

View File

@ -40,7 +40,8 @@ exports.parse = function() {
attributes: { attributes: {
href: {type: "string", value: link}, href: {type: "string", value: link},
"class": {type: "string", value: "tc-tiddlylink-external"}, "class": {type: "string", value: "tc-tiddlylink-external"},
target: {type: "string", value: "_blank"} target: {type: "string", value: "_blank"},
rel: {type: "string", value: "noopener noreferrer"}
}, },
children: [{ children: [{
type: "text", text: text type: "text", text: text

View File

@ -34,6 +34,7 @@ DownloadSaver.prototype.save = function(text,method,callback,options) {
// Set up the link // Set up the link
var link = document.createElement("a"); var link = document.createElement("a");
link.setAttribute("target","_blank"); link.setAttribute("target","_blank");
link.setAttribute("rel","noopener noreferrer");
if(Blob !== undefined) { if(Blob !== undefined) {
var blob = new Blob([text], {type: "text/html"}); var blob = new Blob([text], {type: "text/html"});
link.setAttribute("href", URL.createObjectURL(blob)); link.setAttribute("href", URL.createObjectURL(blob));

View File

@ -102,6 +102,7 @@ Modal.prototype.display = function(title,options) {
var link = document.createElement("a"); var link = document.createElement("a");
link.setAttribute("href",tiddler.fields.help); link.setAttribute("href",tiddler.fields.help);
link.setAttribute("target","_blank"); link.setAttribute("target","_blank");
link.setAttribute("rel","noopener noreferrer");
link.appendChild(document.createTextNode("Help")); link.appendChild(document.createTextNode("Help"));
modalFooterHelp.appendChild(link); modalFooterHelp.appendChild(link);
modalFooterHelp.style.float = "left"; modalFooterHelp.style.float = "left";

View File

@ -3,4 +3,4 @@ tags: $:/tags/PageControls
caption: ~GitHub ribbon caption: ~GitHub ribbon
description: ~GitHub ribbon for tw5.com/dev description: ~GitHub ribbon for tw5.com/dev
<div class="github-fork-ribbon-wrapper right" style><div class="github-fork-ribbon" style="background-color:#DF4848;"><a href="https://github.com/Jermolene/TiddlyWiki5" target="_blank">Find me on ~GitHub</a></div></div> <div class="github-fork-ribbon-wrapper right" style><div class="github-fork-ribbon" style="background-color:#DF4848;"><a href="https://github.com/Jermolene/TiddlyWiki5" target="_blank" rel="noopener noreferrer">Find me on ~GitHub</a></div></div>

View File

@ -8,4 +8,4 @@ The "empty" edition of TiddlyWiki is a vanilla distribution, with no additional
The empty edition can be downloaded from: The empty edition can be downloaded from:
<a href="empty.html" target="_blank">empty.html</a> <a href="empty.html" target="_blank" rel="noopener noreferrer">empty.html</a>

View File

@ -8,4 +8,4 @@ The "full" edition of TiddlyWiki consists of all the available languages, themes
The full edition can be downloaded from: The full edition can be downloaded from:
<a href="editions/full/index.html" target="_blank">editions/full/index.html</a> <a href="editions/full/index.html" target="_blank" rel="noopener noreferrer">editions/full/index.html</a>

View File

@ -6,4 +6,4 @@ type: text/vnd.tiddlywiki
The ''Résumé Builder'' edition of TiddlyWiki gets you started with a simple way to create a professional resume that you can save to the web or print. The ''Résumé Builder'' edition of TiddlyWiki gets you started with a simple way to create a professional resume that you can save to the web or print.
<a href="editions/resumebuilder/index.html" target="_blank">editions/resumebuilder/index.html</a> <a href="editions/resumebuilder/index.html" target="_blank" rel="noopener noreferrer">editions/resumebuilder/index.html</a>

View File

@ -6,4 +6,4 @@ type: text/vnd.tiddlywiki
The ''Text-Slicer'' edition of TiddlyWiki contains tools to help advanced users slice long texts up into individual tiddlers. The ''Text-Slicer'' edition of TiddlyWiki contains tools to help advanced users slice long texts up into individual tiddlers.
<a href="editions/text-slicer/index.html" target="_blank">editions/text-slicer/index.html</a> <a href="editions/text-slicer/index.html" target="_blank" rel="noopener noreferrer">editions/text-slicer/index.html</a>

View File

@ -18,16 +18,16 @@ Use it to keep your [[to-do list|TaskManagementExample]], to plan an [[essay or
Unlike conventional online services, TiddlyWiki lets you choose where to keep your data, guaranteeing that in the decades to come you will still be able to use the notes you take today. Unlike conventional online services, TiddlyWiki lets you choose where to keep your data, guaranteeing that in the decades to come you will still be able to use the notes you take today.
<div style="font-size:0.7em;text-align:center;margin-top:3em;margin-bottom:3em;"> <div style="font-size:0.7em;text-align:center;margin-top:3em;margin-bottom:3em;">
<a href="http://groups.google.com/group/TiddlyWiki" class="tc-btn-big-green" style="background-color:#FF8C19;" target="_blank"> <a href="http://groups.google.com/group/TiddlyWiki" class="tc-btn-big-green" style="background-color:#FF8C19;" target="_blank" rel="noopener noreferrer">
{{$:/core/images/mail}} ~TiddlyWiki Mailing List {{$:/core/images/mail}} ~TiddlyWiki Mailing List
</a> </a>
<a href="http://www.youtube.com/c/JeremyRuston" class="tc-btn-big-green" style="background-color:#e52d27;" target="_blank"> <a href="http://www.youtube.com/c/JeremyRuston" class="tc-btn-big-green" style="background-color:#e52d27;" target="_blank" rel="noopener noreferrer">
{{$:/core/images/video}} ~TiddlyWiki on ~YouTube {{$:/core/images/video}} ~TiddlyWiki on ~YouTube
</a> </a>
<a href="https://twitter.com/TiddlyWiki" class="tc-btn-big-green" style="background-color:#5E9FCA;" target="_blank"> <a href="https://twitter.com/TiddlyWiki" class="tc-btn-big-green" style="background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer">
{{$:/core/images/twitter}} @~TiddlyWiki on Twitter {{$:/core/images/twitter}} @~TiddlyWiki on Twitter
</a> </a>
<a href="https://github.com/Jermolene/TiddlyWiki5" class="tc-btn-big-green" style="background-color:#444;" target="_blank"> <a href="https://github.com/Jermolene/TiddlyWiki5" class="tc-btn-big-green" style="background-color:#444;" target="_blank" rel="noopener noreferrer">
{{$:/core/images/github}} ~TiddlyWiki on ~GitHub {{$:/core/images/github}} ~TiddlyWiki on ~GitHub
</a> </a>
</div> </div>

View File

@ -3,7 +3,7 @@ tags: HelloThere
created: 201409040851 created: 201409040851
modified: 201409040851 modified: 201409040851
<a class="tc-float-right tc-bordered-image" href="http://classic.tiddlywiki.com/" target="_blank">[img width="200" [TiddlyWiki Classic.png]]</a> <a class="tc-float-right tc-bordered-image" href="http://classic.tiddlywiki.com/" target="_blank" rel="noopener noreferrer">[img width="200" [TiddlyWiki Classic.png]]</a>
The original [[Classic|TiddlyWikiClassic]] version of TiddlyWiki is still available at: The original [[Classic|TiddlyWikiClassic]] version of TiddlyWiki is still available at:

View File

@ -7,7 +7,7 @@ https://github.com/Jermolene/TiddlyWiki5/edit/master/editions/tw5.com/tiddlers/$
\end \end
\define innerMakeGitHubLink(linkText) \define innerMakeGitHubLink(linkText)
<$set name="githubLink" value={{$:/config/OriginalTiddlerPaths##$(draftOfTiddler)$}}> <$set name="githubLink" value={{$:/config/OriginalTiddlerPaths##$(draftOfTiddler)$}}>
<a href=<<makeGitHubLink>> class="tc-tiddlylink-external" target="_blank">$linkText$</a> <a href=<<makeGitHubLink>> class="tc-tiddlylink-external" target="_blank" rel="noopener noreferrer">$linkText$</a>
</$set> </$set>
\end \end
\define outerMakeGitHubLink(linkText) \define outerMakeGitHubLink(linkText)

View File

@ -13,7 +13,7 @@ https://github.com/Jermolene/TiddlyWiki5/blob/master/editions/tw5.com/tiddlers/$
\end \end
\define outerMakeGitHubLink() \define outerMakeGitHubLink()
<$set name="githubLink" value={{$:/config/OriginalTiddlerPaths##$(currentTiddler)$}}> <$set name="githubLink" value={{$:/config/OriginalTiddlerPaths##$(currentTiddler)$}}>
<a href=<<makeGitHubLink>> class="tc-tiddlylink-external" target="_blank"><$text text=<<makeGitHubLink>>/></a> <a href=<<makeGitHubLink>> class="tc-tiddlylink-external" target="_blank" rel="noopener noreferrer"><$text text=<<makeGitHubLink>>/></a>
</$set> </$set>
\end \end
<$list filter="[all[current]!is[system]!is[shadow]]"> <$list filter="[all[current]!is[system]!is[shadow]]">

View File

@ -36,7 +36,7 @@ tags: $:/tags/Macro
\define .link(_,to) <$link to="$to$">$_$</$link> \define .link(_,to) <$link to="$to$">$_$</$link>
\define .clink(_,to) <span class="doc-clink"><<.link """$_$""" "$to$">></span> \define .clink(_,to) <span class="doc-clink"><<.link """$_$""" "$to$">></span>
\define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/> \define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/>
\define .dlink-ex(_,to) <a href="$to$" class="tc-tiddlylink-external" target="_blank"><<.def "$_$">></a> \define .dlink-ex(_,to) <a href="$to$" class="tc-tiddlylink-external" target="_blank" rel="noopener noreferrer"><<.def "$_$">></a>
\define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/> \define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/>
\define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/> \define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/>
\define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> \define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/>

View File

@ -1,6 +1,6 @@
title: $:/plugins/tiddlywiki/powered-by-tiddlywiki/banner title: $:/plugins/tiddlywiki/powered-by-tiddlywiki/banner
tags: $:/tags/PageTemplate tags: $:/tags/PageTemplate
<a href="http://tiddlywiki.com" target="_blank"> <a href="http://tiddlywiki.com" target="_blank" rel="noopener noreferrer">
[img width="160px" class="tc-powered-by-tiddlywiki-banner" [$:/plugins/tiddlywiki/powered-by-tiddlywiki/powered-by-tiddlywiki.svg]] [img width="160px" class="tc-powered-by-tiddlywiki-banner" [$:/plugins/tiddlywiki/powered-by-tiddlywiki/powered-by-tiddlywiki.svg]]
</a> </a>

View File

@ -97,6 +97,7 @@ RailroadWidget.prototype.patchLinks = function(node) {
if(child.attributes["data-tw-external"]) { if(child.attributes["data-tw-external"]) {
// External links are straightforward // External links are straightforward
child.setAttribute("target","_blank"); child.setAttribute("target","_blank");
child.setAttribute("rel","noopener noreferrer");
} else { } else {
// Each internal link gets its own onclick handler, capturing its own copy of target // Each internal link gets its own onclick handler, capturing its own copy of target
(function(myTarget) { (function(myTarget) {