Skip to content

Commit

Permalink
Fixing docs and unit tests to follow new requirements
Browse files Browse the repository at this point in the history
  • Loading branch information
seancrater committed Nov 12, 2018
1 parent 48734ea commit 8e34d42
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
10 changes: 5 additions & 5 deletions docs/rules/jsx-no-target-blank.md
Expand Up @@ -2,14 +2,14 @@

When creating a JSX element that has an `a` tag, it is often desired to have
the link open in a new tab using the `target='_blank'` attribute. Using this
attribute unaccompanied by `rel='noreferrer noopener'`, however, is a severe
security vulnerability ([see here for more details](https://mathiasbynens.github.io/rel-noopener))
This rules requires that you accompany `target='_blank'` attributes with `rel='noreferrer noopener'`.
attribute unaccompanied by `rel='noreferrer'`, however, is a severe
security vulnerability ([see here for more details](https://html.spec.whatwg.org/multipage/links.html#link-type-noopener))
This rules requires that you accompany `target='_blank'` attributes with `rel='noreferrer'`.

## Rule Details

This rule aims to prevent user generated links from creating security vulnerabilities by requiring
`rel='noreferrer noopener'` for external links, and optionally any dynamically generated links.
`rel='noreferrer'` for external links, and optionally any dynamically generated links.

## Rule Options
```json
Expand All @@ -35,7 +35,7 @@ The following patterns are **not** considered errors:

```jsx
var Hello = <p target='_blank'></p>
var Hello = <a target='_blank' rel='noopener noreferrer' href="http://example.com"></a>
var Hello = <a target='_blank' rel="noreferrer" href="http://example.com"></a>
var Hello = <a target='_blank' href="relative/path/in/the/host"></a>
var Hello = <a target='_blank' href="/absolute/path/in/the/host"></a>
var Hello = <a></a>
Expand Down
18 changes: 9 additions & 9 deletions tests/lib/rules/jsx-no-target-blank.js
Expand Up @@ -25,23 +25,23 @@ const parserOptions = {

const ruleTester = new RuleTester({parserOptions});
const defaultErrors = [{
message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
' see https://mathiasbynens.github.io/rel-noopener'
message: 'Using target="_blank" without rel="noreferrer" is a security risk:' +
' see https://html.spec.whatwg.org/multipage/links.html#link-type-noopener'
}];

ruleTester.run('jsx-no-target-blank', rule, {
valid: [
{code: '<a href="foobar"></a>'},
{code: '<a randomTag></a>'},
{code: '<a target />'},
{code: '<a href="foobar" target="_blank" rel="noopener noreferrer"></a>'},
{code: '<a target="_blank" {...spreadProps} rel="noopener noreferrer"></a>'},
{code: '<a {...spreadProps} target="_blank" rel="noopener noreferrer" href="http://example.com">s</a>'},
{code: '<a target="_blank" rel="noopener noreferrer" {...spreadProps}></a>'},
{code: '<a href="foobar" target="_blank" rel="noreferrer"></a>'},
{code: '<a target="_blank" {...spreadProps} rel="noreferrer"></a>'},
{code: '<a {...spreadProps} target="_blank" rel="noreferrer" href="http://example.com">s</a>'},
{code: '<a target="_blank" rel="noreferrer" {...spreadProps}></a>'},
{code: '<p target="_blank"></p>'},
{code: '<a href="foobar" target="_BLANK" rel="NOOPENER noreferrer"></a>'},
{code: '<a href="foobar" target="_BLANK" rel="NOREFERRER"></a>'},
{code: '<a target="_blank" rel={relValue}></a>'},
{code: '<a target={targetValue} rel="noopener noreferrer"></a>'},
{code: '<a target={targetValue} rel="noreferrer"></a>'},
{code: '<a target={targetValue} href="relative/path"></a>'},
{code: '<a target={targetValue} href="/absolute/path"></a>'},
{
Expand All @@ -56,7 +56,7 @@ ruleTester.run('jsx-no-target-blank', rule, {
code: '<a target="_blank" rel="" href="http://example.com"></a>',
errors: defaultErrors
}, {
code: '<a target="_blank" rel="noopenernoreferrer" href="http://example.com"></a>',
code: '<a target="_blank" rel="no referrer" href="http://example.com"></a>',
errors: defaultErrors
}, {
code: '<a target="_BLANK" href="http://example.com"></a>',
Expand Down

0 comments on commit 8e34d42

Please sign in to comment.