ورود

View Full Version : اتصال به بانک اطلاعاتی با آی پی استاتیک بدون ذخیره اطلاعات کانکشن استرینگ در فایل اجرایی



hadisalahi2
جمعه 12 شهریور 1395, 12:39 عصر
سلام به همه دوستان عزیزم

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

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

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

تعدادی از دوستان پیشنهاداتی از قبیل Soap یا dataSnap کردن
اما من با هیچ کدوم از اینها آشنایی ندارم

از دوستانی که در این زمینه تجربه دارن میخوام تجربیاتشون رو در اختیار بنده قرار بدن

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

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

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

hp1361
شنبه 13 شهریور 1395, 12:09 عصر
سلام

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

امنیت در هردوسمت باید مدنظر قرار بگیره. گزینه هایی که شما روی میز دارید:(:چشمک:)

1- برنامه بصورت کلاینت سرور باشه و کلاینت مستقیم به دیتا بیس وصل بشه(چیزی که شما عنوان کردید از نظر امنیت مشکل داره)
2- یک لایه واسط ایجاد کنید که بین کلاینت و بانکتون قرار بگیره و بدین طریق امنیت رو بالاتر ببرید
2.1- استفاده از یک وب سرویس و اتصال کلاینت ها به اون(همون Soap که دوستان اشاره کردن و ...)
2.2- استفاده از دیتا اسنپ و اتصال کلاینت ها به سرور اون
3- برنامه بصورت تحت وب باشه و روی امنیت سمت سرور تمرکز بیشتری داشته باشید. توی دلفی مواردی چون Intraweb و UniGUI قابلیت پیاده سازی برنامه تحت وب رو بشما میده.

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

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

من با دیتا اسنپ کار کردم و پروژه ای نیمچه کشوری انجام دادم. اما چون تازه داشتم با اون آشنا میشدم، خیلی دردسر کشیدم تا کار دستم بیاد.

موارد دیگه رو هم در حد تست سروکله زدم

موفق باشیم

hadisalahi2
شنبه 13 شهریور 1395, 18:00 عصر
2- یک لایه واسط ایجاد کنید که بین کلاینت و بانکتون قرار بگیره و بدین طریق امنیت رو بالاتر ببرید


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



2.2- استفاده از دیتا اسنپ و اتصال کلاینت ها به سرور اون


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

متشکرم

hp1361
یک شنبه 14 شهریور 1395, 08:23 صبح
بله امنیت یک رکن مهم در سامانه هستش و این مورد فکر کنم بهتر باشه



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

مچکرم

سلام

دیتا اسنپ امکان پیاده سازی نرم افزار بصورت N-Tier رو فراهم میکنه. در عکس زیر شمای کلی برنامه های نوشته شده با این تکنولوژی نمایش داده شده:

142394

نحوه کار دیتا اسنپ بدین صورته که در سمت سرور توابعی نوشته خواهد شد که این توابع توسط کلاینت ها مورد استفاده قرار خواهد گرفت(همانند وب سرویس). این توابع میتونن خروجی نوع های عادی مثل int, boolean, string ,... داشته باشند و یا نوع های پیچیده همچون دیتا ست و اشیاء(برای نوع اشیاء شما باید عملیات تبدیل به JSON رو خودتون شخصاً انجام بدین).

بعد از پیاده سازی توابع در سمت سرور(اسم پیش فرض یونیت ServerMethods) یونیت مربوطه رو بعنوان چیزی که قراره کلاینتها به اون دسترسی داشته باشند به سرور معرفی میکنید(کامپوننت سرور TDSServerClass)

با Start کردن کامپوننت DSServer سرور دیتا اسنپ فعال شده و کلاینت ها میتونن به سرور متصل شده و توابع رو فراخوانی کنند.

برنامه نویسی سمت کلاینت هم بدین صورته که در زمانیکه سرور درحال اجراست، یونیت Proxy که آماده شده ی همون یونیت ServerMethods هستش (البته آماده ی استفاده در سمت کلاینت) بطور خودکار توسط IDE دلفی ساخته شده و برنامه نویس با Create یک نمونه از اون از توابع مربوطه استفاده میکنه!(چقدر سرعت برنامه نویسی بالا رفت با این تکنولوژی)


برای یادگیری کتاب http://s2.picofile.com/file/7882610749/DelphiXE2_DataSnap_Dr_Bob_2012.rar.html خیلی خوبه و همچنین این مثال ها https://www.embarcadero.com/br/rad-in-action/delphi-labs

موفق باشیم

hadisalahi2
پنج شنبه 18 شهریور 1395, 12:08 عصر
با سلام و تشکر ویژه به خاطر مطالب مفیدت
من فکر میکنم این کار خیلی ساده و راحتی باید باشه

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

K.Mohammadreza
دوشنبه 29 شهریور 1395, 11:19 صبح
سلام نخواستم تاپیک مجزایی ایجاد کنم. من میخوام یک سرویس ویندوزی بنویسم که کار اتصال به پایگاه داده را برام انجام بده و برنامه سمت کلاینت برای ارتباط با دیتابیس از این سرویس که روی ویندوز هست استفاده کنه. یعنی کلاینت به سرویس یکسری پارامتر ارسال کنه و سرویس به دیتابیس کار کمه و نتیجه را به کلاینت برگردونه. بعنوان مثال یک query توی سرویس باشه و ما commandtext را بهش بدیم و دستور اجرا و سرویس کامند را اجرا کنه و نتیجه ی اجرای کامند را هم به ما بگه. موضوع بعد اینست که چطوری از ویرایش یک رکورد توسط دو یا چند کلاینت به طور همزمان میشه جلوگیری کرد؟ و جلوگیری از ثبت اطلاعات تکراری بطور همزمان از طریق چند کلاینت؟ میخوام سرویس در حال اجرا این موارد را چک کنه و پیغام مناسب به برنامه کلاینت بده با تشکر