DOMPurify VS core-js

Compare DOMPurify vs core-js and see what are their differences.

DOMPurify

DOMPurify - a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. DOMPurify works with a secure default, but offers a lot of configurability and hooks. Demo: (by cure53)
Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
DOMPurify core-js
52 151
15,769 25,201
1.3% 0.2%
8.7 9.8
17 days ago 4 days ago
JavaScript JavaScript
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

DOMPurify

Posts with mentions or reviews of DOMPurify. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-06-21.
  • NodeJS Fundamentals: pure function
    2 projects | dev.to | 21 Jun 2025
    Pure functions, by their nature, reduce the attack surface. Because they don’t modify external state, they’re less susceptible to side-effect vulnerabilities like object pollution or prototype attacks. However, if a pure function processes user input, it’s still crucial to validate and sanitize that input to prevent XSS or other injection attacks. Libraries like DOMPurify (https://github.com/cure53/DOMPurify) can be used to sanitize HTML content, and schema validation libraries like zod (https://github.com/colyseus/zod) can be used to validate data structures. Always treat user input as untrusted.
  • NodeJS Fundamentals: ECMAScript
    3 projects | dev.to | 21 Jun 2025
    ECMAScript features like Proxy can be exploited if not used carefully. Avoid creating proxies that intercept sensitive operations without proper validation. Prototype pollution attacks are a concern; sanitize user input and avoid modifying the Object.prototype. XSS vulnerabilities can arise from improperly handling user-provided data in dynamic contexts. Use DOMPurify (https://github.com/cure53/DOMPurify) to sanitize HTML before rendering it. Validation libraries like zod (https://github.com/colyseus/zod) can enforce data schemas and prevent unexpected input.
  • Your rich text could be a cross-site scripting vulnerability
    3 projects | dev.to | 16 Dec 2024
    Let's take a look at how we implement sanitization in the secure version of our vulnerable application. Since this application is primarily written using JavaScript, we use the dompurify library for the client side and the isomorphic-dompurify library for server-side sanitization. In the app.js program that acts as our web server, you will find an express endpoint /sanitized with a GET and POST implementation:
  • The Final Stretch of My Open Source Journey: Part 2
    3 projects | dev.to | 29 Nov 2024
    After several hours of code review, I finally spotted something unfamiliar in the Markdown Renderer component: a function called escapeHTML was being used to escape HTML, even though DOMPurify was already being used for sanitization right after!
  • Understanding Cross-Site Scripting (XSS): A Quick Reference
    1 project | dev.to | 28 Oct 2024
    DOMPurify Documentation
  • Securing JavaScript Applications: Common Vulnerabilities and How to Avoid Them
    2 projects | dev.to | 15 Sep 2024
    Use libraries such as DOMPurify to sanitize input.
  • Mitigate XSS exploits when using React's `dangerously SetInnerHTML`
    1 project | dev.to | 12 Sep 2024
    //https://github.com/cure53/DOMPurify import React from "react"; import DOMPurify from "dompurify"; const sanitize = (dirty) => DOMPurify.sanitize(dirty); const DangerousHtml = ({ innerHTML, tag }) => { const clean = sanitize(innerHTML); if (typeof tag === "undefined") { return
    ; } return ; }; export default DangerousHtml;
  • Navigating the Security Risks of Arbitrary Values in Tailwind CSS
    1 project | dev.to | 15 Aug 2024
    Input Sanitization: The most crucial step in preventing XSS attacks is to ensure that all user-generated content is properly sanitized before it is rendered on the page. Use libraries like DOMPurify or built-in sanitization functions provided by your framework (e.g., React's dangerouslySetInnerHTML) to strip out any potentially harmful code.
  • Safely Handling HTML in React
    1 project | dev.to | 15 Jun 2024
    When using dangerouslySetInnerHTML, it is crucial to sanitize the HTML strings to prevent XSS attacks. DOMPurify is a robust library that cleans HTML content by removing or neutralizing potentially dangerous scripts or tags.
  • Show HN: Markdown HN profiles at {user}.at.hn
    9 projects | news.ycombinator.com | 10 Jun 2024
    Since marked doesn't do it for you, make sure you sanitize the user input (the text on the user profiles) before rendering it to visitors.

    Some libraries for doing that with good defaults:

    - https://github.com/cure53/DOMPurify

    - https://github.com/apostrophecms/sanitize-html

    - https://github.com/bevacqua/insane

    (right now your site looks vulnerable to XSS)

core-js

Posts with mentions or reviews of core-js. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-06-21.
  • NodeJS Fundamentals: prototype
    1 project | dev.to | 21 Jun 2025
    Prototype-based inheritance is widely supported across modern browsers. However, older browsers (IE < 11) may have inconsistencies or performance issues. core-js (https://github.com/zloirock/core-js) provides polyfills for missing or buggy features, including Object.create() and prototype-related methods. Babel can be configured to transpile modern JavaScript code to older versions, ensuring compatibility. Feature detection using typeof or in operators can be used to conditionally apply polyfills only when necessary.
  • NodeJS Fundamentals: bind
    1 project | dev.to | 21 Jun 2025
    bind is widely supported. However, for legacy browsers (IE < 9), a polyfill is necessary. core-js provides a comprehensive polyfill suite, including bind.
  • NodeJS Fundamentals: callback queue
    1 project | dev.to | 21 Jun 2025
    Modern browsers generally have excellent support for Promises and the event loop. However, older browsers (especially IE) may require polyfills. core-js (https://github.com/zloirock/core-js) provides comprehensive polyfills for various ECMAScript features, including Promises. Babel can be configured to automatically include these polyfills during the build process.
  • NodeJS Fundamentals: event loop
    2 projects | dev.to | 21 Jun 2025
    Promises: core-js (https://github.com/zloirock/core-js) provides polyfills for Promises and other ECMAScript features.
  • NodeJS Fundamentals: pure function
    2 projects | dev.to | 21 Jun 2025
    Pure functions themselves don’t require polyfills. However, the APIs they use might. For example, Intl.NumberFormat has varying levels of support across older browsers. Polyfills like core-js (https://github.com/zloirock/core-js) can provide compatibility for older environments. Babel can be configured to automatically include necessary polyfills during the build process. Feature detection using typeof Intl !== 'undefined' && Intl.NumberFormat can be used to conditionally use the native API or a fallback implementation.
  • NodeJS Fundamentals: function expression
    2 projects | dev.to | 21 Jun 2025
    ES6 features like arrow functions and lexical this binding require polyfills for older browsers (IE11 and below). core-js (https://github.com/zloirock/core-js) provides comprehensive polyfills for various ES features. Babel (https://babeljs.io/) can be configured to transpile modern JavaScript code to older versions, automatically including necessary polyfills.
  • NodeJS Fundamentals: ECMAScript
    3 projects | dev.to | 21 Jun 2025
    core-js (https://github.com/zloirock/core-js) provides polyfills for missing ECMAScript features. Configure Babel to use core-js to automatically include the necessary polyfills based on your target browser versions.
  • A Love Letter to the CSV Format
    18 projects | news.ycombinator.com | 26 Mar 2025
    Just use the polyfill

    https://github.com/zloirock/core-js#jsonparse-source-text-ac...

  • Polyfills - a filler or a gaping hole? (Part-2)
    1 project | dev.to | 29 Aug 2024
    1) Consider this tweet, which shows proofs of the sale. If you'd seen the tweet of the founder earlier on top, he denies any influence over the sale. Well, who do we blame here? Maintaining an open source project requires a lot of efforts from the community and the maintainers. There are several layers to the governance. And projects which are so widely used, like polyfill.io, need to be updated at all times. This requires time out of your daily schedule and contributing for a better developer experience around the world. And only a few do really know the ins and outs of a project. Funding is a big part of an open-source project, without which it's very difficult to carry on day-to-day tasks for maintainers. Here's a heart-wrenching example of the core-js library we'd talked about in the 1st part. I recommend everyone to go through this once and understand the efforts and create maintainer relationships.
  • If you're using Polyfill.io code on your site – like 100k are – remove it
    3 projects | news.ycombinator.com | 26 Jun 2024
    Don't forget that the author of core-js, a library not a service like polyfill but with almost the same goal, is tired of open source as well https://github.com/zloirock/core-js/blob/master/docs/2023-02...

What are some alternatives?

When comparing DOMPurify and core-js you can also consider the following projects:

sanitize-html - Clean up user-submitted HTML, preserving whitelisted elements and whitelisted attributes on a per-element basis. Built on htmlparser2 for speed and tolerance

proxy-polyfill - Proxy object polyfill

js-xss - Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist

Array.prototype.at - An ES-spec-compliant (proposed) `Array.prototype.at`shim/polyfill/replacement that works as far down as ES3.

Themis - Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

You-Dont-Know-JS - 📗📒 (PT-Br translation) JS Book Series.

Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured

Did you know that JavaScript is
the 3rd most popular programming language
based on number of references?