FutureForgeFutureForge

FutureForge services

  • Product developmentFrom problem to a product that works in the real world.
  • Full-stack developmentBuild frontend, API, and data as one product.
  • Engineering auditBefore you spend more, know the real state of the system.
  • Architecture consultingClarify the path before an expensive technical decision.
  • Infrastructure & deploymentDeploy the product so it stays reliable after launch.
  • AI in productWe do not add AI for show — we add it to solve a problem.
WorkPricingAbout
Start a conversation
  1. Home
  2. /Notes
  3. /Notes
FutureForge

Product engineering studio — design, build, and deploy software.

Services

WordPress websitesCustom developmentProduct engineeringInfrastructure & deploymentArchitecture consultingAI in product

How to choose

PricingEstimate project costCompare approachesPortfolioAboutContact

Contact

hello@futureforge.ir

Have something to build?

Share what you need and we will talk through the development path and next step.

Start a conversation

© 2026 FutureForge. All rights reserved.

PrivacyTerms of use
HomeWorkStartContact
Product engineering

اعتبارسنجی فرم: مرورگر، سرور یا هر دو؟

مرورگر برای بازخورد سریع، سرور برای قاعدهٔ واقعی. جدول «کدام بررسی کجا» بر پایهٔ MDN، OWASP و WCAG برای تجربهٔ خطا و امنیت ورودی.

SE
Soheil Ebrahimpour

Founder & product engineer

·Oct 18, 2026·4 min read
اعتبارسنجی فرمvalidationOWASPWCAGپیام خطا
فرم آنلاین با یک فیلد دارای پیام خطای متنی و نشانگر ایمن‌بودن

«اعتبارسنجی در مرورگر کافی است؟» پاسخ کوتاه: نه. مرورگر برای راحتی کاربر است و سرور برای درستی داده و امنیت. این مقاله دو هدف را جدا می‌کند و جدول «کدام بررسی کجا» می‌دهد. مبانی طراحی فرم در فرم‌های خوب چگونه طراحی می‌شوند؟ آمده و اینجا فقط جایگاه فنی بررسی‌ها را می‌گوییم.

دو هدف جدا

MDN می‌گوید اعتبارسنجی سمت کلاینت بررسی اولیه و بخش مهمی از تجربهٔ کاربری خوب است چون کاربر بلافاصله می‌تواند خطا را اصلاح کند، بدون رفت‌وبرگشت به سرور. در همان صفحه تأکید می‌شود این بررسی را نباید اقدام امنیتی کامل دانست و روی سرور هم باید اعتبارسنجی، از جمله بررسی امنیتی، انجام شود چون دور زدن سمت کلاینت آسان است. OWASP هم در بخش خطاهای رایج می‌نویسد «بررسی فقط سمت کلاینت» خطاست: حتی اگر مرورگر همان فیلدها را بررسی می‌کند، سرور هم باید بررسی کند و سمت کلاینت برای بازخورد فوری است.

کدام بررسی کجا؟

جایگاه بررسی‌های فرم (الگوی پیشنهادی نویسنده)
بررسیمرورگرسرور
فیلد اجباری خالی نباشدبله، برای بازخورد سریعبله، قاعدهٔ اصلی
قالب (ایمیل، تلفن، تاریخ)بله، قالب سادهبله، با قاعدهٔ دقیق
محدودهٔ مقدار و طولاختیاریالزامی
یکتایی (ایمیل تکراری)فقط راهنماالزامی
مجوز کاربر برای این عملیاتنهالزامی
قواعد کسب‌وکار (موجودی، سقف)راهنماالزامی
دو لایه مرورگر و سرور
نمودار مفهومی: دو لایهٔ اعتبارسنجی.

در مرورگر: HTML پیش از JavaScript

MDN توضیح می‌دهد HTML با attributeهای اعتبارسنجی می‌تواند فیلد ضروری و قالب معتبر را بدون JavaScript تعیین کند و اعتبارسنجی HTML سریع‌تر از JavaScript است؛ JavaScript معمولاً برای بهبود یا سفارشی‌سازی همان می‌آید. پس مسیر پیشنهادی: اول attributeهای استاندارد، بعد پیام‌های سفارشی.

در سرور: قاعدهٔ واقعی

OWASP چند نکتهٔ دقیق دارد که ارزش دارد در بازبینی کد بپرسید: تبدیل متن به عدد فقط نوع را مشخص می‌کند و مقدار قابل‌قبول را نه؛ حذف یا «تمیزکردن» کاراکترهای مشکوک جای تعریف قاعدهٔ پذیرش هر فیلد را نمی‌گیرد (مثلاً بستن آپوستروف نام‌های معتبر را رد می‌کند بی‌آنکه کوئری را ایمن کند)؛ اعتبارسنجی قالب ایمیل دسترسی به صندوق را اثبات نمی‌کند؛ و برای متن آزاد می‌توان یونیکد گسترده را با محدودیت طول پذیرفت و لازم نیست فقط حرف و عدد مجاز باشد. این آخری برای متن فارسی مهم است: قاعدهٔ «فقط حروف انگلیسی» نام‌های فارسی را رد می‌کند.

پیام خطا

معیار 3.3.1 در WCAG 2.2 (سطح A) می‌گوید اگر خطای ورودی خودکار تشخیص داده شود، آیتم خطادار شناسایی و خطا به‌صورت متن توصیف شود و فقط نمایش دوبارهٔ فرم کافی نیست. معیار 3.3.3 (سطح AA) اضافه می‌کند اگر راه اصلاح شناخته‌شده است باید پیشنهاد داده شود، مگر امنیت یا هدف محتوا را به خطر بیندازد. مثال: «ایمیل باید @ داشته باشد، مثل name@example.com» بهتر از «ورودی نامعتبر» است.

اشتباه‌های رایج

  • اعتماد به مرورگر و حذف بررسی سرور.
  • پیام کلی «خطا» بدون اینکه بگوید کدام فیلد و چه چیزی.
  • تکیه بر رنگ برای نمایش خطا؛ متن لازم است.
  • رد کردن ورودی معتبر فارسی با قاعدهٔ لاتین.
  • تصور اینکه تأیید قالب ایمیل یعنی ایمیل واقعی است.

برای تعریف «آمادهٔ تولید»، Production-Ready را ببینید. اگر می‌خواهید فرم‌های محصولتان را با یک تیم بازبینی کنید، صفحهٔ شروع پروژه را ببینید؛ ارسال فرم تعهدی ایجاد نمی‌کند.

منابع و مراجع

  • Client-side form validation — MDN Web Docs (Mozilla).
  • Input Validation Cheat Sheet — OWASP Cheat Sheet Series.
  • Understanding Success Criterion 3.3.1: Error Identification (WCAG 2.2) — W3C WAI، WCAG 2.2.
  • Understanding Success Criterion 3.3.3: Error Suggestion (WCAG 2.2) — W3C WAI، WCAG 2.2.

Author

SE

Soheil Ebrahimpour is the founder of FutureForge. He works on product design, architecture, and getting custom software into production.

Related notes

Related notes

Categories

Related services

From note to project

If this topic is close to your product or system, we can talk about the real scope.

If you are unsure about architecture or the build path, we can talk about the project.

Describe the problem and the constraints. If there is a fit, we will schedule a conversation.

Soheil Ebrahimpour
Notes
ارزیابی طراحی واکنش‌گرا روی دستگاه‌های واقعی: چک‌لیست چهارلایه
Empty State، Error State و Loading State چیست؟
چرا متن بد می‌تواند حتی یک UI زیبا را خراب کند؟
UX Writing چیست و چرا متن‌های سایت بخشی از تجربه کاربری هستند؟
طراحی داشبورد: از تصمیم کاربر شروع کنید، نه از نمودار

Product engineering

ارزیابی طراحی واکنش‌گرا روی دستگاه‌های واقعی: چک‌لیست چهارلایه

Oct 18, 2026

Product engineering

Empty State، Error State و Loading State چیست؟

Sep 20, 2026

Product engineering

چرا متن بد می‌تواند حتی یک UI زیبا را خراب کند؟

Sep 20, 2026

Product engineering

UX Writing چیست و چرا متن‌های سایت بخشی از تجربه کاربری هستند؟

Sep 20, 2026

Product engineering

طراحی داشبورد: از تصمیم کاربر شروع کنید، نه از نمودار

Oct 19, 2026
All notes245
Software architecture15
Glossary37
Operations87
Product engineering94
Web guide12
Product engineering
Full-stack engineering
Engineering audit
Architecture consulting
Infrastructure and deployment
Start a conversation
Free tools
Start a conversation