کلاس DB_Connection برای اتصال فلش به MySql

DaDaDooDoo

کاربر VIP
سلام .

این کلاس رو برای اتصال فلش به بانک اطلاعاتی MySQL نوشتم . این ارتباط غیر مستقیم و از طریق زبان سمت سرور PHP برقرار می شه .
فعلاً ورژن آلفای این کلاس رو ارائه کردم تا ببینم چه فیدبکی خواهد داشت و اگر مورد استقبال قرار گرفت اون رو کامل و پابلیک می کنم .

نام کلاس : DB_Connection
سازنده کلاس : کوروش شریفی
ورژن : آلفا (Demo)
تاریخ انتشار : 1390/03/21

کاربرد کلاس ارائه شده این هست که شما می تونید اطلاعات یک فرم فلش رو وارد دیتابیس MySQL کنید یا اطلاعات موجود در دیتابیس رو ویرایش کنید .

آموزش :

چند نکته مهم در مورد استفاده از این کلاس هست که باید بدونید :

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

مثال :

PHP:
var database_connection:DB_Connection = new DB_Connection();
database_connection.add("server","user","password","db name","table name",fields,values);

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

توضیح پارامتر ها :
server : که نام سرور مورد نظر هست ( معمولاً localhost )
user : نام کاربر دیتابیس
password : پسورد دیتابیس ( کاربر دیتابیس )
db name : نام دیتابیس هدف
table name : نام جدول مورد نظر
fields : نام فیلدهای هدف
values : مقادیری که باید اضافه بشن

نکات مهم :

تمامی پارامترها باید از نوع رشته (String) باشند .
در مورد fields و values باید به شکل زیر عمل شود :
مثال :
PHP:
fields = "id name lastname age";
values = "1 kourosh sharifi 24";
*دقت کنید که تعداد فیلد ها و تعداد مقادیر ارسالی باید برابر باشه .
*نام هر فیلد یا مقدار در رشته از طریق فاصله خالی ( space ) باید جدا بشه .
*در وارد کردن نام فلید ها دقت کنید ، باید دقیق باشن .
*در تعداد فیلد ها محدودیت وجود ندارد .
*اولین فیلد باید uniq باشه ، چون بقیه فیلد ها بر اساس اون ذخیره می شه .
*اگر فیلد اول ( در اینجا id ) تکراری باشه ، بقیه مقادیر در دیتابیس overwrite خواهد شد . ( Update ) .

برای تست و استفاده از این کلاس به دلیل وجود یک زبان واسط سمت سرور شما باید در محیط لوکال هاست این کار رو انجام بدبد . من خودم از wamp server استفاده می کنم ، اینم لینک دانلودش :

http://www.wampserver.com/en/download.php

از fla پابلیش html بگیرید و از طریق یک web browser اون رو لود کنید .

این کلاس در حد دمو هست و ضعف های زیادی داره ، اما تا حدود زیادی قابل استفاده هست .
نظر شما دوستان برای گسترش یا عدم گسترش این کلاس بسیار برای من مهم هست ، با توجه به اینکه کلاس های دیگه ای هم برای این کار موجود هست ( خارجی ) مثل ssql که البته من خودم باهاشون کار نکردم .

در صورت گسترش متدهایی مثل delet , search , update و retrive اضافه خواهد شد انشالاه .
 

پیوست ها

  • DB_Connection.rar
    674.3 کیلوبایت · بازدیدها: 190
آخرین ویرایش:

zxcv900

Member
خیلی عالیه دوست عزیز و ممنون از زحمتی که کشیدی
اما یک نکته رو همیشه به خاطر داشته باش که استفاده از این روش به لحاظ امنیتی ریسک بسیار بالایی دارد .
به نظر بنده اتصال به mysql به صورت مستقیم از طریق فلش یکی از نا امترین روشهاست و این کار میتونه حفره امنیتی بزرگی رو در وب سایت استفاده کننده به وجود بیاره چون فایلهای فلش هر چقدر هم که Encrypt شده و امن باشه باز هم از طریق memory dumping میتوان آنرا دیکد و به اصطلاح دیکامپایل کرد و به کد اکشن آن و در نهایت یوزر و پس دیتا بیس mysql دسترسی پیدا کرد.
درضمن کلاس مشابه خارجی کلاس شما قابلیت اتصال مستقیم به mysql رو از طریق خود فلش و بدون نیاز به فایل سمت سرور جانبی به شما میده
همچنین برای اینکه بتونید کلاس خودتون رو روی هاست اینترنتی خودتون تست کنید باید به جای localhost از آدرس آی پی هاستی که فایل فلش رو اونجا آپلود کردی برای دسترسی به دیتا بیس استفاده کنی

بازم ممنون از تلاشت
یا علی
 
آخرین ویرایش:

DaDaDooDoo

کاربر VIP
بله من موافقم .
اما در مورد decompile باید بگم می شه تنظیمات رو از یک منبع خارجی خوند ( مثل XML ) و با ستفاده از روش های hash اون رو به php پاس داد .
اما این هم کافی نخواهد بود و همچنان مشکل امنیت پا برجاست ، در ضمن همونطور که دوستمون اشاره کرد کلاس هایی بسیار قوی تر از این کلاس موجود هست که قابل مقایسه با یه همچین کلاسی نیستند .
شاید افراد مبتدی و فقط در موارد پیش پا افتاده بتونن از این کلاس استفاده کنند . ( واسه اینکه کارشون راه بیفته ) .
 

BehrouzPc

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

البته دیگه خیلی ساده است کورش عزیز ، کلاس های مشابه را برای ارتقاء مشاهده کنید ، انشاء الله که در نهایت یه کلاس خوب و کاربری باشد
نام گزاری هم بهتر هست بدون _ باشد (البته از نظر فنی هیچ مشکلی ندارد)

موفق و پیروز باشید
 

meysamk

Active Member
با عرض سلام،
در کل، اصل این ایده خیلی جالبه. ولی از بحث امنیت که عبور کنیم فکر میکنم در همین مثالی که آوردید هم مشکلی باشه:
اگر من اطلاعات رو به این شکل بخوام وارد کنم، نتیجه کار چه خواهد شد؟

PHP:
fields = "id name lastname age";
values = "1 amir mohamad sharifi 24";

به نظر من باید یک علامتی، چیزی، برای جدا کردن مقادیر قرار بدید. البته جناب BehrouzPc هم اشاره ای به این موضوع کردند.
در کل برای شما آرزوی موفقیت می کنم.
 

DaDaDooDoo

کاربر VIP
بله ، درسته ، عوضش می کنم .
البته فکر می کنم بهروز خان در مورد نام گزاری کلاس به اون نکته اشاره کردن ( از لحاظ استاندارد های نام گذاری )
 

Avang2005

مدیر انجمن
سلام دوست من

مرسی کوروش جان . جالب بود

مسئله امنیت هم میشه همونطوری که بهروز عزیز گفت از روش کدینگ استفاده کرد هرچند روش کدینگ هم فکر نمیکنم زیاد امن باشه و میشه دیکد کرد

ولی در کل جالب بود
 

kodex2

کاربر فعال
سلام کوروش،

خیلی خوب شده. فقط چند تا ایراد کوچولو داره. جای فکر کردن زیاد داره.

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

دوم اینکه نحوه اینپوت فیلد هات ایراد داره. مثلا وقتی می خوای یه استرینگ رو سیو کنی نمی تونی اسپلیت کنی بر اساس یه کرکتر خاص چون ممکنه یوزر بخواد از هر چیزی استفاده کنه.
می تونی واسش یه متود AddField بزاری یا اینکه بیای یه کلاس واسش بنویسی و هرزمان که می خواد یه row اضافه کنه یا ادیت کنه یا delet کنه بیاد یه instance از اون رو پاس بده. در کل ایده جالیه. اون راهه رو هم که بهت گفتم امتحان کن.:rose:
 

mbgame

New Member
سلام به همگی دوستان! یک سوال خیلی مهم داشتم .
امنتریت روش موجود برای اتصال db به flash چیه؟
مثلا بازی های آنلاینی مثل texas holdem poker که جزو بازی های آنلاین facebook هست و به صورت flash هست از چه کدینگی استفاده کرده!
اگر وب سایت ما که یک سایت بازی آنلاین هست از روش رمزگداری نامتقارن استفاده کنه باز هم احتمال هک دیتابیس وجود داره! اگه وجود داره لطفا امنترین روش رو توضیح بدین!

با تشکر
 

جدیدترین ارسال ها

بالا