Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJohann-S <johann.servoire@gmail.com>2018-05-30 10:41:05 +0300
committerJohann-S <johann.servoire@gmail.com>2018-06-01 10:10:25 +0300
commit2d90d369bbc2bd2647620246c55cec8c4705e3d0 (patch)
treed9df023eca32b14b44443096990473d96dd4b5d1 /js
parente3084c3842809ca83aaaba7c8f53ea2b0ffabe0a (diff)
fix(tooltip): xss in container option
Diffstat (limited to 'js')
-rw-r--r--js/src/tooltip.js2
-rw-r--r--js/tests/visual/tooltip.html53
2 files changed, 34 insertions, 21 deletions
diff --git a/js/src/tooltip.js b/js/src/tooltip.js
index ed10057ed0..3d4e93f2b8 100644
--- a/js/src/tooltip.js
+++ b/js/src/tooltip.js
@@ -273,7 +273,7 @@ const Tooltip = (($) => {
const attachment = this._getAttachment(placement)
this.addAttachmentClass(attachment)
- const container = this.config.container === false ? document.body : $(this.config.container)
+ const container = this.config.container === false ? document.body : $(document).find(this.config.container)
$(tip).data(this.constructor.DATA_KEY, this)
diff --git a/js/tests/visual/tooltip.html b/js/tests/visual/tooltip.html
index 91713044ab..d81b018cc5 100644
--- a/js/tests/visual/tooltip.html
+++ b/js/tests/visual/tooltip.html
@@ -27,27 +27,40 @@
<hr>
- <p>
- <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="auto" title="Tooltip on auto">
- Tooltip on auto
- </button>
- <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
- Tooltip on top
- </button>
- <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
- Tooltip on right
- </button>
- <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">
- Tooltip on bottom
- </button>
- <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left">
- Tooltip on left
- </button>
- <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
- Tooltip with HTML
- </button>
- </p>
+ <div class="row">
+ <p>
+ <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="auto" title="Tooltip on auto">
+ Tooltip on auto
+ </button>
+ <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
+ Tooltip on top
+ </button>
+ <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
+ Tooltip on right
+ </button>
+ <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">
+ Tooltip on bottom
+ </button>
+ <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left">
+ Tooltip on left
+ </button>
+ </p>
+ </div>
+ <div class="row">
+ <p>
+ <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip with XSS" data-container="<img src=1 onerror=alert(123) />">
+ Tooltip with XSS
+ </button>
+ <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip with container" data-container="#customContainer">
+ Tooltip with container
+ </button>
+ <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
+ Tooltip with HTML
+ </button>
+ </p>
+ </div>
<div id="target" title="Test tooltip on transformed element"></div>
+ <div id="customContainer"></div>
</div>
<script src="../../../assets/js/vendor/jquery-slim.min.js"></script>