نحوه چگونگی ایجاد پرداخت آنلاین

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

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

2. آماده سازی بستری جهت ارائه ی محصولات فیزیکی یا دیجیتالی

ارائه محصولات بسته به نوع فیزیکی یا غیرفیزیکی آن متفاوت است. نرم افزارهای رایجی که در بازار وجود دارند و از طریق آن فروشگاه های آنلاین ایجاد می شوند معمولا جهت ارائه ی محصولات فیزیکی طراحی و استفاده می شوند. جهت ارائه ی محصولات غیرفیزیکی و دیجیتالی باید نرم افزار آن بصورت سفارشی طراحی و پیاده سازی شود. به عنوان مثال فروشگاه آنلاین مخصوص فروش مقاله یا کتاب (بصورت PDF یا HTML) بصورت اینترنتی وجود ندارد. البته نرم افزارهای کوچکی جهت فروش شارژ سیم کارت های اعتباری وجود دارد که فقط از طریق تعدادی نمایندگی وابسته به اپراتورهای تلفن همراه ارائه می شود.

3. دریافت نماد اعتماد الکترونیکی

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

فروشگاه های آنلاین در صورت نداشتن نماد اعتماد الکترونیکی صرفا می توانند ثبت درخواست داشته باشند و نمی توانند به درگاه پرداخت هیچ بانکی متصل شوند.

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

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

مدارک لازم برای افراد حقوقی

ثبت درخواست درگاه از بانک مربوطه

تصویر صفحه اول دفترچه حساب بانکی به نام شرکت و یا موسسه نزد یکی از شعب بانک‌های کشور

تصویر برابر اصل کارت ملی و شناسنامه مدیران و مسئولین صاحب امضا

تصویر برابر اصل روزنامه رسمی (دارای شناسه ملی) و آگهی آخرین تغییرات و یا پروانه کسب یا جواز کار

آگهی تاسیس شرکت

شماره اقتصادی اخذ شده از سازمان امور مالیاتی

مدارک لازم برای افراد حقیقی

تصویر صفحه اول دفترچه حساب بانکی به نام شخص نزد یکی از شعب بانک‌های کشور

تصویر برابر اصل کارت ملی و شناسنامه

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

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

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


امنیت در Asp.NET

سیستم تشخیص هویت دات نت:

برای شناسایی هویت و مدیریت نقش های کاربران، سیستم امنیت و تشخیص هویتی Dot net Forms Authentication ایجاد شد، که قابل هک شدن نمی باشد.


تنظیم  CustomErrors

قبل از بارگزاری صفحه باید این مقدار off باشد، تا خطاها برای برنامه نویس قابل رویت و بررسی باشد. و بعد از اتمام طراحی باید آن راOn یا Remote Only نمایید تا برای کاربر سایت قابل نمایش نباشد.


مدیریت خطاها و لاگ رویداد ها:

این قسمت که به شما کمک می کند تا اتفاق هایی که در سایت تان افتاده را مورد مشاهده و بررسی قرار دهید و همچنین از نفوذ احتمالی هکرها آگاه شوید.


خاصیت Debug تگ Compilation

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


SQL Server

اگر دیتا بیس شما SQL Server می باشد و می خواهید آن را بر روی سرور اختصاصی یا یک هاست داشته باشید، به چند نکته زیر توجه نمایید:

همیشه کاربران بانک اطلاعاتی تان را مورد بررسی قرار دهید و اطمینان پیدا کنید کاربران مهمان یا کاربر اضافی دیگری داخل آن نباشد، چرا که دیگر کاربران SQL Server می توانند از این طریق به بانک شما دسترسی داشته باشند.

اگر سرور اختصاصی دارید حتما برای کاربر admin یک پسورد مناسب تخصیص دهید، همچنین Event Log مربوط به بانک اطلاعاتی تان را بررسی نمایید تا اگر مورد مشکوکی بود IP آن را Block نمایید.


جلوگیری از حملات تزریق دستورات sql

هکرها با وارد کردن جملات SQL در فرم های وب یا QueryString ها می توانند Query شما را به نفع خود تغییر دهند به این روش SQL Injection می گویند که یکی از رایج ترین روش های نفوذ به وب سایت ها و هک کردن آن ها می باشد.


جلوگیری از حملات XSS

xss مخفف cross-site script می باشد که خطرساز ترین حمله به یک وب سایت می باشد، هکر با این روش اسکریپت های سمت کلاینت را به صفحات شما ارسال می نماید و از این طریق به اطلاعات مورد نیاز خود دسترسی پیدا می نماید. این حملات معمولا توسط فرم ها و Query ها صورت می گیرد.


کنترل FileUpload

این کنترل یکی از خطرناک ترین کنترل های Asp.NET می باشد علتش هم این است که کاربر می تواند از این طریق فایلش را وارد سرور نماید، مثالی می زنیم، مثلا شما یک وب سایت طراحی کرده و برای آن عضویت قرار داده اید و کاربران در هنگام عضویت می توانند عکس خود را آپلود نمایند، شما عکس ها را در پوشه picture ذخیره می کنید و آن را به کاربران نشان می دهید. حال هکر می تواند به راحتی به جای اینکه یک عکس آپلود کند یک صفحه aspx ایجاد و آن را آپلود نماید، این صفحه می تواند شامل کد هایی باشد که تمامی اطلاعات Web.Config شما را به او نشان دهد و یا او را به منبع فایل های شما برساند.


ویرایشگر ها (HTML Editor)

اگر شما از ویرایشگر ها (مانند FckEditor ، HtmlErea , TinyMce , FreeTextBox و...) استفاده می کنید به امکاناتی که در اختیار کاربران قرار می دهید دقت کنید، هیچ گاه اجازه ویرایش سورس Html را به کاربران ندهید، البته مدیران سایت می توانند از این امکان استفاده کنند اما کاربران و بازدیدکنندگان در صورتی که به سورس Html دسترسی داشته باشند، می توانند کد هایی را وارد کنند که سایت شما را به خطر اندازد، در مورد امکانات بارگزاری عکس و فایل و... بازهم به پسوند ها دقت نمایید.


اعتبار سنجی ViewState ها

در هنگام Postback شدن صفحه حالت ماندگاری کنترل های سمت سرور را ViewState برقرار می نماید، البته یک هکر می تواند با تغییر مقادیر ViewState ها به وب سایت شما نفوذ نماید. برای جلوگیری از این موضوع دات نت به صورت پیش فرض ViewState ها را رمز نگاری و اعتبار سنجی می کند تا از تغییر نکردن آنها مطمئن شود، البته شما می توانید با false کردن خاصیت EnableViewstateMac در تگ Pages در Web.Config یا CodePage صفحه آن را غیر فعال کنید که به هیچ وجه این کار پیشنهاد نمی شود و بسیاری از برنامه نویسان به اشتباه به دلیل دریافت خطاهای نا معلوم این خاصیت را false کرده، که بهتر است آخرین Hotfix های مایکروسافت را بر روی سرور نصب کنید تا خطاهایی که به صورت باگ گزارش شده اند برطرف شود.


رمز نگاری اطلاعات (Encryption)

می توان برای انتقال اطلاعاتی که مایلید از دید کاربر دور بماند آن ها را رمز نگاری کرد، الگوریتم هایی مانند Des و Triple Des برای رمز نگاری مناسب هستند.


هش کردن اطلاعات مهم (Hashing)

به وسیله یک سری الگوریتم ها مانند MD5 یا SHA1 و... اطلاعات مهم مثل پسورد را می توان hash کرد، دقت کنید که اطلاعات Hash شده قابل بازگشت نیستند.


به رمز درآوردن رشته اتصال

اصولا کسانی به فایل web.config دسترسی دارند که به Ftp اکانت شما دسترسی دارند، بنابراین به رمز درآوردن Connectionstring که در web.config قرار گرفته از نظر امنیتی مهم نیست، اگر از نفوذ هکرها به Ftp مثلا از روش آپلود فایل نگران هستید یا بانک اطلاعاتی شما در سرور دیگری قرار دارد می توانید connectionstring تان را encrypt نمایید.


تصاویر امنیتی (Verification Images)

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