Base44 security

Forms Accept Any Input Without Validation

Forms in your Base44 app accept and save any input without validation. Users can submit empty required fields, enter text in number fields, submit absurdly long strings, or inject HTML and scripts into text fields. This corrupts your data and can create security vulnerabilities.

Without validation, your database fills with garbage data: empty email fields, phone numbers with letters, negative quantities, and dates in the wrong format. Reports become unreliable, automated workflows break on bad data, and cleaning up the mess is time-consuming.

Worse, malicious users can inject scripts that execute when other users or admins view the submitted data, potentially stealing sessions or performing actions on their behalf.

Error Messages You Might See

Invalid data saved to database Form submitted with empty required fields Script executed when viewing submitted data Number field contains non-numeric value
Invalid data saved to databaseForm submitted with empty required fieldsScript executed when viewing submitted dataNumber field contains non-numeric value

Common Causes

  • No field constraints configured — Base44 form fields don't have required, min/max, or format rules set
  • Client-side validation only — HTML5 validation attributes exist but can be bypassed by submitting directly to the API
  • Text fields without length limits — Users can paste megabytes of text into a single field, bloating the database
  • Number fields accepting strings — Price, quantity, and age fields store whatever string is submitted
  • No sanitization of HTML content — Rich text or description fields accept raw HTML and JavaScript

How to Fix It

  1. Add required field rules — Mark all mandatory fields as required in both the form configuration and the data table schema
  2. Set field type constraints — Configure number fields to accept only numbers, email fields to validate email format, and date fields to accept only valid dates
  3. Add length limits — Set maximum character limits on text fields (e.g., 255 for names, 1000 for descriptions)
  4. Sanitize text input — Strip HTML tags from plain text fields and sanitize rich text fields to allow only safe HTML elements
  5. Add server-side validation rules — Configure validation at the data layer so it can't be bypassed by direct API calls

Real developers can help you.

Vlad Temian Vlad Temian 15+ years shipping production infrastructure for startups. Former CTO at qed.builders (acquired by The Sandbox). Cursor ambassador and agentic tooling builder. I've scaled systems, automated deployments, and built observability tools for AI coding workflows. I specialize in taking vibe-coded apps from broken prototype to production-ready: fixing Supabase auth/RLS, Stripe integrations, deployment pipelines, and cleaning up AI-generated spaghetti. I build tools in this space (agentprobe, claudebin, micode) and understand both sides: how AI generates code and why it breaks. https://blog.vtemian.com/ Omar Faruk Omar Faruk As a Product Engineer at Klasio, I contributed to end-to-end product development, focusing on scalability, performance, and user experience. My work spanned building and refining core features, developing dynamic website templates, integrating secure and reliable payment gateways, and optimizing the overall system architecture. I played a key role in creating a scalable and maintainable platform to support educators and learners globally. I'm enthusiastic about embracing new challenges and making meaningful contributions. Luca Liberati Luca Liberati I work on monoliths and microservices, backends and frontends, manage K8s clusters and love to design apps architecture rayush33 rayush33 JavaScript (React.js, React Native, Node.js) Developer with demonstrated industry experience of 4+ years, actively looking for opportunities to hone my skills as well as help small-scale business owners with solutions to technical problems Bastien Labelle Bastien Labelle Full stack dev w/ 20+ years of experience Nam Tran Nam Tran 10 years as fullstack developer Tejas Chokhawala Tejas Chokhawala Full-stack engineer with 5 years experience building production web apps using React, Next.js and TypeScript. Focused on performance, clean architecture and shipping fast. Experienced with Supabase/Postgres backends, Stripe billing, and building AI-assisted developer tools. Pratik Pratik SWE with 15+ years of experience building and maintaining web apps and extensive BE infrastructure AUXLE AUXLE I am a Full Stack Developer experienced in building Websites, Web apps and Cross Platform Mobile Apps for Startups and Companies. Prakash Prajapati Prakash Prajapati I’m a Senior Python Developer specializing in building secure, scalable, and highly available systems. I work primarily with Python, Django, FastAPI, Docker, PostgreSQL, and modern AI tooling such as PydanticAI, focusing on clean architecture, strong design principles, and reliable DevOps practices. I enjoy solving complex engineering problems and designing systems that are maintainable, resilient, and built to scale.

You don't need to be technical. Just describe what's wrong and a verified developer will handle the rest.

Get Help

Frequently Asked Questions

Why is client-side validation not enough?

Anyone can bypass browser validation by editing the HTML, disabling JavaScript, or sending requests directly to the API. Server-side or data-layer validation is the only reliable way to ensure data integrity.

How do I clean up existing bad data?

Export your table data, clean it in a spreadsheet by removing empty rows and fixing formats, then re-import. Going forward, add validation rules to prevent bad data from being saved.

Related Base44 Issues

Can't fix it yourself?
Real developers can help.

You don't need to be technical. Just describe what's wrong and a verified developer will handle the rest.

Get Help