
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Thu, 09 Apr 2026 23:02:29 GMT</lastBuildDate>
        <item>
            <title><![CDATA[A new WAF experience]]></title>
            <link>https://blog.cloudflare.com/new-waf-experience/</link>
            <pubDate>Tue, 15 Mar 2022 12:59:06 GMT</pubDate>
            <description><![CDATA[ The security landscape is moving fast. We invited users to help us shape a new WAF experience that enables us to evolve WAF to meet their demands and use cases ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5AshmKNvJcvQs9VcqUCAp8/b5128c88e4eb56e13d06b710e2b9861b/image2-28.png" />
            
            </figure><p>Around three years ago, we brought multiple features into the <a href="/new-firewall-tab-and-analytics/">Firewall tab</a> in our dashboard navigation, with the motivation “to make our products and services intuitive.” With our hard work in <a href="/tag/waf/">expanding capabilities offerings</a> in the past three years, we want to take another opportunity to evaluate the intuitiveness of <a href="https://www.cloudflare.com/waf/">Cloudflare WAF (Web Application Firewall)</a>.</p>
    <div>
      <h3>Our customers lead the way to new WAF</h3>
      <a href="#our-customers-lead-the-way-to-new-waf">
        
      </a>
    </div>
    <p>The security landscape is moving fast; types of web applications are growing rapidly; and within the industry there are various approaches to what a <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> includes and can offer. Cloudflare not only proxies enterprise applications, but also millions of personal blogs, community sites, and small businesses stores. The diversity of use cases are covered by various products we offer; however, these products are currently scattered and that makes visibility of active protection rules unclear. This pushes us to reflect on how we can best support our customers in getting the most value out of WAF by providing a clearer offering that meets expectations.</p><p>A few months ago, we reached out to our customers to answer a simple question: what do you consider to be part of WAF? We employed a range of user research methods including card sorting, tree testing, design evaluation, and surveys to help with this. The results of this research illustrated how our customers think about WAF, what it means to them, and how it supports their use cases. This inspired the product team to expand scope and contemplate what (Web Application) Security means, beyond merely the WAF.</p><p>Based on what hundreds of customers told us, our user research and product design teams collaborated with product management to rethink the security experience. We examined our assumptions and assessed the effectiveness of design concepts to create a structure (or information architecture) that reflected our customers’ mental models.</p><p>This new structure consolidates firewall rules, managed rules, and rate limiting rules to become a part of WAF. The new WAF strives to be the one-stop shop for web application security as it pertains to differentiating malicious from clean traffic.</p><p>As of today, you will see the following changes to our navigation:</p><ol><li><p><b>Firewall</b> is being renamed to <b>Security.</b></p></li><li><p>Under <b>Security,</b> you will now find <b>WAF.</b></p></li><li><p>Firewall rules, managed rules, and rate limiting rules will now appear under <b>WAF</b>.</p></li></ol><blockquote><p>From now on, when we refer to <b>WAF,</b> we will be referring to above three features.</p></blockquote><p>Further, some important updates are coming for these features. Advanced rate limiting rules will be launched as part of <a href="/welcome-security-week-2022/">Security Week</a>, and every customer will also get a free set of managed rules to <a href="/waf-for-everyone">protect all traffic from high profile vulnerabilities</a>. And finally, in the next few months, firewall rules will move to the <a href="https://developers.cloudflare.com/ruleset-engine/">Ruleset Engine</a>, adding more powerful capabilities thanks to the new Ruleset API. Feeling excited?</p>
    <div>
      <h3>How customers shaped the future of WAF</h3>
      <a href="#how-customers-shaped-the-future-of-waf">
        
      </a>
    </div>
    <p>Almost 500 customers participated in this user research study that helped us learn about needs and context of use. We employed four research methods, all of which were conducted in an unmoderated manner; this meant people around the world could participate remotely at a time and place of their choosing.</p><ul><li><p>Card sorting involved participants grouping navigational elements into categories that made sense to them.</p></li><li><p>Tree testing assessed how well or poorly a proposed navigational structure performed for our target audience.</p></li><li><p>Design evaluation involved a task-based approach to measure effectiveness and utility of design concepts.</p></li><li><p>Survey questions helped us dive deeper into results, as well as painting a picture of our participants.</p></li></ul><p>Results of this four-pronged study informed changes to both WAF and Security that are detailed below.</p>
    <div>
      <h3>The new WAF experience</h3>
      <a href="#the-new-waf-experience">
        
      </a>
    </div>
    <p>The final result reveals the WAF as part of a broader <a href="https://dash.cloudflare.com/?to=/:account/:zone/security">Security category</a>, which also includes Bots, DDoS, API Shield and Page Shield. This destination enables you to create your rules (a.k.a. firewall rules), deploy Cloudflare managed rules, set rate limit conditions, and includes handy tools to protect your web applications.</p><p>All customers across <a href="https://www.cloudflare.com/plans/">all plans</a> will now see the WAF products organized as below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/777dWCpcmkac0c5KHZz4jp/6728da9e7d713d567a524faeb7f0b905/image1-29.png" />
            
            </figure><ol><li><p><b>Firewall rules</b> allow you to create custom, user-defined logic by blocking or allowing traffic that leverages all the components of the HTTP requests and dynamic fields computed by Cloudflare, such as Bot score.</p></li><li><p><b>Rate limiting rules</b> include the traditional IP-based product we launched back in 2018 and the newer Advanced Rate Limiting for ENT customers on the Advanced plan (coming soon).</p></li><li><p><b>Managed rules</b> allows customers to deploy sets of rules managed by the Cloudflare analyst team. These rulesets include a “Cloudflare Free Managed Ruleset” currently being rolled out <a href="/waf-for-everyone">for all plans</a> including FREE, as well as Cloudflare Managed, OWASP implementation, and Exposed Credentials Check for all paying plans.</p></li><li><p><b>Tools</b> give access to IP Access Rules, Zone Lockdown and User Agent Blocking. Although still actively supported, these products cover specific use cases that can be covered using firewall rules. However, they remain a part of the WAF toolbox for convenience.</p></li></ol>
    <div>
      <h3>Redesigning the WAF experience</h3>
      <a href="#redesigning-the-waf-experience">
        
      </a>
    </div>
    <p>Gestalt design principles suggest that “elements which are close in proximity to each other are perceived to share similar functionality or traits.” This principle in addition to the input from our customers informed our design decisions.</p><p>After reviewing the responses of the study, we understood the importance of making it easy to find the security products in the Dashboard, and the need to make it clear how particular products were related to or worked together with each other.</p><p>Crucially, the page needed to:</p><ul><li><p>Display each type of rule we support, i.e. firewall rules, rate limiting rules and managed rules</p></li><li><p>Show the usage amount of each type</p></li><li><p>Give the customer the ability to add a new rule and manage existing rules</p></li><li><p>Allow the customer to reprioritise rules using the existing drag and drop behavior</p></li><li><p>Be flexible enough to accommodate future additions and consolidations of WAF features</p></li></ul><p>We iterated on multiple options, including predominantly vertical page layouts, table based page layouts, and even accordion based page layouts. Each of these options, however, would force us to replicate buttons of similar functionality on the page. With the risk of causing additional confusion, we abandoned these options in favor of a horizontal, tabbed page layout.</p>
    <div>
      <h3>How can I get it?</h3>
      <a href="#how-can-i-get-it">
        
      </a>
    </div>
    <p>As of today, we are launching this new design of WAF to everyone! In the meantime, we are updating documentation to walk you through how to maximize the power of Cloudflare WAF.</p>
    <div>
      <h3>Looking forward</h3>
      <a href="#looking-forward">
        
      </a>
    </div>
    <p>This is a starting point of our journey to make Cloudflare WAF not only powerful but also easy to adapt to your needs. We are evaluating approaches to empower your decision-making process when protecting your web applications. Among growing intel information and more rules creation possibilities, we want to shorten your path from a possible threat detection (such as by security overview) to setting up the right rule to mitigate such threat. Stay tuned!</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Firewall]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Product Design]]></category>
            <category><![CDATA[Design]]></category>
            <guid isPermaLink="false">2UUR6KEw3qV6N5GMCAV7eS</guid>
            <dc:creator>Zhiyuan Zheng</dc:creator>
            <dc:creator>Mru Kodali</dc:creator>
            <dc:creator>Syeef Karim</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Dark Mode for the Cloudflare Dashboard]]></title>
            <link>https://blog.cloudflare.com/dark-mode/</link>
            <pubDate>Wed, 29 Sep 2021 12:59:34 GMT</pubDate>
            <description><![CDATA[ Dark mode is now available for the Cloudflare Dashboard in beta! From your user profile, you can configure the Cloudflare Dashboard in light mode, dark mode, or match it to your system settings. ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/61QiOeplrC8eEpodCYr3Vm/db254c79029a092fa9e18903825f65f1/image1-42.png" />
            
            </figure><p>Today, dark mode is available for the Cloudflare Dashboard in beta! From your <a href="https://dash.cloudflare.com/profile">user profile</a>, you can configure the Cloudflare Dashboard in light mode, dark mode, or match it to your system settings.</p><p>For those unfamiliar, dark mode, or light on dark color schemes, uses light text on dark backgrounds instead of the typical dark text on light (usually white) backgrounds. In low-light environments, this can help reduce eyestrain and actually reduce power consumption on OLED screens. For many though, dark mode is simply a preference supported widely by applications and devices.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/58dMu82Wo7DpdqOHsoh66s/15cc1b33d43d29b2d5579751676b81a6/image13-6.png" />
            
            </figure><p>Side by side comparing the Cloudflare dashboard in dark mode and in light mode</p>
    <div>
      <h3>How to enable dark mode</h3>
      <a href="#how-to-enable-dark-mode">
        
      </a>
    </div>
    <ol><li><p>Log into Cloudflare.</p></li><li><p>Go to your <a href="https://dash.cloudflare.com/profile">user profile</a>.</p></li><li><p>Under <b>Appearance</b>, select an option: <i>Light</i>, <i>Dark</i>, or <i>Use system setting</i>. For the time being, your choice is saved into local storage.</p></li></ol>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1k9oNOhJL3UoE6f9bBgilf/04cbb0f7e715ad2fd5d21f659f839c55/image11-6.png" />
            
            </figure><p>The appearance card in the dashboard for modifying color themes</p><p>There are many primers and how-tos on implementing dark mode, and you can find articles talking about the general complications of implementing a dark mode including <a href="https://www.reddit.com/r/explainlikeimfive/comments/hq2s0z/eli5_why_did_it_take_so_much_time_to_introduce/">this straightforward explanation</a>. Instead, we will talk about what enabled us to be able to implement dark mode in only a matter of weeks.</p>
    <div>
      <h3>Cloudflare’s Design System - Our Secret Weapon</h3>
      <a href="#cloudflares-design-system-our-secret-weapon">
        
      </a>
    </div>
    <p>Before getting into the specifics of how we implemented dark mode, it helps to understand the system that underpins all product design and UI work at Cloudflare - the Cloudflare Design System.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2o0p4aO6GndFww4DkORffk/ff5c862d0f14a57b2c8e33d6e7ab8022/image6-22.png" />
            
            </figure><p>The six pillars of the design system: logo, typography, color, layout, icons, videos</p><p>Cloudflare’s Design System defines and documents the interface elements and patterns used to build products at Cloudflare. The system can be used to efficiently build consistent experiences for Cloudflare customers. In practice, the Design System defines primitives like typography, color, layout, and icons in a clear and standard fashion. What this means is that anytime a new interface is designed, or new UI code is written, an easily referenceable, highly detailed set of documentation is available to ensure that the work matches previous work. This increases productivity, especially for new employees, and prevents repetitious discussions about style choices and interaction design.</p><p>Built on top of these design primitives, we also have our own component library. This is a set of ready to use components that designers and engineers can combine to form the products our customers use every day. They adhere to the design system, are battle tested in terms of code quality, and enhance the user experience by providing consistent implementations of common UI components. Any button, table, or chart you see looks and works the same because it <i>is</i> the same underlying code with the relevant data changed for the specific use case.</p><p>So, what does all of this have to do with dark mode? Everything, it turns out. Due to the widespread adoption of the design system across the dashboard, changing a set of variables like background color and text color in a specific way and seeing the change applied nearly everywhere at once becomes much easier. Let’s take a closer look at how we did that.</p>
    <div>
      <h3>Turning Out the Lights</h3>
      <a href="#turning-out-the-lights">
        
      </a>
    </div>
    <p>The use of color at Cloudflare has a well documented history. When we originally set out to build our color system, the <a href="https://color.cloudflare.design">tools we built</a> and the extensive <a href="/thinking-about-color/">research we performed</a> resulted in a ten-hue, ten-luminosity set of colors that can be used to build digital products. These colors were built to be accessible — not just in terms of internal use, but for our customers. Take our blue hue scale, for example.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3PGzm1z3tMdVi7DymNP7uP/1e38bb546fd274bc4349d946466e7e77/image10-6.png" />
            
            </figure><p>Our blue color scale, as used on the Cloudflare Dashboard. This shows color-contrast accessible text and background pairings for each step in the scale.</p><p>Each hue in our color scale contains ten colors, ordered by luminosity in ten increasing increments from low luminosity to high luminosity. This color scale allows us to filter down the choice of color from the 16,777,216 hex codes available on the web to a much simpler choice of just hue and brightness. As a result, we now have a methodology where designers know the first five steps in a scale have sufficient color contrast with white or lighter text, and the last five steps in a scale have sufficient contrast with black or darker text.</p><p>Color scales also allow us to make changes while designing in a far more fluid fashion. If a piece of text is too bright relative to its surroundings, drop down a step on the scale. If an element is too visually heavy, take a step-up. With the Design System and these color scales in place, we’ve been able to design and ship products at a rapid rate.</p><p>So, with this color system in place, how do we begin to ship a dark mode? It turns out there’s a simple solution to this, and it’s built into the JS standard library. We call <code>reverse()</code> and flip the luminosity scales.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/GUZ9MW5PKQYsaTCDWrL8n/d893975cdc0d3783366ae5ec8cc1f7ae/image12-8.png" />
            
            </figure><p>Our blue color scale after calling reverse on it. High luminosity colors are now at the start of the scale, making them contrast accessible with darker backgrounds (and vice-versa).</p><p>By performing this small change within our dashboard’s React codebase and shipping a production preview deploy, we were able to see the Cloudflare Dashboard in dark mode with a whole new set of colors in a matter of minutes.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3n0vUwjdzCS1IWjvK0487K/83aae923cb84ec67ce50ef45779e2c20/image7-9.png" />
            
            </figure><p>An early preview of the Cloudflare Dashboard after flipping our color scales.</p><p>While not perfect, this brief prototype gave us an incredibly solid baseline and validated the approach with a number of benefits.</p><p>Every product built using the Cloudflare Design System now had a dark mode theme built in for free, with no additional work required by teams.</p><p>Our color contrast principles remain sound — just as the first five colors in a scale would be accessible with light text, when flipped, the first five colors in the scale are accessible with dark text. Our scales aren’t perfectly symmetrical, but when using white and black, the principle still holds.</p><p>In a traditional approach of “inverting” colors, we face the issue of a color’s hue being changed too. When a color is broken down into its constituent hue, saturation, and luminosity values, inverting it would mean a vibrant light blue would become a dull dark orange. Our approach of just inverting the luminosity of a color means that we retain the saturation and hue of a color, meaning we retain Cloudflare’s brand aesthetic and the associated meaning of each hue (blue buttons as calls-to-action, and so on).</p><p>Of course, shipping a dark mode for a product as complex as the Cloudflare Dashboard can’t just be done in a matter of minutes.</p>
    <div>
      <h3>Not Quite Just Turning the Lights Off</h3>
      <a href="#not-quite-just-turning-the-lights-off">
        
      </a>
    </div>
    <p>Although our prototype did meet our initial requirements of facilitating the dashboard in a dark theme, some details just weren’t quite right. The data visualization and mapping libraries we use, our icons, text, and various button and link states all had to be audited and required further iterations. One of the most obvious and prominent examples was the page background color. Our prototype had simply changed the background color from white (#FFFFFF) to black (#000000). It quickly became apparent that black wasn’t appropriate. We received feedback that it was “too intense” and “harsh.” We instead opted for off black, specifically what we refer to as “gray.0” or #1D1D1D. The difference may not seem noticeable, but at larger dimensions, the gray background is much less distracting.</p><p>Here is what it looks like in our design system:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/53o6OTIT1cBmThMDNR0aXP/43f973ef4ab2ebbe615ec3e86b0bc7f0/image9-7.png" />
            
            </figure><p>Black background color contrast for white text</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3083uB7mi7KPoGzbGldGJY/ba3a68d98618794e1117428f2c9aee7d/image8-8.png" />
            
            </figure><p>Gray background color contrast for white text</p><p>And here is a more realistic example:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/S5q4EXp6VFsU65wupcmwG/ba61887437a4a331b18d3a7a7afb6df7/image4-27.png" />
            
            </figure><p>lorem ipsum sample text on black background and on gray background</p><p>The numbers at the end of each row represent the contrast of the text color on the background. According to the Web Content Accessibility Guidelines (<a href="https://www.w3.org/WAI/standards-guidelines/wcag/">WCAG</a>), the <a href="https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html">standard contrast ratio for text</a> should be at least 4.5:1. In our case, while both of the above examples exceed the standard, the gray background ends up being less harsh to use across an entire application. This is not the case with light mode as dark text on white (#FFFFFF) background works well.</p><p>Our technique during the prototyping stage involved flipping our color scale; however, we additionally created a tool to let us replace any color within the scale arbitrarily. As the dashboard is made up of charts, icons, links, shadows, buttons and certainly other components, we needed to be able to see how they reacted in their various possible states. Importantly, we also wanted to improve the accessibility of these components and pay particular attention to color contrast.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7DN7Nzw7yW5WKtQXWpfej9/fabb6d2b18a3ac4aa438a5048a765b75/image5-24.png" />
            
            </figure><p>Color picker tool screenshot showing a color scale</p><p>For example, a button is made up of four distinct states:</p><ol><li><p>Default</p></li><li><p>Focus</p></li><li><p>Hover</p></li><li><p>Active</p></li></ol>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3JApmRD2XeF5fhAzjaGCdn/ef0764d345c51fbfea035f637317eb02/image2-44.png" />
            
            </figure><p>Example showing the various colors for states of buttons in light and dark mode</p><p>We wanted to ensure that each of these states would be at least compliant with the AA accessibility standards according to the WCAG. Using a combination of our design systems documentation and a prioritized list of components and pages based on occurrence and visits, we meticulously reviewed each state of our components to ensure their compliance.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1SoATB16O1z2em0u7nfoUq/94a29e459c22bf049d53dfb370a7f730/image3-34.png" />
            
            </figure><p>Side by side comparison of the navbar in light and dark modes</p><p>The navigation bar used to select between the different applications was a component we wanted to treat differently compared to light mode. In light mode, the app icons are a solid blue with an outline of the icon; it’s a distinct look and certainly one that grabs your attention. However, for dark mode, the consensus was that it was too bright and distracting for the overall desired experience. We wanted the overall aesthetic of dark mode to be subtle, but it’s important to not conflate aesthetic with poor usability. With that in mind, we made the decision for the navigation bar to use outlines around each icon, instead of being filled in. Only the selected application has a filled state. By using outlines, we are able to create sufficient contrast between the current active application and the rest. Additionally, this provided a visually distinct way to present hover states, by displaying a filled state.</p><p>After applying the same methodology as described to other components like charts, icons, and links, we end up with a nicely tailored experience without requiring a substantial overhaul of our codebase. For any new UI that teams at Cloudflare build going forward, they will not have to worry about extra work to support dark mode. This means we get an improved customer experience without any impact to our long term ability to keep delivering amazing new capabilities — that’s a win-win!</p>
    <div>
      <h3>Welcome to the Dark Side</h3>
      <a href="#welcome-to-the-dark-side">
        
      </a>
    </div>
    <p>We know many of you have been asking for this, and we are excited to bring dark mode to all. Without the investment into our design system by many folks at Cloudflare, dark mode would not have seen the light of day. You can enable dark mode on the <b>Appearance</b> card in your <a href="https://dash.cloudflare.com/profile">user profile</a>. You can give feedback to shape the future of the dark theme with the feedback form in the card.</p><p>If you find these types of problems interesting, come help us tackle them! We are hiring across <a href="https://boards.greenhouse.io/cloudflare/jobs/3120477?gh_jid=3120477">product</a>, <a href="https://boards.greenhouse.io/cloudflare/jobs/3421232?gh_jid=3421232`">design</a>, and <a href="https://boards.greenhouse.io/cloudflare/jobs/3192227?gh_jid=3192227">engineering</a>!</p> ]]></content:encoded>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Dashboard]]></category>
            <guid isPermaLink="false">4uk8qSO6sWdJa2f9qzpwki</guid>
            <dc:creator>Garrett Galow</dc:creator>
            <dc:creator>Syeef Karim</dc:creator>
            <dc:creator>Harley Turan</dc:creator>
        </item>
        <item>
            <title><![CDATA[Designing the new Cloudflare Web Application Firewall]]></title>
            <link>https://blog.cloudflare.com/designing-the-new-cloudflare-waf/</link>
            <pubDate>Tue, 11 May 2021 13:00:00 GMT</pubDate>
            <description><![CDATA[ The Cloudflare Web Application Firewall (WAF) protects websites and applications from malicious traffic attempting to exploit vulnerabilities in server software. It’s a critical piece of the broader security posture of your application. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>The Cloudflare Web Application Firewall (WAF) protects websites and applications from malicious traffic attempting to exploit vulnerabilities in server software. It’s a critical piece of the broader security posture of your application. With that in mind, we made sure improvements to the Web Application Firewall dashboard experience made it easier to enable the WAF and configure rules to match the specific requirements of an application. In this post, I’ll share parts of the process we followed and the rationale behind the decisions we took when designing the <a href="/new-cloudflare-waf/">new Web Application Firewall</a> dashboard experience.</p><p>I’ve separated out my design process into three stages:</p><ol><li><p>Identify the tasks customers are trying to complete using the WAF</p></li><li><p>Prioritise the tasks in such a way that it’s clear what the most common tasks are vs what the more involved tasks are</p></li><li><p>Define, create, and refine the interface and interactions</p></li></ol>
    <div>
      <h2>Identifying the tasks customers are trying to complete</h2>
      <a href="#identifying-the-tasks-customers-are-trying-to-complete">
        
      </a>
    </div>
    <p>We support a range of customers — individual developers or hobbyists, small/medium-sized businesses where it’s common for a developer to fulfil multiple roles and responsibilities, through to large global enterprises where often there is an entire department dedicated to information security. Traditionally, product development teams use techniques such as the use of a user persona or a user story to help them focus on a specific problem they’re trying to solve; however each of these methods have their own inefficiencies and importantly aren’t able to scale to match the breadth of our customers. For example, a user persona is typically made by taking the average from a group or a specific selection of demographic indicators (such as age, gender, marital status, and hobbies), presenting it in a document and referring to it as one of multiple user archetypes of the application, but crucially fails to explain why the user decided to use or not use a specific feature. Similarly, user stories make use of user personas, but conflate them with implementation details and desired outcomes all the while failing to describe the situation the user is in.</p><p>To help the product development team better empathise with our range of customers, we use a technique known as Job Stories. Job Stories, unlike user persona or user stories allow us to focus on the users situation, motivation, and desired outcome.</p><p>We conducted interviews with a handful of customers directly, but we also supplemented them by interviewing members of our Solutions Engineering team. They help customers configure Cloudflare to meet their requirements and therefore have a direct connection to multiple customers themselves. They are in a position of being able to aggregate feedback from multiple customers. From the various interviews we identified the following job stories among many:</p><ul><li><p>When onboarding with Cloudflare, I want to quickly turn on the WAF and use the default settings so I can proceed to configuring the rest of the Cloudflare features.</p></li><li><p>When refining and tuning the configuration of my zone, I only want to configure the rules I’m interested in so I can reduce the potential number of false positive results.</p></li></ul><p>Next, we began to analyse each of these uses further. We wanted to understand what was working well from the existing interface and more importantly, what was causing confusion or impacting efficiency.</p>
    <div>
      <h3><i>“I want to turn on the WAF and use the default settings.”</i></h3>
      <a href="#i-want-to-turn-on-the-waf-and-use-the-default-settings">
        
      </a>
    </div>
    <p>With the legacy dashboard experience, a customer had a choice of different managed rulesets (Cloudflare Managed Ruleset or OWASP ModSecurity Core Rule Set.) Making a ruleset actually run however required some tedious configuration. The specific groups within a ruleset would need to be enabled and a separate switch controlling the overall WAF would also need to be enabled. Now, imagine the use case of wanting to use the Cloudflare Managed Ruleset. The current experience would require the user to enable at least two switches:</p><ol><li><p>The overall Web Application Firewall switch must be enabled</p></li><li><p>At least a single group from Cloudflare Managed Ruleset must be enabled</p></li></ol><p>As two distinct options needed to be configured, we concluded that this could cause customers to put their applications at an increased risk of being unprotected. They might have enabled the particular groups they’re interested in from the Cloudflare Managed Ruleset. However, if the switch of the Web Application Firewall is in the off position, the configuration of the Cloudflare Managed Ruleset is ignored. Essentially, they’ve misconfigured the WAF into a vulnerable state.</p><p>This is where we identified our first opportunity of improvement. The existing user journey had too many opportunities for misconfiguration and should have been very straightforward.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4xx2d5p8bJjCvKAUbnCSdw/e4f08afe8fd935d6f1cdb05e756e276b/image4-2.png" />
            
            </figure><p>The legacy UI of the Web Application Firewall.</p>
    <div>
      <h3><i>“I only want to configure the rules I’m interested in.”</i></h3>
      <a href="#i-only-want-to-configure-the-rules-im-interested-in">
        
      </a>
    </div>
    <p>On the legacy Managed Rules page, all the groups for each of the rulesets were listed beneath the card. This made it super easy to enable or disable specific rule groups and, from our user research sessions, we learned it was actually a very common workflow. However, scratch beneath the surface slightly and you’ll start to see the complexities of the system. Each group is made up of individual rules. By clicking on a group, a new modal would appear listing all the rules belonging to that group. The legacy UI was built to make it easy to change the action of a single rule — select an option from the dropdown and off you go. Simple. Most users probably even have the patience to change the action of a couple of rules like this. But what if it isn’t just a couple? Some groups contain hundreds of rules. A particularly complicated setup of the WAF could mean having to change the action of each rule. With the capabilities of the legacy UI, that would require hundreds of clicks and waste invaluable time. I’m embarrassed to admit that this was the suggested workflow and users were often required to use our APIs instead.</p><p>We now identified our next area of improvement — create the tools necessary for completing bulk edits and easy rule selection.</p><p>In summary, users want to easily turn on the WAF and move along. However, the legacy UI had a cumbersome and error-prone process to do so. Secondly, if a user wanted to enable or disable a specific rule of a ruleset, the legacy UI actually made that very simple. However, when it came to changing the action of multiple rules at once, the legacy UI was a time sink.</p>
    <div>
      <h2>Prioritising the identified tasks</h2>
      <a href="#prioritising-the-identified-tasks">
        
      </a>
    </div>
    <p>We’ve identified the tasks or jobs customers are trying to accomplish and understand where the current difficulties and inefficiencies are within the experience. Using our telemetry and analytics tools, such as Amplitude, we determine how often customers are performing each of the job stories. This is a critical step, as the output will help us decide which job stories we should be optimising the interface for. About 76% of zones that are using the WAF today are doing so with its default configuration. From this we can infer that most customers simply turn on the WAF and continue on with their business, potentially continuing to configure other Cloudflare features.</p><p>It’s worth pointing out the importance of having sensible defaults within applications. Oftentimes users will continue down the path of least resistance or to whatever helps them complete their goal the quickest — ergo, they’ll usually stick to the default settings of an application as these are usually created with the most common use cases in mind. For this reason, the default state of the Cloudflare Managed Ruleset is such that it exceeds the security requirements of most applications whilst balancing a relatively low false positive rate.</p>
    <div>
      <h2>Define, create, and refine the interface and interactions</h2>
      <a href="#define-create-and-refine-the-interface-and-interactions">
        
      </a>
    </div>
    <p>We use Figma to design the user interface of the dashboard. Using our Component Library, it allows us to quickly create mockups of what an interface could look like. At this stage of the project, a tool like Figma makes it easy for us to iterate through numerous ideas or permutations of a particular interaction.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6kKZwxbciujiWCCvrUhq3D/180fbd0eaad8b8993c6285b59e4e82d4/image3-1.png" />
            
            </figure><p>The Figma file used during the development of the new UI.</p><p>From the user research and data collection we conducted earlier, it’s clear that we needed to make enabling a particular ruleset better than the legacy experience. It is a very common workflow, but prone to potentially dangerous errors — certainly not a good combination.</p><p>Part of our job as designers at Cloudflare is to make the complex and intricate aspects of configuration ridiculously simple and increasing the confidence customers have with the UI and the actions they’re performing. With that in mind, to enable a ruleset like the Cloudflare Managed Ruleset with the new Managed Rules a customer only needs to do a single click.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3X04C1fZsEhGzVEtdVsufz/d9287df00e99900fe4e36b98a6eda6c3/image1-2.png" />
            
            </figure><p>The new Web Application Firewall page.</p><p>We wanted to improve the method of having all rules execute the same specific action. With the legacy UI, this required customers to select from a drop-down menu on all the individual rules. This was an extremely tedious and time-consuming process. Sticking to our design principles of maintaining ease of use and increasing simplicity and efficiency, the new Managed Rules allows for a single action to execute across the entire ruleset. We call this a Ruleset Action. A Ruleset Action is an action which all the rules within a ruleset will adhere to.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Fyn5W5ghPi1rJVhnRzsGM/a841b9b647e0b9cd76097432719ac7f7/image2-1.png" />
            
            </figure><p>Review page with Ruleset Action configured.</p><p>The next capability we focused on was having all the rules execute the same specific action. In the legacy UI, changing the mode of multiple rules at once wasn’t possible. With the new dashboard experience, customers can browse through all the rules within the ruleset. Multiple rules can be selected at once using the select box on the left-hand side and the action or status can be set for the entire selection.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4MaD63Qoi4HVw9iCJTXXsW/bf2494eb2b65483b6e8b57a031ba5252/image5-1.png" />
            
            </figure><p>Rule Browser page with multiple rules selected and Set Action drop-down menu open.</p>
    <div>
      <h2>We’re just getting started</h2>
      <a href="#were-just-getting-started">
        
      </a>
    </div>
    <p>We didn’t get to these interactions straightaway, but rather by taking part in numerous design critiques and constantly evaluating the effectiveness of the new interactions against the identified job stories. We’ll be utilising our telemetry and analytics tools to understand how customers are using the new features and continuing to refine the experience further. Watch this space, because more updates are on the way!</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Design]]></category>
            <category><![CDATA[Product Design]]></category>
            <guid isPermaLink="false">4qZ0jRzShvDas5tQ3K5S0K</guid>
            <dc:creator>Syeef Karim</dc:creator>
        </item>
    </channel>
</rss>