نقشه سایت شما با وضعیت Success در Search Console ثبت شده، اما ۳۰٪ URLهایش Redirect، noindex یا Duplicate هستند و تاریخ lastmod همه آنها هر شب عوض میشود. XML از نظر Syntax سالم است؛ از نظر تصمیم ایندکس، فهرستی غیرقابل اعتماد ساختهاید. نقشه سایت XML فهرست «همه URLهای قابل تولید» نیست. یک Feed عملیاتی از […]
آرشیو نویسنده: محمد عسکری
عوامل مؤثر بر هزینه طراحی سایت را بشناسید: نوع پروژه، طراحی UI/UX، امکانات، محتوا، اتصالها، مهاجرت، تست و پشتیبانی در یک برآورد شفاف.
کامپایلر سبز است، اما پاسخ درگاه پرداخت چنین میرسد: { “amountRial”: “2500000” }. تیم در کد نوشته بود amountRial: number و با یک Type assertion پاسخ را «قابل اعتماد» اعلام کرده بود. برنامه در Production رشته را با عدد جمع میکند و خطای مالی میسازد. TypeScript شکست نخورده است؛ قراردادی را بررسی کرده که خود […]
مقالهای که امروز بازدید میگیرد، لزوماً «همیشهسبز» نیست؛ شاید فقط هنوز پیر نشده باشد. تفاوت زمانی آشکار میشود که قیمتها عوض شوند، رابط ابزار تغییر کند، یک بخشنامه تازه بیاید، لینکهای منبع از کار بیفتند یا نیت جستوجو از «آموزش» به «مقایسه» بچرخد. اگر برای این تغییرها مالک، Trigger و بودجه نگهداری ندارید، دارایی محتوایی […]
تیم یک فروشگاه ایرانی سه بار SQL Injection را «رفع» کرد؛ هر بار در Endpoint دیگری بازگشت. XSS هم پس از تعویض Editor دوباره ظاهر شد. مشکل کمبود WAF یا اسکن نبود: هر Developer راه خودش را برای Query و HTML داشت، هیچ Safe default مشترکی وجود نداشت و Findingها به Regression test تبدیل نمیشدند. […]
برای جلوگیری از SQL Injection و XSS با Query پارامتری، Output Encoding، Sanitization، Safe Sink، CSP، کنترل دسترسی، تست و مانیتورینگ آشنا شوید.
یک فروشگاه ایرانی در دموی سایتساز، صفحه اصلی چشمگیری ساخت؛ اما درست پیش از انتشار فهمید نمیتواند ترتیب قیمت و تخفیف را در موبایل اصلاح کند، خطای فرم فارسی Focus نمیگیرد و خروجی طراحی در پلن خریداریشده قابل انتقال نیست. مسئله «بدبودن سایتساز» نبود؛ تیم ظاهر یک صفحه را آزمایش کرده بود، نه سطح کنترل […]
یک فروشگاه ایرانی میخواست فقط «شرکت ثبتکننده دامنه» را عوض کند؛ اما همزمان نامسرورها، ایمیل مدیر دامنه و اطلاعات مالک را هم تغییر داد. انتقال معطل شد، DNSSEC خطا داد و ایمیلهای سفارش به مقصد نرسید. مشکل از خود انتقال نبود؛ چند تغییر پرریسک بدون مرز، مالک و راه بازگشت در یک پنجره اجرا شده […]
فروشگاه پوشاک دو رکورد از یک مشتری ساخت: یکی با شماره +۹۸ و دیگری با ۰۹. CRM سفارش مرجوعشده را «خرید موفق» دید، کمپین VIP فرستاد و تیم پشتیبانی نیز تاریخچه Refund را پیدا نکرد. مشکل کمبود Feature نبود؛ Identity، Source of truth، Event و Reconciliation قرارداد نداشتند. CRM فروشگاه زمانی ارزش میسازد که کار […]
کاربر فروشگاه PWA را باز میکند، قیمت قدیمی از Cache میبیند، سفارش را در اینترنت ناپایدار ثبت میکند و پیام «موفق» میگیرد؛ اما درخواست هرگز به سرور نرسیده است. چند دقیقه بعد Service Worker تازه وسط Checkout فعال میشود و صفحه با Bundle ناسازگار میشکند. این تجربه سریع و App-like نیست؛ یک قرارداد State ناقص […]















