@samitouri / QOS-React-2 / commits / 52d8d3b2ff

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 }