Online stores are high-value targets: cards, accounts, inventory, and customer trust all sit in one stack. You do not need a scare piece about “eat or be eaten.” You need controls that keep checkout working and make compromise harder and recoverable.

Risks that actually show up in stores
Cross-site scripting (XSS)
Stores lean on search boxes, reviews, and forms. Without careful output escaping, XSS can steal sessions or inject fake content near checkout.
SQL injection
Bad input handling against the database can expose orders, customers, or admin data. Modern WordPress APIs help, but custom SQL and neglected plugins still create SQL injection risk.
Malicious bots
Bots scrape prices, hammer login and checkout, hold inventory with fake carts, and burn CPU on junk URLs. Some of that traffic is noisy; some is quiet until margins suffer. Pair performance work with WAF / rate limits, not only caching.
Account takeover and admin abuse
Stolen staff credentials beat fancy exploits. Brute force and phishing still work against stores that leave wp-admin wide open.
Five practical protections
1. Use HTTPS everywhere

Run the whole store on SSL/TLS (HTTPS), including cart, account, and admin. Fix mixed content. Customers notice padlocks less than they notice browser warnings. HTTPS encrypts transit; it does not replace patching or MFA.
2. Harden logins and roles
Require two-factor authentication for administrators and anyone who can install plugins. Limit failed logins. Keep Administrator rare. Staff who only edit products should not get full admin.
For WooCommerce-specific depth, see our WooCommerce security guide.
3. Keep the commerce stack updated
WordPress, WooCommerce, payment extensions, and PHP all need a supported, patched baseline. Remove abandoned payment gateways and “temporary” plugins that never left. Test updates on staging when checkout is involved.
4. Be honest about payments and card data
Prefer reputable gateways (Stripe, PayPal, and similar) that tokenize or host card entry so primary account numbers are not stored in WordPress. That reduces your PCI scope; it does not make you “PCI compliant” by slogan alone.
Never store raw card data in the database “for convenience.” Enable fraud tools your gateway offers. Watch for skimmer-style malware that injects fake fields on checkout.
5. Filter junk traffic and keep restores ready
Put a WAF or Cloud Firewall in front of abusive patterns. Back up files and database offsite on a schedule you have actually restored from. After an incident, clean credentials, users, and webhooks before you reopen checkout.
Usability testing and privacy compliance (GDPR, CCPA, and others that apply to you) still matter for trust and law. They complement security; they do not replace login hardening and patching.
SaaS vs self-hosted WordPress
Hosted platforms (for example Shopify) shift a lot of infrastructure security to the vendor. Self-hosted WooCommerce gives you control and responsibility: server, plugins, and admin hygiene are yours. Neither model removes the need for strong staff accounts and careful apps/extensions.
Short store checklist
Protecting ecommerce is mostly boring discipline under load. Do the basics well, keep payment architecture honest, and practice recovery before you need it.