Extracted "safe taint" in docs/homepage to align with best practice #4212
Bradley Spaulding committed
Sep 21, 2015 at 22:09 UTC
52d8d3b2ff7b0d50cc8f20a99e5707c11aeace0d
2 files changed
+10
-5
docs/_js/examples/markdown.js
+4
-3
@@ -6,6 +6,9 @@ var MarkdownEditor = React.createClass({
6
handleChange: function() {
7
this.setState({value: React.findDOMNode(this.refs.textarea).value});
8
},
9
+ rawMarkup: function() {
10
+ return { __html: marked(this.state.value, {sanitize: true}) };
11
+ },
12
render: function() {
13
return (
14
<div className="MarkdownEditor">
@@ -17,9 +20,7 @@ var MarkdownEditor = React.createClass({
20
<h3>Output</h3>
21
<div
22
className="content"
20
- dangerouslySetInnerHTML={{
21
- __html: marked(this.state.value, {sanitize: true})
22
- }}
23
+ dangerouslySetInnerHTML={this.rawMarkup()}
24
/>
25
</div>
26
);
docs/docs/tutorial.md
+6
-2
@@ -257,14 +257,18 @@ That's React protecting you from an [XSS attack](https://en.wikipedia.org/wiki/C
257
```javascript{4,10}
258
// tutorial7.js
259
var Comment = React.createClass({
260
- render: function() {
260
+ rawMarkup: function() {
261
var rawMarkup = marked(this.props.children.toString(), {sanitize: true});
262
+ return { __html: rawMarkup };
263
+ },
264
+
265
+ render: function() {
266
return (
267
<div className="comment">
268
<h2 className="commentAuthor">
269
{this.props.author}
270
</h2>
267
- <span dangerouslySetInnerHTML={{"{{"}}__html: rawMarkup}} />
271
+ <span dangerouslySetInnerHTML={this.rawMarkup()} />
272
</div>
273
);
274
}