Gcore named a Leader in the GigaOm Radar for AI Infrastructure!Get the report
  1. Home
  2. Developers
  3. How to Prevent Legacy Code

How to Prevent Legacy Code

  • By Gcore
  • June 20, 2023
  • 4 min read
How to Prevent Legacy Code

Table of contents

Try Gcore Security

Try for free

In the dynamic sphere of software development, legacy code often poses a significant challenge. Over time, this code can accumulate due to the continuous application of patches and quick fixes just to keep the system operational. This article will help you understand and apply strategies for managing this common issue so you can ensure that your code remains clean, efficient, and updated.

What Are the Problems of Legacy Code?

Legacy code can be a huge headache for developers. An inherited codebase often comes with technical debt, the result of quick fixes and patches that were originally intended to keep the system afloat. Over time, these band-aid solutions can make the code increasingly hard to understand, modify, or update without triggering a rush of new bugs or system errors. Legacy code can slow down progress, complicate the adoption of new technologies, and consume more resources, causing problems with development efficiency and productivity.

How Can Legacy Code Be Solved?

An effective strategy to tackle this issue is the use of strict typing in TypeScript. This feature activates an extensive range of type-checking behaviors that help with program accuracy.

TypeScript

If you enable the strictNullChecks option, null and undefined are treated as distinct types. This means that if you try to use them in a place where a specific value is expected, you’ll encounter a type error. This simple but powerful tool can protect your system against runtime errors when trying to access undefined fields. In addition, the strictFunctionTypes flag improves the accuracy of function parameter checking, making your codebase even more robust.

But be careful—enabling all strict mode options may be difficult due to potential legacy errors. But you don’t have to make this shift in one single leap; instead you can choose to implement it gradually.

One way to do this is by using the lint-staged package in combination with the tsc-files library. tsc-files runs TypeScript compiler (tsc) on specific files without disregarding tsconfig.json. This way, you can start improving your codebase one step at a time.

Here’s how that might look:

"lint-staged": {
  "*.{js,ts}": ["tsc-files --noEmit --noImplicitAny --strictNullChecks"],
}

In this example, TypeScript compiles without creating any output files, thanks to the ‘noEmit‘ flag. The ‘noImplicitAny‘ and ‘strictNullChecks‘ flags, which are disabled in the main tsconfig file, come into play for code verification. This approach means you don’t have to fix all errors in the project at once; instead, you only need to resolve errors in the files that have changed before committing to Git.

Next, let’s look at additional tools that can help you deal with legacy code.

Lint

Linting is the process of analyzing code for errors and style inconsistencies. It is used to ensure code quality and maintainability by quickly catching and rectifying potential errors and enforcing consistent style. Linter helps to catch bugs early in the development process, making your code easier to read and understand, facilitating smoother collaboration and more efficient code reviews.

Linter is a great tool for linting. We recommend using it with custom configuration to reap the full benefits. For example you can ask it to parse *.ts files according to main tsconfig.json, or *.html files with extending recommended rules ‘plugin:@angular-eslint/template/recommended‘. Using custom configurations like these help to keep Linter aligned with the precise goals of your project.

Another aspect to consider is the use of the lint-staged‘ library. Linting an entire project can be time-consuming and, in some cases, the results might not be entirely relevant. To avoid these annoyances, ‘lint-staged‘ allows you to target only those files that are staged for commit. This way, you can maintain the quality of your code efficiently, focusing on changes that are about to become part of your codebase.

Here’s how that looks:

"lint-staged": {
  "*.{js,ts}": [
	"eslint --cache",
] }

In this case only *.ts and *.js files will be linted, because they are what were committed.

The Husky‘ library is also worth knowing about. Husky enables the automation of tasks such as linting commit messages, running tests, and linting code whenever you make a commit or push to your repository.

Here’s how to run Husky (pre-commit.sh file):

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx lint-staged
npm run validate

In this case, the lint-staged command executes linting, and a custom validation npm command specified in the configuration file triggers with each Git commit.

Prettier Code

Another useful tool to keep in your back pocket is Prettier (https://prettier.io/). Prettier is a popular code formatter that can automatically format your code to follow a consistent style. Prettier has several configuration options that allow you to customize its behavior to fit your project’s needs. For example, you can configure line length and indentation style.

Here’s how you can use Prettier:

"lint-staged": {
	"*.{js,ts,css}": "prettier --write"
}

In this instance, Prettier is applied to JavaScript, TypeScript, and CSS files within the “lint-staged” context. Each time you commit changes to your Git repository, Prettier will automatically format the staged files. This ensures that the committed code conforms to your predefined stylistic rules, enhancing its consistency. The --write flag tells Prettier to not only identify formatting issues but also to overwrite the files with the recommended formatting changes.

Verification will be only for certain categories of files, and on every commit to Git repository. We use the -save option to rewrite corrected files.

Conclusion

Handling legacy code necessitates a strategic and proactive approach. By leveraging TypeScript’s strict type feature, along with robust tools like ESLint, Husky, and Prettier, you can ensure code quality, prevent legacy code accumulation, and foster a maintainable, efficient codebase. The road to clean code is a continuous journey, but with the right tools and techniques, it’s worth undertaking—cleaning up your legacy code can lead to significantly improved code quality and enhanced software development processes.

Table of contents

Try Gcore Security

Try for free

Related articles

Flexible DDoS mitigation with BGP Flowspec cover image

Flexible DDoS mitigation with BGP Flowspec

For customers who understand their own network traffic patterns, rigid DDoS protection can be more of a limitation than a safeguard. That’s why Gcore supports BGP Flowspec: a flexible, standards-based method for defining granular filters that block or rate-limit malicious traffic in real time…before it reaches your infrastructure.In this article, we’ll walk through:What Flowspec is and how it worksThe specific filters and actions Gcore supportsCommon use cases, with example rule definitionsHow to activate and monitor Flowspec in your environmentWhat is the BGP Flowspec?BGP Flowspec (RFC 8955) extends Border Gateway Protocol to distribute traffic filtering rules alongside routing updates. Instead of static ACLs or reactive blackholing, Flowspec enables near-instantaneous propagation of mitigation rules across networks.BGP tells routers how to reach IP prefixes across the internet. With Flowspec, those same BGP announcements can now carry rules, not just routes. Each rule describes a pattern of traffic (e.g., TCP SYN packets >1000 bytes from a specific subnet) and what action to take (drop, rate-limit, mark, or redirect).What are the benefits of the BGP Flowspec?Most traditional DDoS protection services react to threats after they start, whether by blackholing traffic to a target IP, redirecting flows to a scrubbing center, or applying rigid, static filters. These approaches can block legitimate traffic, introduce latency, or be too slow to respond to fast-evolving attacks.Flowspec offers a more flexible alternative.Proactive mitigation: Instead of waiting for attacks, you can define known-bad traffic patterns ahead of time and block them instantly. Flowspec lets experienced operators prevent incidents before they start.Granular filtering: You’re not limited to blocking by IP or port. With Flowspec, you can match on packet size, TCP flags, ICMP codes, and more, enabling fine-tuned control that traditional ACLs or RTBH don’t support.Edge offloading: Filtering happens directly on Gcore’s routers, offloading your infrastructure and avoiding scrubbing latency.Real-time updates: Changes to rules are distributed across the network via BGP and take effect immediately, faster than manual intervention or standard blackholing.You still have the option to block traffic during an active attack, but with Flowspec, you gain the flexibility to protect services with minimal disruption and greater precision than conventional tools allow.Which parts of the Flowspec does Gcore implement?Gcore supports twelve filter types and four actions of the Flowspec.Supported filter typesGcore supports all 12 standard Flowspec match components.Filter FieldDescriptionDestination prefixTarget subnet (usually your service or app)Source prefixSource of traffic (e.g., attacker IP range)IP protocolTCP, UDP, ICMP, etc.Port / Source portMatch specific client or server portsDestination portMatch destination-side service portsICMP type/codeFilter echo requests, errors, etc.TCP flagsFilter packets by SYN, ACK, RST, FIN, combinationsPacket lengthFilter based on payload sizeDSCPQuality of service code pointFragmentMatch on packet fragmentation characteristicsSupported actionsGcore DDoS Protection supports the following Flowspec actions, which can be triggered when traffic matches a specific filter:ActionDescriptionTraffic-rate (0x8006)Throttle/rate limit traffic by byte-per-second rateredirectRedirect traffic to alternate location (e.g., scrubbing)traffic-markingApply DSCP marks for downstream classificationno-action (drop)Drop packets (rate-limit 0)Rule orderingRFC 5575 defines the implicit order of Flowspec rules. The crucial point is that more specific announcements take preference, not the order in which the rules are propagated.Gcore also respects Flowspec rule ordering per RFC 5575. More specific filters override broader ones. Future support for Flowspec v2 (with explicit ordering) is under consideration, pending vendor adoption.Blackholing and extended blackholing (eBH)Remote-triggered blackhole (RTBH) is a standardized protection method that the client manages via BGP by analyzing traffic, identifying the direction of the attack (i.e., the destination IP address). This method protects against volumetric attacks.Customers using Gcore IP Transit can trigger immediate blackholing for attacked prefixes via BGP, using the well-known blackhole community tag 65000:666. All traffic to that destination IP is dropped at Gcore’s edge.The list of supported BGP communities is available here.BGP extended blackholeExtended blackhole (eBH) allows for more granular blackholing that does not affect legitimate traffic. For customers unable to implement Flowspec directly, Gcore supports eBH. You announce target prefixes with pre-agreed BGP communities, and Gcore translates them into Flowspec mitigations.To configure this option, contact our NOC at noc@gcore.lu.Monitoring and limitationsGcore can support several logging transports, including mail and Slack.If the number of Flowspec prefixes exceeds the configured limit, Gcore DDoS Protection stops accepting new announcements, but BGP sessions and existing prefixes will stay active. Gcore will receive a notification that you reached the limit.How to activateActivation takes just two steps:Define rules on your edge router using Flowspec NLRI formatAnnounce rules via BGP to Gcore’s intermediate control planeThen, Gcore validates and propagates the filters to border routers. Filters are installed on edge devices and take effect immediately.If attack patterns are unknown, you’ll first need to detect anomalies using your existing monitoring stack, then define the appropriate Flowspec rules.Need help activating Flowspec? Get in touch via our 24/7 support channels and our experts will be glad to assist.Set up GRE and benefit from Flowspec today

Securing AI from the ground up: defense across the lifecycle

As more AI workloads shift to the edge for lower latency and localized processing, the attack surface expands. Defending a data center is old news. Now, you’re securing distributed training pipelines, mobile inference APIs, and storage environments that may operate independently of centralized infrastructure, especially in edge or federated learning contexts. Every stage introduces unique risks. Each one needs its own defenses.Let’s walk through the key security challenges across each phase of the AI lifecycle, and the hardening strategies that actually work.PhaseTop threatsHardening stepsTrainingData poisoning, leaksValidation, dataset integrity tracking, RBAC, adversarial trainingDevelopmentModel extraction, inversionRate limits, obfuscation, watermarking, penetration testingInferenceAdversarial inputs, spoofed accessInput filtering, endpoint auth, encryption, TEEsStorage and deploymentModel theft, tamperingEncrypted containers, signed builds, MFA, anomaly monitoringTraining: your model is only as good as its dataThe training phase sets the foundation. If the data going in is poisoned, biased, or tampered with, the model will learn all the wrong lessons and carry those flaws into production.Why it mattersData poisoning is subtle. You won’t see a red flag during training logs or a catastrophic failure at launch. These attacks don’t break training, they bend it.A poisoned model may appear functional, but behaves unpredictably, embeds logic triggers, or amplifies harmful bias. The impact is serious later in the AI workflow: compromised outputs, unexpected behavior, or regulatory non-compliance…not due to drift, but due to training-time manipulation.How to protect itValidate datasets with schema checks, label audits, and outlier detection.Version, sign, and hash all training data to verify integrity and trace changes.Apply RBAC and identity-aware proxies (like OPA or SPIFFE) to limit who can alter or inject data.Use adversarial training to improve model robustness against manipulated inputs.Development and testing: guard the logicOnce you’ve got a trained model, the next challenge is protecting the logic itself: what it knows and how it works. The goal here is to make attacks economically unfeasible.Why it mattersModels encode proprietary logic. When exposed via poorly secured APIs or unprotected inference endpoints, they’re vulnerable to:Model inversion: Extracting training dataExtraction: Reconstructing logicMembership inference: Revealing whether a datapoint was in trainingHow to protect itApply rate limits, logging, and anomaly detection to monitor usage patterns.Disable model export by default. Only enable with approval and logging.Use quantization, pruning, or graph obfuscation to reduce extractability.Explore output fingerprinting or watermarking to trace unauthorized use in high-value inference scenarios.Run white-box and black-box adversarial evaluations during testing.Integrate these security checks into your CI/CD pipeline as part of your MLOps workflow.Inference: real-time, real riskInference doesn’t get a free pass because it’s fast. Security needs to be just as real-time as the insights your AI delivers.Why it mattersAdversarial attacks exploit the way models generalize. A single pixel change or word swap can flip the classification.When inference powers fraud detection or autonomous systems, a small change can have a big impact.How to protect itSanitize input using JPEG compression, denoising, or frequency filtering.Train on adversarial examples to improve robustness.Enforce authentication and access control for all inference APIs—no open ports.Encrypt inference traffic with TLS. For added privacy, use trusted execution environments (TEEs).For highly sensitive cases, consider homomorphic encryption or SMPC—strong but compute-intensive solutions.Check out our free white paper on inference optimization.Storage and deployment: don’t let your model leakOnce your model’s trained and tested, you’ve still got to deploy and store it securely—often across multiple locations.Why it mattersUnsecured storage is a goldmine for attackers. With access to the model binary, they can reverse-engineer, clone, or rehost your IP.How to protect itStore models on encrypted volumes or within enclaves.Sign and verify builds before deployment.Enforce MFA, RBAC, and immutable logging on deployment pipelines.Monitor for anomalous access patterns—rate, volume, or source-based.Edge strategy: security that moves with your AIAs AI moves to the edge, centralized security breaks down. You need protection that operates as close to the data as your inference does.That’s why we at Gcore integrate protection into AI workflows from start to finish:WAAP and DDoS mitigation at edge nodes—not just centralized DCs.Encrypted transport (TLS 1.3) and in-node processing reduce exposure.Inline detection of API abuse and L7 attacks with auto-mitigation.180+ global PoPs to maintain consistency across regions.AI security is lifecycle securityNo single firewall, model tweak, or security plugin can secure AI workloads in isolation. You need defense in depth: layered, lifecycle-wide protections that work at the data layer, the API surface, and the edge.Ready to secure your AI stack from data to edge inference?Talk to our AI security experts

3 ways to safeguard your website against DDoS attacks—and why it matters

DDoS (distributed denial-of-service) attacks are a type of cyberattack in which a hacker overwhelms a server with an excessive number of requests, causing the server to stop functioning correctly and denying access to legitimate users. The volume of these types of attacks is increasing, with a 56% year-on-year rise recorded in late 2024, driven by factors including the growing availability of AI-powered tools, poorly secured IoT devices, and geopolitical tensions worldwide.Fortunately, there are effective ways to defend against DDoS attacks. Because these threats can target different layers of your network, a single tool isn’t enough, and a multi-layered approach is necessary. Businesses need to protect both the website itself and the infrastructure behind it. This article explores the three key security solutions that work together to protect your website—and the costly consequences of failing to prepare.The consequences of not protecting your website against DDoS attacksIf your website isn’t sufficiently protected, DDoS attacks can have severe and far-reaching impacts on your website, business, and reputation. They not only disrupt the user experience but can spiral into complex, costly recovery efforts. Safeguarding your website against DDoS attacks is essential to preventing the following serious outcomes:Downtime: DDoS attacks can exhaust server resources (CPU, RAM, throughput), taking websites offline and making them unavailable to end users.Loss of business/customers: Frustrated users will leave, and many won’t return after failed checkouts or broken sessions.Financial losses: By obstructing online sales, DDoS attacks can cause businesses to suffer substantial loss of revenue.Reputational damage: Websites or businesses that suffer repeated unmitigated DDoS attacks may cause customers to lose trust in them.Loss of SEO rankings: A website could lose its hard-won SEO ranking if it experiences extended downtime due to DDoS attacks.Disaster recovery costs: DDoS disaster recovery costs can escalate quickly, encompassing hardware replacement, software upgrades, and the need to hire external specialists.Solution #1: Implement dedicated DDoS protection to safeguard your infrastructureAdvanced DDoS protection measures are customized solutions designed to protect your servers and infrastructure against DDoS attacks. DDoS protection helps defend against malicious traffic designed to crash servers and interrupt service.Solutions like Gcore DDoS Protection continuously monitor incoming traffic for suspicious patterns, allowing them to automatically detect and mitigate attacks in real time. If your resources are attacked, the system filters out harmful traffic before it reaches your servers. This means that real users can access your website without interruption, even during an attack.For example, a financial services provider could be targeted by cybercriminals attempting to disrupt services with a large-scale volumetric DDoS attack. With dedicated DDoS protection, the provider can automatically detect and filter out malicious traffic before it impacts users. Customers can continue to log in, check balances, and complete transactions, while the system adapts to the evolving nature of the attack in the background, maintaining uninterrupted service.The protection scales with your business needs, automatically adapting to higher traffic loads or more complex attacks. Up-to-date reports and round-the-clock technical support allow you to keep track of your website status at all times.Solution #2: Enable WAAP to protect your websiteGcore WAAP (web application and API protection) is a comprehensive solution that monitors, detects, and mitigates cyber threats, including DDoS layer 7 attacks. WAAP uses AI-driven algorithms to monitor, detect, and mitigate threats in real time, offering an additional layer of defense against sophisticated attackers. Once set up, the system provides powerful tools to create custom rules and set specific triggers. For example, you can specify the conditions under which certain requests should be blocked, such as sudden spikes in API calls or specific malicious patterns common in DDoS attacks.For instance, an e-commerce platform during a major sale like Black Friday could be targeted by bots attempting to flood the site with fake login or checkout requests. WAAP can differentiate between genuine users and malicious bots by analyzing traffic patterns, rate of requests, and attack behaviors. It blocks malicious requests so that real customers can continue to complete transactions without disruption.Solution #3: Connect to a CDN to strengthen defenses furtherA trustworthy content delivery network (CDN) is another valuable addition to your security stack. A CDN is a globally distributed server network that ensures efficient content delivery. CDNs spread traffic across multiple global edge servers, reducing the load on the origin server. During a DDoS attack, a CDN with DDoS protection can protect servers and end users. It filters traffic at the edge, blocking threats before they ever reach your infrastructure. Caching servers within the CDN network then deliver the requested content to legitimate users, preventing network congestion and denial of service to end users.For instance, a gaming company launching a highly anticipated multiplayer title could face a massive surge in traffic as players around the world attempt to download and access the game simultaneously. This critical moment also makes the platform a prime target for DDoS attacks aimed at disrupting the launch. A CDN with integrated DDoS protection can absorb and filter out malicious traffic at the edge before it reaches the core infrastructure. Legitimate players continue to enjoy fast downloads and seamless gameplay, while the origin servers remain stable and protected from overload or downtime.In addition, Super Transit intelligently routes your traffic via Gcore’s 180+ point-of-presence global network, proactively detecting, mitigating, and filtering DDoS attacks. Even mid-attack, users experience seamless access with no interruptions. They also benefit from an enhanced end-user experience, thanks to shorter routes between users and servers that reduce latency.Taking the next steps to protect your websiteDDoS attacks pose significant threats to websites, but a proactive approach is the best way to keep your site online, secure, and resilient. Regardless of your industry or location, it’s crucial to take action to safeguard your website and maintain its uninterrupted availability.Enabling Gcore DDoS protection is a simple and proven way to boost your digital infrastructure’s resiliency against different types of DDoS attacks. Gcore DDoS protection also integrates with other security solutions, including Gcore WAAP, which protects your website and CDNs. These tools work seamlessly together to provide advanced website protection, offering improved security and performance in one intuitive platform.If you’re ready to try Gcore Edge Security, fill in the form below and one of our security experts will be in touch for a personalized consultation.

From reactive to proactive: how AI is transforming WAF cybersecurity solutions

While digital transformation in recent years has driven great innovation, cyber threats have changed in parallel, evolving to target the very applications businesses rely on to thrive. Traditional web application security measures, foundational as they may be, are no longer effective in combating sophisticated attacks in time. Enter the next generation of WAFs (web application firewalls) powered by artificial intelligence.Next-generation WAFs, often incorporated into WAAP solutions, do much more than respond to threats; instead, they will use AI and ML-powered techniques to predict and neutralize threats in real time. This helps businesses to stay ahead of bad actors by securing applications, keeping valuable data safe, and protecting hard-earned brand reputations against ever-present dangers in an expanding digital world.From static to AI-powered web application firewallsTraditional WAFs were relied on to protect web applications against known threats, such as SQL injection and cross-site scripting. They’ve done a great job as the first line of defense, but their reliance on static rules and signature-based detection means they struggle to keep up with today’s fast-evolving cyber threats. To understand in depth why traditional WAFs are no longer sufficient in today’s threat landscape, read our ebook.AI and ML have already revolutionized what a WAF can do. AI/ML-driven WAFs can examine vast streams of traffic data and detect patterns, including new threats, right at the emergence stage. The real-time adaptability that this allows is effective even against zero-day attacks and complex new hacking techniques.How AI-powered WAP proactively stops threatsOne of the most significant advantages of AI/ML-powered WAFs is proactive identification and prevention capabilities. Here's how this works:Traffic pattern analysis: AI systems monitor both incoming and outgoing traffic to set up baselines for normal behavior. This can then allow for the detection of anomalies that could show a zero-day attack or malicious activity.Real-time decision making: Machine learning models keep learning from live traffic and detect suspicious activities on the go sans waiting for any updates in the rule set. This proactive approach ensures that businesses are guarded from emerging threats before they escalate.Heuristic tagging and behavioral insights: Advanced heuristics used by AI-driven systems tag everything from sessionless clients to unusual request frequencies. It helps administrators classify potential bots or automated attacks much faster.Ability to counter zero-day attacks: Traditional WAF solutions can only mitigate attacks that are already in the process of accessing sensitive areas. AI/ML-powered WAFs, on the other hand, can use data to identify and detect patterns indicative of future attacks, stopping attackers in their tracks and preventing future damage.Intelligent policy management: Adaptive WAFs detect suspicious activity and alert users to misconfigured security policies accordingly. They reduce the need for manual configuration while assuring better protection.Integrated defense layers: One of the strongest features of AI/ML-powered systems is the ease with which they integrate other layers of security, including bot protection and DDoS mitigation, into a connected architecture that protects several attack surfaces.User experience and operational impactAI-driven WAFs improve the day-to-day operations of security teams by transforming how they approach threat management. With intuitive dashboards and clearly presented analytics, as offered by Gcore WAAP, these tools empower security professionals to quickly interpret complex data, streamline decision-making, and respond proactively to threats.Instead of manually analyzing vast amounts of traffic data, teams now receive immediate alerts highlighting critical security events, such as abnormal IP behaviors or unusual session activity. Each alert includes actionable recommendations, enabling rapid adjustments to security policies without guesswork or delay.By automating the identification of sophisticated threats such as credential stuffing, scraping, and DDoS attacks, AI-powered solutions significantly reduce manual workloads. Advanced behavioral profiling and heuristic tagging pinpoint genuine threats with high accuracy, allowing security teams to concentrate their efforts where they're most needed.Embracing intelligent security with Gcore’s AI-driven WAAPOur AI-powered WAAP solution provides intelligent, interrelated protection to empower companies to actively outperform even the most sophisticated, ever-changing threats by applying advanced traffic analysis, heuristic tagging, and adaptive learning. With its cross-domain functionality and actionable security insights, this solution stands out as an invaluable tool for both security architects and strategic decision-makers. It combines innovation and practicality to address the needs of modern businesses.Curious to learn more about WAAP? Check out our ebook for cybersecurity best practices, the most common threats to look out for, and how WAAP can safeguard your businesses’ digital assets. Or, get in touch with our team to learn more about Gcore WAAP.Learn why WAAP is essential for modern businesses with a free ebook

How AI helps prevent API attacks

APIs have become an integral part of modern digital infrastructure, and it can be easy to take their security for granted. But, unfortunately, APIs are a popular target for attackers. Hackers can use APIs to access crucial data and services, and breaching APIs allows attackers to bypass traditional security controls.Most companies focus on speed of development and deployment ahead of security when crafting APIs, making them vulnerable to issues like insecure authentication, poor validation, or misconfigured endpoints, which attackers can abuse. Additionally, the interconnected nature of APIs creates multiple endpoints, widening the attack surface and creating additional points of entry that attackers can exploit.As threats evolve and the attack surface grows to include more API endpoints, integrating AI threat detection and mitigation is an absolute must for businesses to take serious, deliberate action against API cyberattacks. Let’s find out why.Staying ahead of zero-day API attacksOf all the cyber attacks that commonly threaten APIs, zero-day attacks, leveraging unknown vulnerabilities, are probably the toughest to defeat. Traditional solutions rely more on the existence of preconfigured rules or signatures along with human interference to detect and block such attacks. This approach often fails against novel threats and can block legitimate traffic, leaving applications vulnerable and making APIs inaccessible to users.APIs must balance between allowing legitimate users access and maintaining security. AI and ML technologies excel at identifying zero-day attacks based on pattern and behavior analysis rather than known signatures. For instance, heuristic algorithms can detect anomalies, such as sudden spikes in unusual traffic or behaviors indicative of malicious intent.Consider the following example: A certain IP address makes an abnormally large number of requests to a rarely accessed endpoint. Even without prior knowledge of the IP or attack vector, an AI/ML-enhanced solution can flag the activity as suspicious and block it proactively. Using minimal indicators, such as frequency patterns or traffic anomalies, AI can stop attackers before they fully exploit vulnerabilities. Additionally, this means that only suspicious IPs are blocked, and legitimate users can continue to access APIs unimpeded.The risks of shadow APIsOne of the biggest risks is shadow APIs, which are endpoints that exist but aren't documented or monitored. These can arise from configuration mistakes, forgotten updates, or even rogue development practices. These unknown APIs are the ideal target for Layer 7 attacks, as they are often left undefended, making them easy targets.AI-powered API discovery tools map both known and unknown API endpoints, enabling the grouping and management of these endpoints so sensitive APIs can be properly secured. This level of visibility is critical to securing systems against API-targeting attacks; without it, businesses are left in the dark.API discovery as a critical security practiceWAAP with AI/ML capabilities excels in API security because it accurately checks and analyzes API traffic. The Gcore API discovery engine offers 97 to 99 percent accuracy, mapping APIs in users’ domains and using data to recommend policies to help secure APIs.How heuristics enhance WAAP AI capabilities to protect APIsWhile AI and ML form the backbone of modern WAAPs, heuristic methods complement them in enhancing detection accuracy. Heuristics allow the system to inspect granular behaviors, such as mouse clicks or scrolling patterns, which distinguish legitimate users from bots.For example, most scraping attacks involve automated scripts that interact with APIs in predictable and repetitive manners. In those cases, WAAP can use request patterns or user action monitoring to identify the script with high accuracy. Heuristics may define bots by checking how users interact with page elements, such as buttons or forms, and flagging those that behave unnaturally.This layered approach ensures that the most sophisticated automated attack attempts are caught in the net and mitigated without affecting legitimate traffic.Protect your APIs with the click of a button using Gcore WAAPAI offers proactive, intelligent solutions that can address the modern complexities of cybersecurity. These technologies empower organizations to secure APIs against even the most sophisticated threats, including zero-day vulnerabilities and undiscovered APIs.Interested in protecting your APIs with WAAP? Download our ebook to discover cybersecurity best practices, the most prevalent threats, and how WAAP can protect your business’s digital infrastructure, including APIs. Or, reach out to our team to learn more about Gcore WAAP.Discover why WAAP is a must-have for API protection

11 simple tips for securing your APIs

A vast 84% of organizations have experienced API security incidents in the past year. APIs (application programming interfaces) are the backbone of modern technology, allowing seamless interaction between diverse software platforms. However, this increased connectivity comes with a downside: a higher risk of security breaches, which can include injection attacks, credential stuffing, and L7 DDoS attacks, as well as the ever-growing threat of AI-based attacks.Fortunately, developers and IT teams can implement DIY API protection. Mitigating vulnerabilities involves using secure coding techniques, conducting thorough testing, and applying strong security protocols and frameworks. Alternatively, you can simply use a WAAP (web application and API protection) solution for specialized, one-click, robust API protection.This article explains 11 practical tips that can help protect your APIs from security threats and hacking attempts, with examples of commands and sample outputs to provide API security.#1 Implement authentication and authorizationUse robust authentication mechanisms to verify user identity and authorization strategies like OAuth 2.0 to manage access to resources. Using OAuth 2.0, you can set up a token-based authentication system where clients request access tokens using credentials. # Requesting an access token curl -X POST https://yourapi.com/oauth/token \ -d "grant_type=client_credentials" \ -d "client_id=your_client_id" \ -d "client_secret=your_client_secret" Sample output: { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", "token_type": "bearer", "expires_in": 3600 } #2 Secure communication with HTTPSEncrypting data in transit using HTTPS can help prevent eavesdropping and man-in-the-middle attacks. Enabling HTTPS may involve configuring your web server with SSL/TLS certificates, such as Let’s Encrypt with nginx. sudo certbot --nginx -d yourapi.com #3 Validate and sanitize inputValidating and sanitizing all user inputs protects against injection and other attacks. For a Node.js API, use express-validator middleware to validate incoming data. app.post('/api/user', [ body('email').isEmail(), body('password').isLength({ min: 5 }) ], (req, res) => { const errors = validationResult(req); if (!errors.isEmpty()) { return res.status(400).json({ errors: errors.array() }); } // Proceed with user registration }); #4 Use rate limitingLimit the number of requests a client can make within a specified time frame to prevent abuse. The express-rate-limit library implements rate limiting in Express.js. const rateLimit = require('express-rate-limit'); const apiLimiter = rateLimit({ windowMs: 15 * 60 * 1000, // 15 minutes max: 100 }); app.use('/api/', apiLimiter); #5 Undertake regular security auditsRegularly audit your API and its dependencies for vulnerabilities. Runnpm auditin your Node.js project to detect known vulnerabilities in your dependencies.  npm audit Sample output: found 0 vulnerabilities in 1050 scanned packages #6 Implement access controlsImplement configurations so that users can only access resources they are authorized to view or edit, typically through roles or permissions. The two more common systems are Role-Based Access Control (RBAC) and Attribute-Based Access Control (ABAC) for a more granular approach.You might also consider applying zero-trust security measures such as the principle of least privilege (PoLP), which gives users the minimal permissions necessary to perform their tasks. Multi-factor authentication (MFA) adds an extra layer of security beyond usernames and passwords.#7 Monitor and log activityMaintain comprehensive logs of API activity with a focus on both performance and security. By treating logging as a critical security measure—not just an operational tool—organizations can gain deeper visibility into potential threats, detect anomalies more effectively, and accelerate incident response.#8 Keep dependencies up-to-dateRegularly update all libraries, frameworks, and other dependencies to mitigate known vulnerabilities. For a Node.js project, updating all dependencies to their latest versions is vital. npm update #9 Secure API keysIf your API uses keys for access, we recommend that you make sure that they are securely stored and managed. Modern systems often utilize dynamic key generation techniques, leveraging algorithms to automatically produce unique and unpredictable keys. This approach enhances security by reducing the risk of brute-force attacks and improving efficiency.#10 Conduct penetration testingRegularly test your API with penetration testing to identify and fix security vulnerabilities. By simulating real-world attack scenarios, your organizations can systematically identify vulnerabilities within various API components. This proactive approach enables the timely mitigation of security risks, reducing the likelihood of discovering such issues through post-incident reports and enhancing overall cybersecurity resilience.#11 Simply implement WAAPIn addition to taking the above steps to secure your APIs, a WAAP (web application and API protection) solution can defend your system against known and unknown threats by consistently monitoring, detecting, and mitigating risks. With advanced algorithms and machine learning, WAAP safeguards your system from attacks like SQL injection, DDoS, and bot traffic, which can compromise the integrity of your APIs.Take your API protection to the next levelThese steps will help protect your APIs against common threats—but security is never one-and-done. Regular reviews and updates are essential to stay ahead of evolving vulnerabilities. To keep on top of the latest trends, we encourage you to read more of our top cybersecurity tips or download our ultimate guide to WAAP.Implementing specialized cybersecurity solutions such as WAAP, which combines web application firewall (WAF), bot management, Layer 7 DDoS protection, and API security, is the best way to protect your assets. Designed to tackle the complex challenges of API threats in the age of AI, Gcore WAAP is an advanced solution that keeps you ahead of security threats.Discover why WAAP is a non-negotiable with our free ebook

Subscribe to our newsletter

Get the latest industry trends, exclusive insights, and Gcore updates delivered straight to your inbox.