معرفی قالب پروژه Web API مبتنی‌بر ASP.NET Core Web API و زیرساخت DNTFrameworkCore
بعد از انتشار نسخه اولیه زیرساخت DNTFrameworkCore ، در این مطلب قصد دارم قالب تهیه شده برپایه زیرساخت مذکور را معرفی کنم. در این قالب سیستم اعتبارسنجی کاربران مبتنی‌برJWT نیز تدارک دیده شده است. ‌‌‌ نصب قالب پروژه از طریق نیوگت ابتدا برای نصب قالب تهیه شده از طریق نیوگت، دستور زیر را اجرا کنید: dotnet new --install DNTFrameworkCoreTemplateAPI::*‌‌ ‌‌ حال برای ایجاد اولین پروژه، دستور زیر را ...
رمزنگاری JWT و افزایش امنیت آن در ASP.NET Core
آموزش JSON Web Token (به اختصار JWT) و پیاده سازی آن در برنامه‌های ASP.NET Core درسایت موجود است. توکن JWT در حالت عادی به صورت Base64 رمزنگاری می‌شود که این نوع رمزنگاری به راحتی قابل رمزگشایی و خواندن است. سایت‌های آنلاین زیادی برای رمزگشایی base64 موجود است؛ برای مثال کافی است توکن خود را در سایت jwt.io کپی کنید و به راحتی محتوای بدنه توکن (Payload) را مشاهده کنید. پس توکن JWT هیچ امنیتی در برابر خوانده شدن ندارد. ...
MIME Sniffing و استاندارد OWASP
یکی از نکات امنیتی که استاندارد Owasp بررسی مینماید هدر X-Content-Type-Options است که جهت جلوگیری از حملات از طریق فایل‌های نامرتبط میباشد. در این رخنه ممکن است فایلی که مرورگر دریافت میکند با آنچه که وب سایت ما آن را میشناسد متفاوت باشد. به عنوان مثال یک فایل اسکریپت که به عنوان یک فایل استایل معرفی میگردد ولی قابلیت اجرای کدهای آن در مرورگر امکان پذیر است؛ به این نوع حملات MIME Sniffing میگوین ...
روش فعالسازی SSL بر روی IIS SMTP Server
پس از انجام « تنظیمات امنیتی SMTP Server متعلق به IIS جهت قرارگیری بر روی اینترنت » و همچنین پیاده سازی « مراحل تنظیم Let's Encrypt در IIS »، یکی دیگر از کاربردهای مجوز SSL دریافتی، رمزنگاری تبادل اطلاعات بین SMTP Server جاری و میل سرور مقصد است. بدون انجام اینکار، ایمیل‌های دریافتی توسط GMail، یک چنین شکلی را خواهند داشت: همانطور که مشاهده می‌کنید، کنار ایمیل ارسالی توسط ما، یک آیکن قرمز رنگ مبتنی بر عدم رمزنگاری ارتبا ...
رفع مشکل برگشت خوردن ایمیل‌ها توسط Gmail
چند روزی بود که ایمیل‌های سایت رد نمی‌شدند و تمام آن‌هایی که متعلق به جی‌میل بودند، برگشت می‌خورند. در لاگ‌های سرور، اطلاعات خاصی مشاهده نشد. به همین جهت logging مخصوص SMTP Server فعال شد: پس از یک روز، چنین سطرهایی پس از سعی‌های ارسال ایمیل به جی‌میل، قابل مشاهده بودند: 550-5.7.1+This+message+does+not+have+authentication+information+or+fails+to+pass پس از اندکی جستجو مشخص شد که جی‌میل، استفاده‌ی از SPF را اجباری کر ...
اعمال کنترل دسترسی پویا در پروژه‌های ASP.NET Core با استفاده از AuthorizationPolicyProvider سفارشی
در مطلب « سفارشی سازی ASP.NET Core Identity - قسمت پنجم - سیاست‌های دسترسی پویا » به طور مفصل به قضیه کنترل دسترسی پویا در ASP.NET Core Identity پرداخته شده‌است؛ در این مطلب روش دیگری را بررسی خواهیم کرد. مشخص می‌باشد که بدون وابستگی به روش خاصی، خیلی ساده می‌توان به شکل زیر عمل کرد: services.AddAuthorization(options => { options.AddPolicy("View Projects", policy => policy.RequireClaim(CustomClaimTypes.Per ...
امن سازی برنامه‌های ASP.NET Core توسط IdentityServer 4x - قسمت اول - نیاز به تامین کننده‌ی هویت مرکزی
عصر Thick Clients امن سازی برنامه‌های وب همواره چالش برانگیز بوده‌است؛ خصوصا این روزها که نیاز است برنامه‌ها، خارج از دیوارهای یک شرکت نیز در دسترس باشند و توسط انواع و اقسام وسایل ارتباطی مورد استفاده قرار گیرند. در سال‌های قبل، عموما برنامه‌های thick clients مانند WPF و WinForms برای شرکت‌ها توسعه داده می‌شدند و یا برنامه‌های وب مانند ASP.NET Web Forms که مبتنی بر سرویس‌ها نبودند. در برنامه‌های ویندوزی، پس از لاگین شخص به ش ...
اجزاء معماری سیستم عامل اندروید (قسمت اول بررسی مجوزها و مفهوم Intent در اندروید) :: بخش هفتم
Intent چیست؟ معنای لغوی intent : هدف، قصد، نیت و امثالهم... intent‌ها حامل انواع پیام‌هایی هستند که بواسطه آنها یک پیام خاص و یکتا، برای کنترل وظایف و یا انتقال داده‌ها یا درخواست جدیدی از سیستم به دیگری می‌فرستد و درخواست ما پذیرفته یا رد می‌شود. intent‌ها به سه بخش مشخص شدۀ خاص تقسیم می‌شوند: فعالیت‌ها ( activity) ، خدمات یا سرویس‌ها (services) و broadcast receiver که به معنی اینست که اتفاقات را در سطح اندروید به صورت broadc ...
بررسی چک لیست امنیتی web.config
در مقاله چک لیست امنیتی web.config متوجه شدیم که تنظیم یک سری مقادیر، باعث افزایش ضریب ایمنی وب سایت می‌شود. در این نوشتار قصد داریم به بررسی این چک لیست امنیتی بپردازیم. اولین مورد لیست در رابطه با وضعیت session هاست؛ هر چند که توصیه میشود تا جای ممکن استفاده از session‌ها کنار گذاشته شود یا اینکه محدود شود . SessionState تگ sessionstate حاوی خصوصیتی به نام cookieless میباشد که در نسخه‌ی یک دات نت به صورت دو ارزشی پ ...
اجزاء معماری سیستم عامل اندروید (قسمت دوم رمزنگاری اندروید) :: بخش ششم
ذخیره داده‌ها در اندروید اندروید برنامه‌های کاربردی را در زمینه‌ی (context) امنیت جداگانه‌ای اجرا و برای اجرای آنها زمینه‌های خاصی را در سیستم عامل تعیین تکلیف می‌کند و این برای ما کاملا شفاف است که در این سیستم عامل بزرگ و گسترده چه تدابیری ارائه شده است. این بدان معنا است که هر برنامه با UID و GID خود اجرا خواهد شد. برای مثال زمانیکه در یک برنامه اطلاعاتی را می‌نویسید، برنامه‌های دیگر قادر نخواهند بود آن داده‌ها را بخوانند. ...