Daniel Ovaska
Jun 27, 2024
  1737
(1 votes)

Keeping the website secure by updating external packages

Did you see the latest warning from Optimizely to update this package with a critical security warning?

https://world.optimizely.com/documentation/Release-Notes/ReleaseNote/?releaseNoteId=CMS-33553

No? 

Security vulnerabilities in third party components like nuget packages or npm modules are one of the top 10 vulnerabilities for website according to OWASP

What makes it even more serious is that hackers can often scan the website for these vulnerabilities and often use them to compromise the website. 

Fortunately the tools to keep the website up to date already exist but often the process is lacking and must be agreed upon with stakeholders to secure funding for it. Stakeholders and product owners are often focused on new features and it's easy to fall behind on non-functional requirements like performance and security if these are not part of the development process. One way is to set a fixed value like 25% of development time to allocate to these areas and let developments team and tech lead suggest best bang-for-the-buck in these areas.

For an ordinary Optimizely website I recommend the more structured approach to securing third party packages and integrate it into your development process:

  1. Update all Optimizely code packages to latest minor version at least every 6 months.
  2. Use Visual Studio 2022 nuget package manager to locate any other vulnerable dotnet packages.
    There is even a nice little checkbox to show all vulnerable packages.
  3. Use npm audit to get a list of vulnerable frontend packages. 
  4. Update all moderate or higher at least

For a more security concerned websites I recommend the more ambitious process:

  1. Update all Optimizely code packages to latest minor version at the start of every sprint or every month.
  2. Use Visual Studio 2022 nuget package manager to locate any other vulnerable dotnet packages.
    There is even a nice little checkbox to show all vulnerable packages 
  3. Use npm audit to get a list of vulnerable frontend packages. 
  4. Update all vulnerable packages
  5. Use Azure Advanced Security or similar code scanner in build pipeline
    Set it up as a separate pipeline and run it manually before every deploy. 
    For really large solutions it might require build agents with more than normal disk space I've noticed.

For more security related tips for Optimizely see my security checklist

Happy coding and stay safe!

Jun 27, 2024

Comments

Mark Stott
Mark Stott Jul 9, 2024 08:58 AM

Hello Daniel,

First off, great article with some great tips.

If you are thinking about your website security and want to be able to manage your Content Security Policy, Cross Origin Resource Sharing policy and other response headers, you can always install my AddOn for Optimizely CMS 12 PAAS Core:

https://github.com/GeekInTheNorth/Stott.Security.Optimizely

Regards,
Mark

Please login to comment.
Latest blogs
Introducing the Optimizely CMS 13 Graph SDK

Query Optimizely Graph Without Writing GraphQL. A C# fluent API that lets you migrate from Search & Navigation with familiar patterns. CMS 13...

Jake Minard | Mar 25, 2026

AEO/GEO in a Legacy Optimizely CMS Project: A Practical Pattern for Google, ChatGPT, and Claude

A practical Optimizely CMS pattern for AEO/GEO on legacy sites: shared page metadata, Razor-rendered JSON-LD, crawler-aware robots.txt, and Schedul...

Wojciech Seweryn | Mar 23, 2026 |

Integrating Searchspring with Optimizely – Part 1: Architecture & Setup

Integrating Searchspring with Optimizely – Part 1: Architecture & Setup

Wiselin Jaya Jos | Mar 20, 2026 |

CMS 13 Preview 4 — Upgrading from Preview 3

This is the third post in a series where I use the Alloy template as a reference to walk through each CMS 13 preview. The first post covered...

Robert Svallin | Mar 20, 2026

The move to CMS 13: Upgrade Notes for Technical Teams

A technical walkthrough of CMS 13 preview3 and headless work: what is changing, where the risks are, and how an upgrade and what to expect

Hristo Bakalov | Mar 20, 2026 |

Customizing Product Data Sent to Optimizely Product Recommendations in Optimizely Commerce

A practical guide to customizing IEntryAttributeService in Optimizely Commerce so you can override product titles, add custom feed attributes, and...

Wojciech Seweryn | Mar 20, 2026 |