AI chatbot security - Sabriel Agency

 

A chat widget looks like a simple thing: it opens, it writes, it replies. What decides whether to trust it or not is never visible in that little window. It’s in what happens when someone tries to break into the admin account two hundred times in a minute, in what happens when someone tries to get the bot to write a price that doesn’t exist, in where the API key for the chosen engine ends up. Most pages that sell an AI assistant never talk about any of this. This guide does, with the real mechanisms, not the summarized version for a general audience.

AI chatbot security is measured in details like these, not in the claims on a sales page.

Anyone who’s already read Sabriel AI’s overview knows what the assistant does: it books appointments, prepares quotes, and qualifies warm and cold leads. This piece is about how it’s built to do that without becoming the weak point of the site it lives on, and without being tricked by anyone who tries.

Anyone looking for the general picture of what an AI WordPress assistant does can start there; here the focus is entirely on the AI chatbot security of the system behind it.

A Plugin Made of Modules, Not One Giant Block

There’s no single giant file that does everything. Every feature, from quote management to the lead-scoring thermometer, from the site’s knowledge engine to the dashboard, lives in its own separate module, with its own class and its own responsibilities. A flaw in one module, the PDF quotes module, say, cannot spread to the module that manages site access, because they don’t share the same code space.

This separation between modules is the project’s first real AI chatbot security choice, even before any explicit control.

Above this structure sits a shared base layer, which handles settings, opening hours, and the functions common to all modules, encryption included: the point where the logic that has to stay identical everywhere converges.

An error in this shared layer would ripple out to every connected module: that’s why it matters just as much as the others for AI chatbot security.

Three AI Engines, Seventeen Models, and the Problems That Start Right There

Sabriel AI doesn’t have a built-in AI engine: it connects directly to the APIs of Anthropic Claude, OpenAI, and Google Gemini, using a key the site owner chooses and pays for. These are three separate native integrations, each with its own request format and its own quirks, not one generic adapter that treats every provider the same way and hopes for the best.

Handling each provider on its own, instead of one shared adapter, also isolates problems: a fault in one engine doesn’t touch the AI chatbot security of the other two.

The site owner picks the exact model from a list of seventeen, six for Gemini, six for OpenAI, five for Claude, each with its price per million tokens shown plainly next to its name, from the cheapest option recommended for a chat widget to the most powerful ones for anyone who wants the best available. And if a provider releases a new model that isn’t on the list yet, there’s no need to wait for a plugin update: a “Custom model” option opens a field where the exact identifier can be typed in by hand, validated and used right away.

A model added by hand doesn’t skip this check: it stays under the same AI chatbot security as the other sixteen.

The quirks between the three providers are real. Google Gemini won’t let you lower the model’s temperature enough to guarantee a pure JSON response when the plugin needs one for internal reasons: it has to be explicitly requested from the API, and if a specific model refuses it, the plugin remembers and avoids asking again next time. OpenAI’s more recent models, the ones that reason before answering, use up part of the response budget on reasoning the visitor never sees: the plugin accounts for this and widens the available margin, without costing the person paying any more, because you only pay for what the model actually uses.

Then there’s the timing problem. Before this behavior was limited with a precise cap, a single message could keep the server busy for up to 44 seconds with Gemini or up to 88 with OpenAI across the various attempts, well past the execution limit that almost every host imposes. The result for the visitor wasn’t a clear error, but a connection that closed on its own with a message that looks like a network fault. The current cap is calibrated to the time of a single attempt: the first one, the one most likely to succeed, is never shortened.

Response times are, in every practical sense, AI chatbot security: they decide whether the server stays stable or locks up.

The Bot Doesn’t Decide on Its Own What’s True

An assistant that talks to customers and prepares documents with real prices is only useful if it can’t be talked into making something up. Sabriel AI carefully separates two things that stay tangled together in many chatbots: what the assistant says in conversation, and what actually happens on the site.

This distinction between talking and acting sits at the center of the whole system’s AI chatbot security.

The assistant never touches a calendar or a price list directly: it proposes an action, and a separate piece of code checks it against real data before anything actually happens. The price that ends up on a PDF quote always comes from the price list the site owner wrote in settings, never from whatever the assistant typed in chat. And if, despite this, a generated quote shows an unusually high total compared to the configured price list, the owner gets an email with the subject “HIGH AMOUNT WARNING” and an explicit heads-up: check that it’s a genuine quote and not an attempt to get the bot to write down a random figure, before treating it as valid. It’s a check built specifically for cases where someone tries to talk the assistant into promising something it shouldn’t.

The price check is AI chatbot security applied at the most delicate point: where generated text turns into a document with real financial value.

The same principle applies to declared capabilities: the assistant only describes the features actually active on that specific installation, not a generic list of everything Sabriel AI could theoretically do. If site control or PDF quotes aren’t configured on an installation, the assistant doesn’t even mention them as future possibilities: promising them would be unfair to the customer it’s talking to. And if someone asks which technology makes it work, it answers with the name of the business it works for, not the name of the underlying AI engine: the less an outsider knows about what’s behind it, the harder it is to build a tailored attempt to trick it.

Not revealing the underlying engine is a small but real form of AI chatbot security, designed to avoid making life easier for anyone trying to deceive it.

Every PDF Has a Signature, Not a Serial Number

Quotes and other documents generated by the bot aren’t files that anyone who knows or guesses an address can reach. Every download link carries a signed token, calculated on the specific document and the email of the customer it belongs to: the server checks it before handing anything over, and without a valid signature for that exact document, the download simply doesn’t start. So just incrementing a number in a URL isn’t enough to open someone else’s generated quote, a mistake that happens on other systems more often than you’d think.

Signing every document, instead of relying on a sequential number, is one of the most concrete examples of how AI chatbot security protects customer data.

What Could Fail Silently, and Doesn’t

A theme that runs through the whole plugin is what happens when something stops working without anyone noticing. API keys are encrypted with AES-256-CBC, using a key derived from the unique one WordPress generates for each installation, with a random initialization vector on every save. On some servers, often the cheaper configurations, the extension needed for encryption isn’t available: in that case the key is still saved, because the alternative would be a bot that stops responding, but the panel says so explicitly to the owner instead of letting them believe everything is encrypted when it isn’t.

Disclosing when encryption isn’t available, instead of assuming it, is as much a part of AI chatbot security as actually applying it.

The same approach applies to email. Sabriel AI sends messages at five different moments: booking confirmations, chat transcripts, quotes, newsletter sign-ups, and history recovery for the customer. If the server fails to send them, normally all of them would fail without anyone noticing: the panel keeps working and customers simply receive nothing. That’s why there’s a dedicated check that logs the last failed delivery and the exact reason, visible on the system status page, instead of letting the problem surface only when a customer complains about never receiving anything.

A quote email that never arrives is, at bottom, as much an AI chatbot security issue as a blocked login: a customer left hanging without anyone knowing it.

That same status page sums up at a glance whether the security protections are actually active, how many out of the standard nine out of nine, whether encryption is available and working, whether customer documents are shielded from outside access: not generic claims, but real checks run on the installation at that moment.

This status page is where AI chatbot security stops being a written promise and becomes a verifiable number.

AI Chatbot Security: What Happens When Someone Tries to Get in Without Permission

Beyond protecting itself, Sabriel AI also protects the site it lives on, with an access-blocking system built on two independent scales that work together.

This double lock is probably the most visible piece of AI chatbot security, because it stops an attack while it’s happening.

The first scale watches the connection the attempts come from: 5 errors trigger a 15-minute pause, another 5 push it to an hour, another 5 after that trigger a 30-day block, not a permanent one. The second scale watches the targeted account, with the same progression, but at the third step the account stays locked until the owner reopens it, and they immediately get an email with a link to do it themselves in a few seconds.

AI chatbot security still leaves a way out for whoever has the right to get in, not just for whoever’s trying to get in without permission.

Both scales are needed, and it isn’t redundancy. Blocking only the connection isn’t enough: verified directly in the code, one hundred different networks managed to push through five hundred password attempts without ever triggering a block, because each network started fresh from zero. Blocking only the account isn’t enough either, because anyone could lock out the real owner by bombarding their username from different addresses, turning a defense into a weapon against the very person it’s supposed to protect. Put together, an attacker gets blocked on the connection before they can manage to lock someone else’s account.

This is where you see the difference between an AI chatbot security measure that’s claimed and one that’s actually verified in the code.

A few escape routes always stay active: an already-recognized device skips every block, anyone already logged into the site stays logged in, and a single line in wp-config.php can switch the whole thing off in an emergency. After 24 hours with no new errors, the count resets itself.

Planning for these exceptions is what separates well-designed AI chatbot security from security that’s simply rigid.

AI Chatbot Security: Four Ways to Discover a Username, All Closed

Discovering an administrator’s username is often the first step of an attack. Sabriel AI closes four routes through which WordPress tends to reveal it by default: REST API requests filtered by author, data returned by the oEmbed system, the XML author map generated by sitemaps, and the old ?author=1 address trick.

Hiding the username looks like a minor detail, but it closes off what’s almost always the first step of a bigger attack: it’s AI chatbot security, not just caution.

On that last one, there’s a detail worth noting that shows the difference between blocking something and blocking it properly. The author sitemap, disabled the most obvious way, doesn’t return an error: it returns the site’s homepage with a success code, under an address ending in .xml. It looks like it works but doesn’t all the way: the username doesn’t leak, but a search engine ends up indexing a duplicate copy of the homepage. Sabriel AI instead returns the exact same not-found signal WordPress would give with sitemaps turned off entirely.

It’s a precise example of how AI chatbot security plays out in the details, not in having ticked the right box in settings.

XML-RPC, Headers, and the Protections Almost No One Checks All the Way Through

XML-RPC is the long-standing channel WordPress uses to communicate with external applications, and it’s also one of the most heavily exploited targets for large-scale automated attacks. The way most security plugins disable it, with a simple switch on the xmlrpc_enabled filter, leaves seven out of seventy-seven commands exposed, because not all of them pass through that check. Among those seven is pingback.ping, the command used to amplify the mass attacks that switch is supposed to stop. Sabriel AI empties the entire list of available commands at the highest possible priority, so no other plugin can add any back afterward.

Closing off even the commands another plugin might accidentally reopen serves an AI chatbot security that lasts over time, not just on installation day.

These are all measures that also appear in WordPress’s official hardening documentation: nothing exotic, just the baseline every serious installation should have, here applied in a verified way rather than just claimed. On top of these come HTTP headers against clickjacking and forced file interpretation, hiding the WordPress version in use, and a real check, not just a stated one, for readme and license files still exposed on the server.

Each of these measures adds a layer to the installation’s overall AI chatbot security.

Anyone wanting the bigger picture of common vulnerabilities on a WordPress installation can read our guide to WordPress site security: what’s described here is specifically about what protects the assistant itself, and doesn’t replace a general audit of the installation.

Here we’re staying within the narrower perimeter of AI chatbot security, not the installation as a whole.

Routes Open to the Public, Protected All the Same

An assistant that talks to an anonymous visitor needs functions reachable without authentication: available time slots, creating a booking, the conversation itself with the AI engine. Being open doesn’t mean being undefended, and it doesn’t mean being uncontrolled either. Being open out of necessity doesn’t exclude them from AI chatbot security: they’re protected too, just differently.

Here’s what protects these public routes:

A 24-hour message limit, calculated jointly across network address, device, and the email provided, so that getting around just one of the three isn’t enough to beat the limit
Sanitizing of every submitted field before it’s saved, with disposable email addresses recognized and rejected in the booking form
Request-authenticity verification for anything that modifies data, present in ten separate files across the plugin
Administrative permission checks for functions reserved to the owner, from settings to technical audit results, used in nineteen files
Parameterized queries instead of hand-built text for every database query involving external data, the standard defense against SQL injection

Put together, these measures are the least visible but most constant part of AI chatbot security, the part that keeps working even when no one notices.

Why We’re Telling This in This Much Detail

An assistant that takes real appointments, generates documents with tax data, and talks to a business’s customers is a piece of infrastructure, and it should be judged by the same standards you’d judge infrastructure by, not the ones you’d use for a graphic widget.

That’s the same reason AI chatbot security deserves a page of its own, instead of two lines at the bottom of the product page.

Sabriel AI’s free version is public on WordPress.org, with a changelog that doesn’t just generically say bugs were fixed: it says which defect, how it showed up, and what the person using it saw. A good part of the details told on this page, from the cap on wait times to the retired model-name mapping, comes directly from there: from real behavior that was observed and fixed, not from a feature list dreamed up at a desk.

A changelog that actually says what broke is, in effect, AI chatbot security made verifiable by anyone, not just claimed.

If you’re evaluating an AI assistant for your business’s site, Sabriel AI’s page shows pricing and plans, while the free version can be downloaded from WordPress.org and checked line by line on your own, before ever installing it on a real site.

Seeing AI chatbot security with your own eyes before installing it is exactly the point of this article. Want to install Sabriel AI on your site or discuss a custom project? Request a free consultation.