src/content/docs/linter/rules/no-script-url.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="HTML" icon="seti:html"> :::caution This rule is part of the [nursery](/linter/#nursery) group. This means that it is experimental and the behavior can change at any time. ::: ## Summary - Rule available since: `v2.3.9` - Diagnostic Category: [`lint/nursery/noScriptUrl`](/reference/diagnostics#diagnostic-category) - This rule doesn't have a fix. - The default severity of this rule is [**error**](/reference/diagnostics#error). - Sources: - Same as [`no-script-url`](https://eslint.org/docs/latest/rules/no-script-url) - Same as [`react/jsx-no-script-url`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-script-url.md) - Same as [`qwik/jsx-no-script-url`](https://qwik.dev/docs/advanced/eslint/#jsx-no-script-url) - Same as [`solid/jsx-no-script-url`](https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/jsx-no-script-url.md) - Same as [`@eslint-react/dom-no-script-url`](https://eslint-react.xyz/docs/rules/dom-no-script-url){
"linter": {
"rules": {
"nursery": {
"noScriptUrl": "error"
}
}
}
}
Disallow javascript: URLs in HTML.
Using javascript: URLs is considered a form of eval and can be a security risk.
These URLs can execute arbitrary JavaScript code, which can lead to cross-site scripting (XSS) vulnerabilities.
<a href="javascript:void(0)">Click me</a>
<a href="javascript:alert('XSS')">Click me</a>
<a href="https://example.com">Click me</a>
<a href="/path/to/page">Click me</a>
<a href="#section">Click me</a>
<span href="javascript:void(0)">Not a real href</span>
{
"linter": {
"rules": {
"nursery": {
"noScriptUrl": "error"
}
}
}
}
Disallow javascript: URLs.
Using javascript: URLs is considered a form of eval and can be a security risk.
These URLs can execute arbitrary JavaScript code, which can lead to cross-site scripting (XSS) vulnerabilities.
<a href="javascript:void(0)">Click me</a>
<a href="javascript:alert('XSS')">Click me</a>
React.createElement('a', { href: 'javascript:void(0)' });
<a href="https://example.com">Click me</a>
<a href="/path/to/page">Click me</a>
<a href="#section">Click me</a>