PDA

View Full Version : راهنمایی در نحوه ایجادقسمت مدیریت برای یک سایت



babak869
جمعه 21 مرداد 1384, 23:49 عصر
با سلام به همه دوستان
من میخوام 1 سایت طراحی کنم که یک قسمت داشته باشه که فقط مدیر سایت بتونه به اون قسمت دسترسی داشته باشه و با دادن یوزر و پسورد وارد بشه و بتونه که تغییرات جزیی و کلی در سایت ایجاد کنه.از دوستان خوبم خواهشمندم اگه میتونید منو راهنمایی کنید که چطور میتونم این کار رو انجام بدم
ممنونم

3nitro
شنبه 22 مرداد 1384, 00:06 صبح
خب یک صفحه ورود باید داشته باشی که میتونه یوزر / پسورد رو از دیتابیس بخونه یا به صورت یک ثابت در صفحه قرار داده شده و با اون چک میشه . بعد از صحت ورود باید یک Session تعریف کنی که در طول برنامه و در صفحات مدیریت مشخص بشه که این کسی که این صفحه رو میبینه آیا مدیر هست یا نه و مجبور نشی هی برای هر صفحه مدیریت یک بار یوزر / پسورد رو از اول بخوای .
کدش رو بلد نیستم . دیگر دوستان راهنمایی می کنند .

babak869
شنبه 22 مرداد 1384, 01:41 صبح
ممنونم دوست عزیز
اگه امکان داشته باشه که یک نمونه کد اینجا بزارید خیلی ممنون میشم.چون خیلی بهش احتیاج دارم
متشکرم

aliramazani
جمعه 04 شهریور 1384, 19:03 عصر
** ویرایش شد **
اینجا مکانی برای تبلیغات شما نیست.
می توانید در بخش آگهی ها تبلیغ دهید.

cybercoder
سه شنبه 08 شهریور 1384, 12:06 عصر
دوست عزیز می تونی نمونه یک CMS رو که دارای کنترل پنل کاملا on-line هست از آدرس زیر که نوشتم برداری و ببینی : http://www.mamboserver.com یا پروژه توسعه فارسیش در http://www.mambo.ir یا http://www.mamboportal.ir که به صورت فارسی هست.
البته من به شخصه هیچ وقت کنترل پنل رو به صورت on-line نمی ذارم. می شه یه برنامه با Delphi یا ... نوشت که به بانک اطلاعاتی وصل بشه و اون رو ویرایش کنه یا فایل ها رو تغییر بده. این کار مشکل تره ولی دو سه تا برتری داره
1- کاملا Security درش رعایت می شه. حتی شما می تونید به بانک Mysql خودتون بگید که به کدوم Host حتی اجازه ورود بده.
2- فقط از یک زبان استفاده می کنی لازم نیست XML,PHP,ASP,Jscript,... رو مخلوط هم بزنی
3- می دونی که Pakage ای که ساختی دست کیه یا از کجا connect می شه.

موفق باشی

babak869
پنج شنبه 10 شهریور 1384, 12:07 عصر
ُسلام
دستتون درد نکنه واقعا عالی بود
ممنونم

houtanal
پنج شنبه 10 شهریور 1384, 13:38 عصر
البته من به شخصه هیچ وقت کنترل پنل رو به صورت on-line نمی ذارم. می شه یه برنامه با Delphi یا ... نوشت که به بانک اطلاعاتی وصل بشه و اون رو ویرایش کنه یا فایل ها رو تغییر بده. این کار مشکل تره ولی دو سه تا برتری داره
1- کاملا Security درش رعایت می شه. حتی شما می تونید به بانک Mysql خودتون بگید که به کدوم Host حتی اجازه ورود بده.
2- فقط از یک زبان استفاده می کنی لازم نیست XML,PHP,ASP,Jscript,... رو مخلوط هم بزنی
3- می دونی که Pakage ای که ساختی دست کیه یا از کجا connect می شه.



چی میگی تو؟

مورد اولت که ربطی مداره ، مورد دومت که مزخرفه، مورد سومت هم در راستای دو مورد قبلی

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

دیگه از این ایده های فضایی ندیا!

cybercoder
جمعه 11 شهریور 1384, 16:25 عصر
من نظر خودم رو گفتم دلیلی هم برای توهین شما نمی بینم

Mohammad Minaei
یک شنبه 13 شهریور 1384, 11:07 صبح
چی میگی تو؟

مورد اولت که ربطی مداره ، مورد دومت که مزخرفه، مورد سومت هم در راستای دو مورد قبلی

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

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

oxygenws
یک شنبه 13 شهریور 1384, 13:39 عصر
من با هوتن موافقم.
امنیت چنین سیستمی، با روشی که nobody نوشتند، نه تنها زیاد نمی شه، بلکه خیلی خیلی هم پایین میاد :)

houtanal
یک شنبه 13 شهریور 1384, 14:44 عصر
هوتن جان شاید منظور "هیچ کس" اینه که یه روش سریع تر بسازه. مثل آژاکس!! در ضمن می شه فقط یه فایل تو سرور ساخت که تو هر درخواست اول مسائل امنیتی رو چک می کنه و بعد هم اگه مشکلی نبود "مثلا" یه خروجی xml می ده بیرون. این طوری کلاینت می تونه با سرور در ارتباط باشه. به نظر من که ایده ایشون کاملا عالیه و خود ما هم یک پروژه رو شروع کردیم که در اون یه برنامه نویس دلفی بخش مدیریت در کلاینت رو می سازه. (البته بخش مدیریت تحت سرور هم داره)
در ضمن هوتن جان اصلا توهین نکردن!!
هوتن جان فقط یه کم نرم تر صحبت کنی بهتره. شاید متوجه نشی اما دیگران ناراحت می شن. (دو بار هم منو ناراحت کردی!! اینو اینجا نوشتم چون دیگه یه مسئله عمومیه!!)

ببین خوشگلم ، تو اجازه نداری در یک سرور اشتراکی هیچ گونه پورتی رو باز کنی(در صورتیکه داری رو معماری کلاینت / سرور فکر می کنی).در غیر این صورت هم چیزی که تو می خوای بنویسی دقیقا یه مرورگر وبه.

حتی اگر هم اجازه داشته باشی، مضاف بر آسیب پذیری های سرویس های معمول + آسیب پذیری های برنامه های تحت وب ، تو داری به برنامت آسیب پذیری های محتمل در سروری که داری می نویسی رو هم اضافه می کنیپ

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

Mohammad Minaei
یک شنبه 13 شهریور 1384, 15:48 عصر
ببین خوشگلم ، تو اجازه نداری در یک سرور اشتراکی هیچ گونه پورتی رو باز کنی(در صورتیکه داری رو معماری کلاینت / سرور فکر می کنی).در غیر این صورت هم چیزی که تو می خوای بنویسی دقیقا یه مرورگر وبه.

حتی اگر هم اجازه داشته باشی، مضاف بر آسیب پذیری های سرویس های معمول + آسیب پذیری های برنامه های تحت وب ، تو داری به برنامت آسیب پذیری های محتمل در سروری که داری می نویسی رو هم اضافه می کنیپ

قضیه استفاده از سیستم webbased به همراه اپلیکیشن های متداول صرفا برای منظور های خاص (مثل نرم افزار های MIS ) یا ... می تونه توجیح داشته باشه که اون هم با توجه به هزینه ای که برای سرور های اختصاصی و ایمن سازی کار صورت می گیره معقوله
نه!! برنامه ما کلا بخشی داره که ورودی و خروجی xml داره!! این طوری تو هر request رمز عبور با روش دیگه ای چک می شه!! در ضمن شاید باورتون نشه اما بخش ورودی و خروجی xml خودش یه قالی (استایله!!)
در ضمن بله! برنامه ما به مرورگر وب هم شباهت داره!!

ببین خوشگلمترجیح می دم مثل قبل تند و خشن با من حرف بزنید. این طوری نه! نه افراط و نه تفریط!! (باید تو pm می گفتم اما بازم فکر می کنم یه مسئله عمومیه!)

Mohammad Minaei
سه شنبه 15 شهریور 1384, 16:29 عصر
فقط یه چیزی رو هم فراموش نکن.
اگر می خوای بخش مدیریت مورد بحث رو داشته باشی ورودی و خروجی رو بر اساس یک کلید تعیین شده رمز نگاری کن.

oxygenws
سه شنبه 15 شهریور 1384, 17:33 عصر
:) من همچنان 100% با هوتن موافقم :)

Mohammad Minaei
چهارشنبه 16 شهریور 1384, 10:55 صبح
به هر حال هر کس نظری داره و نظر همه هم برای من محترمه.
اما اگه کد ها بر اساس یک کلید مخفی رمزنگاری بشن (من اینو تو سمینار شهید سلطانی فهمیدم) حتی اگر هم اطلاعات رد و بدل شده توسط دو طرف مربوط به رمز admin هم باشه احتمال لو رفتنش01 درصده!!
البته باید الگوریتم رمزنگاری قدرتمند باشه تا حجم داده و پروسس سرور زیاد نشه.

cybercoder
پنج شنبه 24 شهریور 1384, 11:20 صبح
الگوریتم رمز نگاری من md5 آقای رینولد ریوست بود.
دو تا هکرم روش کار کردن
فقط یه احمق می شینه packet های hash شده رو analyse کنه.

oxygenws
پنج شنبه 24 شهریور 1384, 13:42 عصر
الگوریتم رمز نگاری من md5 آقای رینولد ریوست بود.
دو تا هکرم روش کار کردن
فقط یه احمق می شینه packet های hash شده رو analyse کنه.
میشه دقیق تر توضیح بدی؟؟
به نظر من، تا این حدی که توضیح دادی، hash کردن رموز عبور ربطی به قضایایی که ما صحبت کردیم نداره، اون یه جور امنیته، اینم یه جور دیگه.
حالا فعلا شما مرحمت کن و توضیحات تکمیلی رو بده تا بیشتر بحث کنیم.

Mohammad Minaei
جمعه 25 شهریور 1384, 07:54 صبح
ببین اصلا چه ربطی به md5 داره؟!!

armin390
شنبه 16 مهر 1384, 21:20 عصر
این تاپیک رو تازه خوندم
دوستان بحث خیلی جالبی به نظر می رسه

اینجا می شه برم تو جبهه هر یک از دو گروه که بخوام یا مثل یه نفر پسر خوب که نمی خوام حالا بگم کی برم وسط بمونم
ولی از اونجایی که خیلی... هستم با اینکه با طریقه بیان nobody مخالفم(بخاطر تیکه تیکه بودن و مواقعی بی ربط بودن گفته هاش) می رم تو جبهه اون تا nobody تو ضایع شدنش من رو با خودش شریک بدونه و احساس سرخوردگی نکنه(شوخی کردم)
#####################
ایده:
یک برنامه در سمت مشتری(CP) که به یک برنامه در سرور(SP) وصل می شه و به صورت کد و دیکد درخواست هاش با SP ارتباط برقرار میکنه.
کدکردن برخی درخواست ها می تونه بدون بازگشت باشه مثل رمز ورودی و ....
برخی کدها هم باید قابل برگشت باشه مثل محتویات یک صفحه وب و ....
مزایا:
1-امنیت توش یه مقدار از اهمیت بیشتری برخورداره
2-از هر(نه هری!) زبان برنامه نویسی که بخوای می تونی توی CP استفاده کنی
3-می تونی برای هر کپی از برنامه CP که ساختی یه کد امنیتی بهش بدی و در سمت سرور فقط اون کدها رو مجاز بدونی
######################
لطفا اگر می گید این ایده امنیتش قابل ملاحظه تر نسبت به استفاده از مرورگر برای کنترل سایت نیست یا هر نظری دارید نظر بدید!

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

houtanal
شنبه 16 مهر 1384, 21:36 عصر
" الگوریتم رمز نگاری من md5 آقای رینولد ریوست بود. "
مقدار هش شده ات رو بده ببینم

oxygenws
یک شنبه 17 مهر 1384, 10:06 صبح
لطفا اگر می گید این ایده امنیتش قابل ملاحظه تر نسبت به استفاده از مرورگر برای کنترل سایت نیست یا هر نظری دارید نظر بدید!
امنیتش از مرورگر بیشتر نیست.
md5 شدن رمز عبور در سمت کلاینت، هیچ سودی برای بالا بردن امنیت نداره.


برخی کدها هم باید قابل برگشت باشه مثل محتویات یک صفحه وب و ....
منظورت دقیقا چه روش هاییست؟؟
zip کردن یک فایل هم می تونه یه جور روش کد کردن به حساب بیاد.

Mohammad Minaei
یک شنبه 17 مهر 1384, 14:44 عصر
داداش "کد رمز نگاری شده + کلید = کد ساده"
خیلی هم خوبه!

armin390
یک شنبه 17 مهر 1384, 19:18 عصر
سلام
#خوب oxygenws عزیز گفتن:
>>امنیتش از مرورگر بیشتر نیست.
>>md5 شدن رمز عبور در سمت کلاینت، هیچ سودی برای بالا بردن امنیت نداره.
من می گم:
یعنی شما می گی که یه ارتباط که اطلاعات حساس رو بدون تغییرات به سرور می فرسته با زمانی که این اطلاعات رو کد کنی (مثلا حتی زیپ کنی! و بفرستی) با هم فرقی نمی کنه؟
به نظر من فرق می کنه خوب فرض می کنیم ما یه پروژه خیلی بزرگ رو اینترنت داریم و می خواهیم اون رو از راه دور کنترل و مدیریت کنیم حالا شخص ثالثی که اسمش رو میذارم دسته اول (یه هکر) که در جریان کار ما به طریقی(که اون طریق بستگی به هنر و طریقه کنجکاوی کردنش داره) قرار می گیره و اونقدر این موضوع هم براش اهمیت داره که سرش وقت بزاره(منظورم بعید بودن است)-این تا اینجتا-
حالا وقتی که شما به اینترنت وصل می شی خوب مستقیما کامپیوترت با کامپیوتر سرور ارتباط برقرار نمی کنه و بینش باید از چند تا مسیر بگذره خوب حالا طرف می یاد و وقتی شما به اینترنت وصلید خودش رو به عنوان یکی از این سیستم هایی که تو مسیر هست جا می زنه که اصلا کار راحتی نیست و دنگ و فنگ اساسی داره که طرف گذشته از بدست آوردن ISN سرور باید بیاد و کلیه پکت ها رو به ترتیب ذخیره کنه و آنالیز کنه و چیزی که می خواد رو به دست بیاره البته این روش بعید است خوب کافیه طرف یه بکدور رو کامپیوتر شما بذلره و مثلا پکت های خاصی رو ذخیره کنه و بعد هم به جایی بفرسته.
حالا اگه این اطلاعاتت رو encypt شده نفرستادی اون وقت طرف کافیه بعد از گوش وایستادن اون اطلاعات مشخص رو به بدست بیاره و خودش بره و سایت رو مدیریت کنه!!! ولی اگه با الگریتمی+دستکاری این اطلاعات رو encrypt کنی و در ضمن پای یه مشخصه دیگر رو هم وسط بیاری(خلاصه بپیچونی) اون موقع کار طرف سخت تره می شه!
^البته این کار دور بنظر می رسه.
خوب دسته دومم کسی که واقعا در مسیر ارتباطی شما با مقصد قرار داره مثال نزدیکش سرور یه ISP است که طرف بی وجدان که باز هم به طریقی می یاد و پکت های ارسالی شما رو کنترل می کنه خوب وقتی شما مثلا لوگ این می شی خوب اون علاوه بر امکان بدست آوردن اطلاعات مشخص امکان تغییر دادن اطلاعات ارسالی به نفع خودش رو داره.
و ....

# oxygenws عزیز گفتن:
>>منظورت دقیقا چه روش هاییست؟؟
>>zip کردن یک فایل هم می تونه یه جور روش کد کردن به حساب بیاد.
آره می تونه باشه ولی امکان دیکد کردنش خیلی ساده است و ارزش استفاده کردن از zip کردن به صورت مستقل پایین است خوب خرجش یه سیرچ تو SourceForge و برای محکم کاری استفاده تلفیقی از چند تا از اونا و دستکاری خروجی است.
کد و دیکد کردن صفحه های ارسالی یا دریافتی هر چند لازم به نظر نمی رسه ولی به خاطر این گفتم که طریقه اول کار که همون پی بردن به اصل کاره یه ذره مشکل تر بشه.
#Mohammad Minaei عزیز گفتن:
>>داداش "کد رمز نگاری شده + کلید = کد ساده"
>>خیلی هم خوبه!
خوب داش من طرف نه سورس CP رو داره نه SP که کلید رو به دست بیاره در ضمن اگه کلید بسته به شرایطی تغییر کنه دیگه بتر.
ختم کلوم احتمالن شوما فک کردی که SP خودش CP رو توولید می کنه مثل جاوا اسکریپت تو یه صفحه html این شد به ضرر جبهه شما __ممنون یادم رفته بود اینو بیگم.
چاکرپیچتیم!
----
اولا من نگفتم برای الگوریتم بدون باز گشت از md5 استفاده شه هر چند اگه از اونم استفاده کنیم می شه نتیجش رو با یه الگوریتم ساده (مثلا یه بایت رو ~ کرد) تغییر داد اون موقع چی؟
کافی تو google سرچ کنی decrypt md5 تا...
در ضمن oxygenws می تونم بپرسم چرا میگی امنیتش با مرورگر فرق نمی کنه؟
یادآوری:شما نه سورس CP رو داری نه SP
-----
همه صحبتهایی که اینجا می شه (فعلا!) در حد تئوریه

oxygenws
دوشنبه 18 مهر 1384, 09:35 صبح
یعنی شما می گی که یه ارتباط که اطلاعات حساس رو بدون تغییرات به سرور می فرسته با زمانی که این اطلاعات رو کد کنی (مثلا حتی زیپ کنی! و بفرستی) با هم فرقی نمی کنه؟
نه، کسی که بخواد کرک کنه، اون رو هم می تونه کرک کنه.


کلیه پکت ها رو به ترتیب ذخیره کنه و آنالیز کنه و چیزی که می خواد رو به دست بیاره البته این روش بعید است خوب کافیه طرف یه بکدور رو کامپیوتر شما بذلره و مثلا پکت های خاصی رو ذخیره کنه و بعد هم به جایی بفرسته.
نه دقیقا، راه های دیگه ای هم هست. به نظرت مخابرات چطوری سایت ها رو فیلتر می کنه؟!!


اون موقع کار طرف سخت تره می شه!
دقیقا، فقط ممکنه طرف رو خیلی کم اذیت کنه.
ولی روش هایی هست که طرف رو بیشتر از این حرفا اذیت کنه، مثلا به مدت چندین قرن اذیتش کنه :)


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


در ضمن oxygenws می تونم بپرسم چرا میگی امنیتش با مرورگر فرق نمی کنه؟
به چند دلیل...
1- md5 کردن یا هر جور کد کردن یک طرفه برای ورود به یک مکان امن سمت سرور بی فایده است. حتی اگر یکی از حروف اون وسط به ~ تبدیل بشه، در حقیقت **اصلا** مهم نیست. تفاوت "salam" با "137850aef94fcd89..." در ارسال به سرور هیچی نیست. می فهمی چی می گم؟؟
2- برای یک ارتباط امن، باید از کلید های جفتی (کلید های عمومی و خصوصی) استفاده بشه، که این کار رو به راحتی و سادگی تمام در مرورگرها داریم (ر.ک. https یا توابع mcrypt یا ...)
3- به هر ترتیب، هر کاری بخواید شما برای کد کردن با یک برنامه خارجی بکنید، میشه با جاوا اسکریپت در خود مرورگر انجام داد. (لطفا این مورد رو بی خیالش و در موردش بیشتر از این صحبت نکنیم، فقط گفتم که بدونی، همین. :) )

Mohammad Minaei
چهارشنبه 20 مهر 1384, 05:34 صبح
من تا حدودی با آقای راد موافقم.
اما یه چیزی:
مثلا ما یه بخش مدیریت وب سایتی داریم که از روش آژاکس برای کارش استفاده می کنه.
اونوقت سرور باید بسته های کوچک اطلاعات رو به سمت کلاینت بفرسته دیگه. اینجا کار یه ذره سخت می شه. ممکنه اطلاعات لو بره.
اما اگه در کلاینت ما خودمون یه برنامه شبیه مرورگر ساخته باشیم و اطلاعات رو بوسیله یک کلید یکتا رمزنگاری کنیم اونوقت می تونیم به راحتی و با خبال آسوده و با سرعت و امنیت بالا کارمونو انجام بدیم دیگه.
البته این رمزنگاری می تونست توسط جاوا هم انجام بشه. اما ممکنه از اون طریق کلید لو بره!