نظرات مطالب
ساختار پروژه های Angular
با سلام و تشکر از مقاله خوب شما.
برای بارگذاری اسکریپت‌ها در روش سوم ، از آنجا که ممکن است تعداد دایرکتوری‌ها زیاد باشد ، شما چه روشی را پیشنهاد می‌کنید؟
نظرات مطالب
ASP.NET MVC #14
با سلام؛ آیا این امکان وجود دارد که هر Area  به صورت یک Assembly  مجزا تبدیل گردد ؟
آیا Area روشی برای ماژولار بودن برنامه‌های MVC است ؟ 

نظرات مطالب
LocalDB چیست؟
AppDomain  روشی است برای ایزوله سازی اطلاعات برنامه‌ها از یکدیگر. به این ترتیب در یک پروسه هم می‌شود چندین برنامه دیگر را به صورت کاملا ایزوله از هم بارگذاری و اجرا کرد.
نظرات مطالب
بررسی وجود نام کاربر با استفاده از jQuery Ajax در ASP.Net
خیر. در پشت صحنه این کتابخانه، Object Factory به صورت خودکار عمل می‌کند. اگر امکان استفاده خودکار از آن نبود، روشی دستی آن (ObjectFactory.GetInstance) همان عملیات را انجام می‌دهد.
نظرات مطالب
یکی از مزایای استفاده از SVN در یک پروژه تک نفره
سلام اگر که بخواهیم برای این تغییرات و افزایش ها یک سند قابل ارائه تهیه کنیم، با استفاده یا بدون استفاده از SVN چه برنامه و یا روشی پیشنهاد می کنید.
پاسخ به بازخورد‌های پروژه‌ها
درخواست همزمان گزارش
استاد امکانش هست روشی که برای قسمت وب فرمودید رو بیشتر توضیح بدبد؟
نظرات مطالب
پیاده سازی Basic Authentication در ASP.NET MVC
برنامه‌هایی که عملیات بانکی را انجام میدهند از کدام روش بهره میبرند ؟

هر بانک  میتونه متفاوت باشه ولی استفاده از روش توکن‌ها میتواند جز بهترین‌ها باشد. همانند لینکی که خودتان دادید ، بانک ‌ها به جز اطلاعات امنیتی که به شما میدهند فقط و فقط به کاربرانی پاسخ میدهند که شماره تماس و کد IEMI آن‌ها در بانک اطلاعاتی به همراه اطلاعات و کدهایی که بانک به شما میدهد هش شده باشند. حتی برای ورود شما از شما رمز عبور میگیرند که آن را به صورت هش شده و آفلاین روی گوشی ذخیره میکنند تا ورود شما برای دفعات بعدی از آن طریق باشد تا اگر گوشی دست نااهلی افتاد (دزدیده یا گم شد) مجبور به ورود آن باشد.
مسائل مربوط به وب هم بیشتر بانکها از طریق دستگاه‌های رمز OTP شروع به ساخت کدهای زمان دار میکنند.
- آیا این روش JWT هم با برنامه‌های موبایل قابل انجام هست ؟

بله، مهم این است که توکن را داشته باشید و به جای استفاده از Basic از Bearer استفاده کنید. نمونه ای از پیاده سازی آن در جاوا و اندروید

- اگر از https  استفاده شود امنیت روش Basic Authentication قابل قبول هست ؟

بله با استفاده از این روش میتوان این قسمت را از دید مخفی کرد ، مگر اینکه شخصی در شبکه با اختلال در سمت کلاینت همانند حملات HITM یا دیگر حملات مشابه دخالت کند. این روش بیشتر برای برنامه‌های موبایل مناسب‌تر است که هر درخواست توسط کدهای ما ایجاد و ارسال میشود. در غیر اینصورت در باقی موارد چندان امنیتی ندارد. به عنوان مثال احتمال کش شدن این نوع درخواست از طریق مرورگر بسیار بالاست که ممکن است به حملات CSRF دامن بزند. در حالت امنیتی بیشتر میتوان به Http Digest هم اشاره کرد که در این جا سادگی Basic را ندارد ولی تبادل کلید و هش کردن مقادیر از طریق آن ممکن است.
نظرات مطالب
مقابله با XSS ؛ یکبار برای همیشه!
سلام. مدل برنامه من به شرح زیر است:
 public class Post
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int PostId { get; set; }
        [Required(ErrorMessage = "فیلد عنوان الزامی است")]
        [Display(Name = "عنوان پست")]
        public string PostTitle { get; set; }
        [Display(Name = "محتوا")]
        [AllowHtml]
        public string Content { get; set; }
        [DataType(DataType.Date)]
        [Display(Name = "تاریخ نشر")]
        public DateTime PublishDate { get; set; }
    }
و برای فیلد Content یک TextArea قرار دادم که به Froala متصل شده و برای ذخیره اکشن زیر رو نوشتم
[HttpPost]

        public ActionResult CreateNewPost(Post post)
        {
            if (ModelState.IsValid)
            {
                post.Content = post.Content.ToSafeHtml();
                PostData.AddNewPost(post);
                return RedirectToAction("Index", "Home", new { area = "" });
            }
            return View(post);
        }
مشکل اینجاست که وقتی از Froala استفاده میکنم تابع ToSafeHtml از کتابخانه AntiXss مایکروسافت و ToSafeHtml مطرح شده در این بحث هیچ تاثیری روی فیلد Content نداره اما وقتی Froala را با TextArea جایگزین میکنم همه چی درست میشه. میخواستم ببینم چطور میشه این مشکل رو برطرف کرد؟
مطالب
نگهداری رشته ها (String) در حافظه به صورت Encrypt
در همین سایت در بخش لینک‌های ارسالی ، لینکی توسط آقای امیر هاشم زاده به اشتراک گذاشته شده بود با عنوان  "چرا هکرها نوع داده String را دوست دارند" ؛ مقاله ای بود در سایت CodeProject که در آن روش هایی که هکرها توسط آن می‌توانند اطلاعات حساس نرم افزار را که در قالب String در حافظه ذخیره شده اند را بررسی نمایند.
اصل مطلب را می‌توانید اینجا مطالعه کنید.

در دات نت فریم ورک کلاسی با عنوان SecureString وجود دارد که توسط آن می‌توان عبارات رشته ای که دارای اطلاعات حساس می‌باشند را به صورت رمز گذاری شده در حافظه ذخیره نمود.

نمونه ای از استفاده این تابع را در زیر مشاهده میکنید:
public class Example
{
    public static void Main()
    {
        .
        SecureString securePwd = new SecureString();
        ConsoleKeyInfo key;

        Console.Write("Enter password: ");
        do {
           key = Console.ReadKey(true);

           // بررسی میشود که کلید فشرده شده جزو حروف الفبا می‌باشد یا کلید دیگری است
           if (((int) key.Key) >= 65 && ((int) key.Key <= 90)) {
              // کاراکتر مربوط به کلید فشرده شده به انتهای متغیر سکوراسترینک اضافه می‌شود
              securePwd.AppendChar(key.KeyChar);
              Console.Write("*");
           }   
        // خروج از حلقه در صورت فشردن کلید اینتر
        } while (key.Key != ConsoleKey.Enter);
        Console.WriteLine();

        try
        {
            MessageBox.Show(securePwd);
        }
        catch (Win32Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

در کدهای بالا رمز عبور از کاربر دریافت شده و در متغیر securepwd که شئی از کلاس SecureString می‌باشد ذخیره می‌شود.پس از آن شئی SecureString عبارت مربوطه را به صورت رمز گذاری شده در حافظه ذخیره میکند.
در این روش ابتدا مقدار کلید فشرده شده در متغیر Key که از نوع ConsoleKeyInfo تعریف شده ذخیره می‌شود. بعد از آن مقدار آن بررسی شده و اگر جزو حروف الفبای انگلیسی بود به انتهای متغیر securepwd افزوده می‌شود. این کار با متد AppendChar انجام می‌شود. این عملیات تا فشرده شدن کلید Enter ادامه پیدا میکند.
بازخوردهای دوره
بایدها و نبایدهای استفاده از IoC Containers
برای این که مطمئن بشم که آیا DI رو به صورت صحیح پیاده کردم یا نه آیا چک لیستی یا روشی برای این کار هست؟
برای مثال الان دارم فکر میکنم که چطور این کارو تو winForms میشه انجام داد، پس از انجام ، آیا کارم درست هست یا نه؟
روشی برای حصول اطمینان هست؟