محمد حسین عزتی



اگر در زمان ارسال ایمیل در کد خود با این پیام

"The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required"

برخورد می کنید.

لطفا موارد زیر را بررسی کنید

  1. صحت کلمه عبور وارد شده
    (یک بار با همین پسورد مجدد به ات خود لاگین کنید.)
  2. زمانی که شما سعی می کنید از یک برنامه جانبی برای اولین بار به حساب کاربری خود وارد شوید
    (برای این کار به حساب کاربری خود در گوگل وارد شوید و به لینک زیر بروید

    https://www.google.com/settings/security/lesssecureapps
    و گزینه اجازه ورود به برنامه های نا امن را فعال کنید (Allow less secure apps: ON)
    بدین صورت شما می توانید از تمامی برنامه ها به حساب کاربری خود وارد شوید.)

  3. در برخی مواقع بدلیل اختلاف زمانی یا IP سروری که برنامه را بروی آن پابلیش کردید این اتفاق رخ می دهد
    (در سرور مورد نظر یک بار به حساب کاربری خود وارد شوید)


به‌صورت کلی و عمومی برای دفاع استاندارد و خودکار در مقابل حملات CSRF که نیاز به مداخله کاربر در دفاع نباشد، دو بررسی جداگانه زیر پیشنهاد می‌گردد. در این بررسی‌ها به‌صورت عمدی و خودکار، درخواست مجوز متقابل یا Cross به‌صورت لحظه‌ای و آنی، رد خواهد شد.

·         بررسی هدرهای استاندارد برای تائید درخواست همان منبع

·         بررسی توکن های CSRF

برای دفاع از حملات CSRF راه‌های گوناگونی وجود دارد که می‌توانید به‌طور خاص در برابر این حملات دفاع نمایید. در توصیه‌های استاندارد حداقل یکی از موارد زیر را برای دفاع در برابر این حملات استفاده نمایید.

·         همگام ساز توکن ها یا Synchronizer Tokens

·         دفاع کوکی‌های دوگانه یا Double Cookies Defense

·         رمزگذاری الگوهای توکن یا Encrypted Token Pattern

·         سربرگ سفارشی یا Custom Header

دیگر راهکارهای موجود برای جلوگیری از حملات CSRF در زیر بیان‌شده‌اند؛ که باید برنامه نویسان و طراحان وب‌سایت‌ها این موارد را در طراحی‌های خود در نظر داشته باشند.

·         استفاده از Captcha در فرم‌ها

·         استفاده از متد POST بجای متد GET

·         تمامی متدهای POST باید بصورت parameter less باشند

·         تمامی درخواست ها همراه توکن به سرور ارسال شود

·         در تمامی درخواست ها نام دامنه چک شود (نام دامنه را در setting نرم افزار قرار دهید)

·         تمامی درخواست های ارسالی از کلاینت حتما باید بصورت ایجکسی باشد

·         پرهیز استفاده از Register_Global در صفحات پردازشگر

·         گرفتن تائید مجدد پس از ارسال یک فرم از کاربر برای انجام فرآیندها

·         ایجاد متغیرهای تصادفی در سمت سرور و بازپس‌گیری آن از طرف کاربر در زمان ارسال هر فرم

·         اجبار کاربر به ورود مجدد رمز عبور قبل از انجام عملیات‌های مهم مثل انتقال پول

·         استفاده از Captcha قبل از انجام عملیات های مهم

·         اطمینان از عدم وجود فایل clientaccesspolicy.xml که موجب دسترسی ناخواسته Silverlight گردد

·         اطمینان از عدم وجود فایل crossdomain.xml که موجب دسترسی ناخواسته Adobe flash گردد

·         در صورتی که بخش مدیریت سایت جداست (مثلا در مسیر admin/ قرار دارد)، می‌توان بخش ادمین را از طریق زیردامنه خاص و غیرقابل حدس یا حتی دامنه دیگر کنترل کرد تا حملات csrf و همچنین xss تا حد بالایی دفع شود.



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

اما چگونه می توان چابک شد؟

برای چابک شدن باید در پروسه توسعه و یا حتی سطوح کلان سازمان مانند مدیریت منابع انسانی پروژه و یا هر سطحی، ارزش ها و اصول چابک رعایت شوند و در نظر گرفته شوند. به عبارتی باید همه سازمان چابک شود و نه فقط بخش یا واحد توسعه نرم افزار. به همین دلیل حرکت سازمان به سمت Agile را تغییر یا Change گفته نمی شود و از اصطلاح Transformation یا تحول استفاده می شود. یعنی باید سازمان در راه چابک شدن متحول شود.

برای اینکه بتوان به سطحی از چابکی دست یافت می توان از Practice های Agile مانند Scrum , XP , Crystal و یا … بهره جست.

یکی از این متدها اسکرام است

اسکرام یکی از متدهای رایج و پرطرفدار اجایل می باشد که تیم ها در آن با همکاری خود مشتری، چند هفته یکبار خروجی از نرم افزار را بیرون می دهند و فیدبک ذینفعان را دریافت می کنند و طبق بازخورد ها محصول را در مسیر درست قرار می دهند و اینگونه می شود که محصولات مشتری پسندی به وجود می آید.

مشکل بزرگی که در صنعت نرم افزار وجود داشت این بود که خروجی پروژه ها مثلا بعد از دو سال هزینه بدرد نخور می شد ، یعنی تیم دو سال بر روی پروژه کار میکرد و نهایتاً مشتری می گفت این آن چیزی نیست که من می خواستم و … . امّا بعد از ظهور اجایل ما مجبوریم مشتری را در روند تولید محصول دخیل نماییم به طور مداوم بازخوردهای او را بگیریم ، خلاقیت ایجاد نماییم و به طور کلی محصول را خوشمزه کنیم.

 

نتیجه گیری

Agile یک تفکر ناب در زمینه توسعه نرم افزار می باشد که خروجی و هدف آن ارائه نرم افزار کارآ می باشد. در Agile هزینه توسعه بدلیل Lean بودن و تحلیل و طراحی سازگار  پایین خواهد بود. در Agile بدلیل Iteration عمل کردن و ارتباط چهره به چهره دائم با مشتری و آزمایش یکپارچه شاهده محصول با کیفیت و کارکننده خواهیم بود. در Agile به دلیل خود سازمانده بودن تیم ها شاهد نفرات و تیم های خوشحال و راضی خواهیم بود. و سازمان نیز بدلیل چابک بودن دارای سود بالایی خواهد بود.


شرکت های توسعه نرم افزار در ایران معمولا و اکثرا در مقوله مدیریت منابع انسانی با مشکل مواجه هستند. به همین دلیل است که اکثر برنامه نویس ها در محیط کاری خود احساس راحتی نمی کنند و همیشه عذاب  می کشند و اکثراً فکر می کنند که در حال حیف شدن می باشند و باید در شرکت هایی مثل گوگل و یا مایکروسافت کار کنند .

دلیل اینکه برنامه نویس در محیط کار احساس راحتی نمی کند مدیریت اشتباه می باشد. مدیریت جوی را درست می نماید که برنامه نویس در آن جو نمی تواند نفس بکشد و همیشه دوست دارد در جای دیگری جز آنجا کار کند. کاری کنیم نیروی کار علاقه مند به پروژه بشود. گفتم به پروژه و نه برنامه نویسی به این دلیل که خوشبختانه اکثر برنامه نویس های ما به برنامه نویسی علاقه شدیدی دارند ولی متاسفانه به خود پروژه و یا محصول علاقه چندانی ندارند. برنامه نویس کاری ندارد که پروژه به کجا میرود آیا Fail  می شود یا نه؟  آیا پروژه سر وقت تمام می شود یا نه؟ و این خیلی بد است که برنامه نویس فقط می خواهد رفع تکلیف کند.

برای اینکه بتوانیم برنامه نویس ها را از حالت رفع تکلیف خارج نماییم .

 

ادامه مطلب


عدم پشتیبانی از webPI و پیکربندی دستی PHP و IIS بروی ویندوز سرور

The Microsoft Web Platform Installer (WebPI) was retired on December 31, 2022. For more information please see this blog post: 

https://blogs.iis.net/iisteam/web-platform-installer-end-of-support-feed

با توجه به اینکه مایکروسافت از سال 2023 از پلتفرم webPI دیگر پشتیبانی نمی کند و تمامی فایل های موجود در این ریپوزیتوری را حذف می کند برای کانفیگ کردن و اجرای وب اپلیکیشن های تحت PHP و یا حتی اجرای CMS های وردپرس و جوملا و . بروی IIS نیاز هست که پیکربندی ویندوز سرور خود را بصورت دستی انجام دهید تا زمانی که مایکروسافت راه حل جدیدی برای این موضوع جایگزین کند هرچند که بعد نیست به همین شکل باقی بماند خب البته که کار سختی هم در پیش نداریم.

برای این کار به نیازمندی های زیر نیاز داریم من سعی می کنم یک فایل ویدیویی هم در انتهای این مطلب براتون قرار بدم.

  1. visual studio redistributable 2019 (visual C++ download VC_redist.x64)
  2. IIS10
  3. php-8.2.2-nts-Win32-vs16-x64
  4. mysql-installer-community-8.0.32.0
  5. phpMyAdmin-5.2.1-all-languages   

لینک دانلود هرکدام رو روی خودش گذاشتم بجز IIS که در ادامه براتون توضیح میدم چطور نصبش کنید  

ادامه مطلب


آخرین ارسال ها

آخرین وبلاگ ها

آخرین جستجو ها