Vagr9K / gatsby-advanced-starter

A high performance skeleton starter for GatsbyJS with an advanced feature set.
https://amaranth-demo.netlify.app/
MIT License
1.56k stars 405 forks source link

add conditional check to block javascript: URLs #532

Open gtsp233 opened 9 months ago

gtsp233 commented 9 months ago

Fix for Cross-Site Scripting (XSS) Vulnerability

I've identified a Cross-Site Scripting (XSS) vulnerability in this package.

Vulnerability Details:

Steps to Reproduce: In a React.js project:

import { Link } from 'gatsby-theme-advanced'

<Link href={`javascript:alert(1)`} />

Then the malicious code alert(1) will be executed.

Suggested Fix or Mitigation: It is best practice for a React.js components package to sanitize the href attribute before passing it to an tag. React.js itself, along with many popular libraries such as react-router-dom and Next.js, also ensures the safety of href attributes. For instance, React.js issues warnings about URLs starting with javascript: and is planning to block these in future versions, as indicated in this pull request.

I've already fixed and tested this issue, and have submitted a pull request with the necessary changes. Please review and merge my pull request at your earliest convenience to resolve this vulnerability. Thanks!

netlify[bot] commented 9 months ago

Deploy Preview for gatsby-advanced-starter-demo failed.

Name Link
Latest commit 53b2ea66382f2d0ae3c2adab0971addf91139dee
Latest deploy log https://app.netlify.com/sites/gatsby-advanced-starter-demo/deploys/6569699f6fed690008573fb5