Log In و Log Out

سلام . خسته نباشید . من دنبال یه صفحه Log In و Log Out ساده می گردم در عین حال تمام نکات امنیتی (SQL Injection , . . . ) توش رعایت شده باشه . من مدتها هست که می خوام یه صفحه Log In بسازم اما با مشکل مواجه می شم . می خواستم اگه می شه یکی از اساتید یه زحمتی بکشه و اینو به من بده تا بتونم ازش یاد بگیرم . یک دنیا ممنون . منتظرم . :neutral:
 

sajadmaz

Member
چیز خاصی نداره خودت میتونی بنویسی
1- فرم Html
2- گرفتن متغییر ها تو PHP چک کردن اونا (صحت اطلاعات)
3- اتصال به بانک اطلاعات و چک کردن اطلاعات کاربر با اطلاعات دیتا بیس
4- اگه درست نبود برش گردون تو فرم لوگین و یه پیغام بهش بده
5- اگه درست بود یه سشن یا کوکی براش ست میکنی و منتقلش میکنی به صفحه مورد نظر
6- تو صفحه مورد نظر سشن و یا کوکی رو چک میکنی که لوگین شده که به این صفحه اومده یا نه
7- اگه لوگین بود صفحه رو بهش نشون بده اگه نبود برش گردون به فرم لوگین


واسه خارج شدن هم کافی هرموقع درخواست خروج داد سشن و کوکی هاشو unset کنی
 
سلام . sajadmaz عزیز یک دنیا ممنون از شما بابت پاسختون .
من تا گزینه 3 مشکلی ندارم . اما از بقیش یه کم مشکل دارم .
الانم نشستم یه فرم درست کردم که اطلاعات رو می گیره از کاربر و چک می کنه ، حالا نمی دونم در صورت صحت یوزر و پسورد کاربر چه جوری باید کاربر رو بفرستم به صفحه Admin.php ؟
آیا باید با Action فرم اینکارو بکنم یا تابع Header ؟ معمولا پرتالهای دیگه کدومیکی از این کارها رو می کنند ؟
مشکل بعدی من هم با سیشن ها هست یعنی نمی تونم کاری کنم که کاربر وقتی Log In کرد تا زمان Log Out توو صفحه admin بدون گرفتن یوزر و پسورد وارد شه .
ممنون می شم اگه لطف کنید و کد من رو ( همراه با نکات ایمنی ) کامل کنید . یک دنیا ممنون از شما .
 

پیوست ها

  • 4.4 کیلوبایت بازدیدها: 12
سلام به sajadmaz عزیز . یک دنیا ممنون از شما ، خیلی چیزا از کدهای شما یاد گرفتم ، امیدوارم بتونم جبران کنم . فقط یه سری مشکل دیگه هم دارم ، شرمنده :
1 ـ Log Out نمی تونم درست کنم .
2 ـ می خوام این پنجره Log In توی همین فایل Admin.php باشه ، یعنی Index.php حذف شه . می شه ؟
3 ـ از لحاظ امنیتی این کد امن هست ؟ یعنی هک نمی شه ؟
من یه سری تغییرات کوچولو انجام دادم روو کدتون . ممنون می شم اگه بررسیش کنید و مشکلاتم رو حل کتید . یک دنیا ممنون از شما .
 

پیوست ها

sajadmaz

Member
خواهش میکنم عزیزم وظیفست ، من تا اونجایی که میشد از لحاظ امنیتی کاملش کردم

با دستور
PHP:
preg_replace("([^a-z0-9_]*)", '', $user);
کاربر رو محدود میکنیم به کارکتر های مجاز اگه بخوایی از این هم امن تر باشه میتونی سشن هاتو توی دیتابیس ذخیره کنی

:wink:

پسورد هاتو همیشه و حتما بصورت کد شده توی دیتا بیس ذخیره کن

برای اجراش هم فقط admin.php رو اجرا کن login توی آدمین میاد

موفق باشی
 

پیوست ها

آخرین ویرایش:
سلام . واقعا نمی دونم چه جوری ازتون تشکر کنم ، خیلی لطف کردید . شما هی لطف می کنید منم هی پر روو می شم یه سئوال دیگه می پرسم .
سئوال : واسه اینکه تا زمانی که LOG OUT نکردم از Admin خارج نشه باید Session ها رو توو دیتابیس ذخیره کنم ؟ اخه الان بهد از 10 - 15 دقیقه که مرورگر رو می بندم باید واسه وروود دوباره Log In کنم . ممنون :sad:
 

sajadmaz

Member
پرسیدن عیب نیست ندونستن عیب هست

اینکه بعد 10-15 دقیقه خودش logout میشه بخاطر تنظیمات session time هست و از لحاظ امنیتی هم درستش همینه چون مثلا تو اگه سیستم رو ترک کنی یکی بیاد با پنل admin چه حالی بهش می ده :D میتونی time expire رو کم و زیاد کنی

PHP:
//session.gc_maxlifetime

//example 

ini_set('session.gc_maxlifetime', 600);
600 یعنی 10 دقیقه دیگه اگه کاربر سشن update نشد expire کن

ذخیره سازی توی دیتا بیس به چند دلیل بهتره
1- میتونی کاربر های آنلاین رو بشماری
2-میتونی ببینی الان دقیقا کجا هست و مشغول چه کاری هستن
3- از لحاظ امنیتی هم خیلی بهتر از فولدر tmp هست
4- و ...
 

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

بالا