آموزش php (وبلاگ یک پی اچ پی کار)

آموزش زبان برنامه نویسی php , html , css , تجربیات یک برنامه نویس

احراز هویت مبتنی بر توکن در برنامه های تحت وب و وبسرویس ها

سشن و توکن و کوکی

سلام و عرض احترام دارم خدمت دوستان عزیز

در این مقاله قصد دارم در خصوص روشهای احراز هویت توضیحاتی را در حد مقدماتی خدمتتان عرض کنم

احراز هویت کاربران
احراز هویت در نرم افزارهای کامپیوتری به فرایندی جهت شناسایی کاربران برای دسترسی به بخش های مختلف نرم افزار گفته می شود. 
طی این فرایند در صورت تصدیق و تطبیق اطلاعات کاربر با اطلاعات قبلی موجود در سیستم، مجوز دسترسی به بخش های مختلف نرم افزار که برای عموم مخفی است صادر می گردد و کاربر احراز شده از آن پس می تواند برای مدت زمان مشخصی یا بصورت مادام العمر به سیستم دسترسی داشته باشد.
مدت زمان دسترسی کاربر بعد از عملیات احراز هویت و همچنین سطح دسترسی کاربر احراز شده بستگی به سیاست های تنظیمی مدیر سیستم دارد . لازم به ذکر است که وسیله شناسایی و احراز هویت در سیستم های مختلف کامپیوتری ، متفاوت بوده ولی اغلب به شکل  رمز عبور ،  ترکیب نام کاربری و رمز عبور ، کارت مغناطیسی ، شناسه توکن و ... در اختیار کاربران قرار داده می شود تا کاربر بتواند با استفاده از آن به سیستم دسترسی داشته باشد.
- احراز هویت بطور کلی در 2 مرحله اصلی انجام می شود :
 Authentication  : به مجموعه از فرایندهایی گفته می شود که بوسیله آن کاربر شناسایی می شود که چه کسی هست .
Authorization   :  به مجموعه ای از فرایندها گفته می شود که بعد از مرحله شناسایی انجام می گیرد و سطوح دسترسی کاربر مشخص می شود.
 
همانطور که در تعاریف این  2 مرحله مشخص هست ، سیستم قبل از هر کاری ، برای احراز هویت کاربر ابتدا باید شخص را تشخیص دهد و بفهمد که این شخص چه کسی میباشد که برای اینکار ما معمولا فرمهای لاگین را در سیستم طراحی می کنیم . در مرحله دوم که سیستم کاربر را تشخیص داد ، بایستی مشخص کند که این کاربر به چه بخش هایی حق دسترسی دارد.
 
اجازه دهید تا با یک مثال ساده موضوع را بیشتر شرح دهیم ، فرض کنید شما در مرورگر اینترنتی خودتان وارد یک وبسایت شده اید و فرم ورود کاربران را باز کرده اید ، در این فرم اطلاعات کاربری خودتان را وارد نموده و دکمه ورود را کلیک می کنید ، بعد از کلیک کردن روی دکمه ورود ، سیستم وارد عملیات احراز هویت خواهد شد.
به این صورت که ابتدا اطلاعات وارد شده شما با اطلاعات موجود در دیتابیس سیستم تطبیق داده می شود تا در صورت تصدیق و تطابق اطلاعات به شما اجازه ورود به سیستم داده شود .
با فرض اینکه اطلاعات وارده با اطلاعات موجود در سیستم منطبق بود ، شما بر اساس سطح دسترسی خود  وارد بخش های مخفی نرم افزار که قبل از احراز هویت قادر به مشاهده آنها نبودید خواهید شد.
 
حال که با کلیات این فرایند آشنا شدیم بیایید کمی هم وارد جزئیات و روش های فنی پیاده سازی شویم . تا اینجای کار ما صرفا بصورت اجمالی به شرح عملیات احراز هویت پرداختیم ولی نگفتیم که سیستم برای انجام این فرایند چطور عمل می کند.
برای اینکه توضیحات برای شما ملموس تر واقع شود ، ما فرض را همان وبسایت در نظر میگیریم که یک نرم افزار تحت وب محسوب می شود و به لحاظ تعدد کاربران ، احراز هویت یکی از مهم ترین بخش های این نوع نرم افزارها بشمار میرورد . 
ادامه مطلب...
۱۱ آذر ۹۶ ، ۱۳:۳۶ ۲ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

رفع خطای This Installation Package Could not be Opened Error in ...

سلام دوستان عزیزم

در این پست میخوام یک راه حل برای نصب بسته های نصبی msi رو خدمتون آموزش بدم

شاید شماهم با خطای زیر مواجه شده اید :

"This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package."

خطای نصب برنامه msi

 

 

برای رفع این مشکل کافیه فایل نصاب رو به درایوی که ویندوز نصب شده انتقال بدید و از اونجا اجرا کنید تا نصب شود.

البته راه حل های دیگه ای هم هست که اگه خواستید در تلگرام از من بپرسید.

موفق باشید

ارادتمند شما

مهدی حسامی

۲۷ آبان ۹۶ ، ۲۰:۱۱ ۱ نظر موافقین ۱ مخالفین ۰
مهندس مهدی حسامی

نرم افزار مدیریت مرخصی پیامکی

پروژه ارسال و دریافت پیامک در ویژوال بیسیک

ضمن سلام و عرض احترام خدمت شما دوست عزیزم

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

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

ادامه مطلب...
۲۵ مهر ۹۶ ، ۱۱:۴۳ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

گرفتن تاریخ فعلی سیستم در سی شارپ

کار با تقویم ها در سی شارپ

برای گرفتن تاریخ فعلی در سی شارپ خیلی راحت می توانیم با استفاده از تکه کد زیر زمان فعلی را بدست بیاریم.

DateTime dt = DateTime.Now;

با اجرای کد بالا زمان فعلی از ویندوز درخواست میشه و مقدار آن درون متغییری بنام dt ریخته می شود.

ولی مسئله که وجود داره اینه که شاید شما در تنظیمات تاریخ ویندوز ، تقویم پیشفرض را به دلخواه تغییر دادید ، یعنی شما رفتید به کنترل پنل ویندوز و اونجا وارد قسمت Region شدید و تقویم پیشفرض را به عنوان مثال گذاشتید روی تقویم قمری ، بنابراین دستور بالا زمان فعلی را بر اساس تقویم پیشفرض سیستم شما بر میگرداند ، یعنی اگر تقویم شما هم اکنون قمری باشد این دستور نیز تاریخ فعلی را به قمری بر میگرداند و اگر تقویم پیشفرض ویندوز شما روی شمسی تنظیم شده باشد تاریخ فعلی را به شمسی بر میگرداند.

حال با این اوصاف ممکنه شما بخواهید بدون تغییر تقویم پیشفرض سیستم خود تاریخ فعلی را در یکی از تقویم ها بدست بیارید

خوشبختانه سی شارپ برای این کار هم دستوری دارد که می توانید استفاده کنید. برای اینکار شما بعد از بدست آوردن زمان فعلی سیستم ، بایستی یک تقویم هم ایجاد کنید که این تقویم می تواند یکی از انواع تقویم ها باشد (شمسی ، میلادی ، قمری):

 

ساخت تقویم میلادی در سی شارپ :

System.Globalization.GregorianCalendar  miladi = new System.Globalization.GregorianCalendar();

 

ساخت تقویم شمسی در سی شارپ :

System.Globalization.PersianCalendar  shamsi = new System.Globalization.PersianCalendar();

 

ساخت تقویم قمری در سی شارپ :

System.Globalization.HijriCalendar    ghamari = new System.Globalization.HijriCalendar();

 

ساخت تقویم کره ای در سی شارپ :

System.Globalization.KoreanCalendar    korean = new System.Globalization.KoreanCalendar();

 

و تقویم های مختلف که در این فضای نام موجود هست.

حالا براحتی از تقویمی که ساختید بخواهید تا زمان رو به شما اعلام کنه که به تفکیک می تونید سال ، ماه ، روز ، ساعت ، دقیقه ، ثانیه ، میلی ثانیه را بگیرید :

 

String     Year        =       miladi.GetYear(dt);

String     Mounth    =       miladi.GetMonth(dt);

String     Day         =       miladi.GetDayOfMonth(dt);

String     Hours      =       miladi.GetHour(dt);

String     Minute     =       miladi.GetMinute(dt);

String     Secound   =       miladi.GetSecond(dt);

 

در دستورات بالا دقت کنید که متغییر dt را بایستی به تقویم بدید تا تاریخ فعلی را بر گرداند که حتی می توانید برای تبدیل تاریخ ها در سی شارپ نیز از این دو دستور ساده استفاده کنید و بجای dt  تاریخ مورد نظر را بدید تا در تقویم مورد نظر تبدیل شود . 

 

امیدوارم براتون مفید بوده باشه

ارادتمند شما مهدی حسامی

 

۱۲ شهریور ۹۶ ، ۱۱:۴۰ ۲ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

تولید و ذخیره تاریخ و زمان یکتا و ذخیره در دیتابیس

سلام و عرض احترام خدمت همه دوستان

یه آموزش خیلی کوتاه ولی کاربردی میزارم که شاید برای بعضی از شما عزیزان جای سئوال باشه
شاید شماهم نیاز داشته باشید که در پروژه های خودتون از یکتا بودن تاریخ و زمان اطمینان حاصل کنید تا زمان های یکتایی را در دیتابیس ذخیره کنید ، برای این کار از الگوریتم زیر استفاده کنید که به زبان سی شارپ نوشتم ولی میتونید در زبانهای مختلف هم به همین شکل استفاده کنید :

 

                                    oldDate = mydate;
                                    do
                                    {
                                        mydate = DateTime.Now;
                                    }
                                    while (mydate.CompareTo(oldDate) == 0);

امیدوارم براتون مفید بوده باشه
ارادتمند شما مهدی حسامی
09192421865
وبلاگ آموزشی phpkar.blog.ir

۰۵ شهریور ۹۶ ، ۱۲:۲۴ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

پروژه ارتباط با وبسرویس پیامکی در vb6 از طریق rest

وبسرویس پیامکی در vb6

ضمن سلام و عرض ادب خدمت تمامی دوستان و بازدیدکنندگان وبلاگ phpkar.blog.ir

با توجه به اینکه اخیرا شرکت های پیامکی از ارائه کامپوننت ارسال پیامک برای ویژوال بیسیک 6 به جهت قدیمی شدن این زبان برنامه نویسی محبوب خودداری می کنند لذا برآن شدیم تا یک پروژه با ویژوال بیسیک 6 (vb6) برای ارتباط با وبسرویس های پیامکی بنویسیم تا آن دسته از عزیزانی که پروژه هایی با این زبان برنامه نویسی نوشته اند و قصد اضافه کردن امکان ارسال و دریافت پیامک درون برنامه های شان دارند بتوانند با کمک این پروژه به هدف شان برسند.

ادامه مطلب...
۲۴ خرداد ۹۶ ، ۱۳:۰۵ ۴ نظر موافقین ۱ مخالفین ۰
مهندس مهدی حسامی

مقابله با ویروس WannaCry

ویروس wannacry باج گیر است

سلام دوستان عزیز

اخیرا ویروسی تحت عنوان WannaCry منتشر شده که شاید بتوان گقت پر ماجراترین ویروس تا به امروز بوده است.

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

این ویروس از طریق برخی حفره های امنیتی سیستم عامل ویندوز وارد کامپیوتر ها شده و عملیات خودرا آغاز می نماید.

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

با توجه به اینکه مایکروسافت دیگر آپدیت هایی برای ویندوز ایکس پی ارائه نمیکرد ولی به لحاظ اهمیت موضوع اینبار پچی را برای این نسخه نیز عرضه نمود.

در فایل PDF پیوست شده همین پست از وبلاگ phpkar.blog.ir راهکارهایی ارائه شده است که میتوانید بواسطه آن ، از ورود این ویروس به سیستم عامل خود تا حد زیادی در امان بمانید.

دریافت
عنوان: ویروس wannacry
حجم: 784 کیلوبایت
توضیحات: پیشگری از ویروس wannacry
 

موفق و موید باشید

ارادتمند شما  مهدی حسامی

۲۵ ارديبهشت ۹۶ ، ۱۸:۳۴ ۲ نظر موافقین ۱ مخالفین ۰
مهندس مهدی حسامی

نحوه Sut Down کردن ویندوز بدون نصب آپدیت ها

 

shut down without updating

دوستان عزیز سلام

در ویندوز 10 وقتی قصد خاموش کردن سیستم رو دارید در صورتیکه آپدیت هایی برای سیستم وجود داشته باشه ، ویندوز از شما میخواد که در زمان خاموش کردن نصب آپدیت هارو انجام بدید ولی اینکار زمانبره و شاید بخواهید سریع سیستم عامل خودتون رو ریستارت یا خاموش کنید

ادامه مطلب...
۲۸ فروردين ۹۶ ، ۱۱:۰۶ ۴ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی