sabermohamadi

تحلیل کد php زیر

12 پست در این موضوع

سلام دوستان

ممنون میشم کد زیر رو برام تحلیل کنید

البته اینم تحلیل من هستش

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

یه مشکلی که هست دیتا بیست پاک شده و بک آپ ندارم بصورت دستی هم میسازم باز کانکت نمیشه

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

<?
class my_user{
function register($username , $password ){
$sql_login=mysql_query("SELECT * FROM `user` WHERE `username` = '".get_sql_injection( $username )."' ");
$sql_r = mysql_fetch_array( $sql_login );
if ( $sql_r['id'] ){
	return 'no';
}else{
	@mysql_query("INSERT INTO `user` ( `username` ,`password` ) VALUES('".get_sql_injection( $username )."' ,'".get_sql_injection( password_md5($password ) )."')") or die(mysql_error());
	return 'ok';
}
}
function login($username , $password , $remember){
$sql_login =mysql_query("SELECT * FROM `user` WHERE `username` = '".get_sql_injection( $username )."' AND  `password` = '".get_sql_injection( password_md5($password ) )."' ");
$sql_r = mysql_fetch_array( $sql_login );
if ( ! $sql_r['id'] ){
	return 'no';
}else{
	if ( $remember =='ok'){
		$time_set = ( time() + ( 3600 * 24 * 14 ) );
	}else{
		$time_set = ( time() + ( 3600 * 1 ) );
	}
	@$_SESSION['username']=base64_encode($sql_r['username']);
	@$_SESSION['password']=base64_encode($password);
	@setcookie("username", base64_encode($sql_r['username'])  , $time_set ,'/');
	@setcookie("password", base64_encode($password)  , $time_set ,'/');
	return 'ok';
}

}
function islogin(){
if ( isset( $_SESSION['username']) ){
	$username = base64_decode( $_SESSION['username'] );
}elseif ( isset($_COOKIE['username'] ) ){
	$username = base64_decode( $_COOKIE['username'] );
}else{
	return 'no';
}
if ( isset( $_SESSION['password']) ){
	$password = base64_decode( $_SESSION['password'] );
}elseif ( isset($_COOKIE['password'] ) ){
	$password = base64_decode( $_COOKIE['password'] );
}else{
	return 'no';
}
$sql_login=mysql_query("SELECT * FROM `user` WHERE `username` = '".get_sql_injection( $username )."' AND  `password` = '".get_sql_injection( password_md5($password ) )."' ");
$sql_r = mysql_fetch_array( $sql_login );
if ( ! $sql_r['id'] ){
	return 'no';
}else{
	$this->user_info = $sql_r ;
	return 'ok';
}
}
function logout(){
@$_SESSION['username']='';
@$_SESSION['password']='';
@setcookie("username", ''  , ( time() + 1 ),'/');
@setcookie("password",  ''  , ( time() + 1 ) ,'/');
unset($_SESSION['username']);
unset($_SESSION['password']);
unset($_COOKIE['username']);
unset($_COOKIE['password']);
}

}
?>

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش لاراول آموزش cPanel آموزش php آموزش فرم ساز RSform آموزش ساخت ربات جذب ممبر آموزش ساخت ربات دوستیابی آموزش ساخت ربات فروشگاهی برای ووکامرس آموزش طراحی سایت داینامیک با php آموزش بخش پشتیبانی با rsticket

تحلیل:

چها تابع رو معرفی کرده در یک کلاس ( که کار رو راحت کنه ) . تابع اول : ثبت نام ، دوم : لاگین یا ورود ، سوم تابع جلسه برای طول عمر ورود ، چهارم هم لاگ اوت یا خروج

ثبت نام با یک تابع که از قبل معرفی کرده برای اینجکشن انجام میشه و پسوورد md5 ldai . برای ورود هم به همین شکل انجام میشه . در

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

و خروج هم جلسه رو آنست میکنه . که همون کار دیستروی کردن session رو انجام میده .

مشکل شما : بعد از تحلیل باید کاری انجام بدم براتون؟ بگید تا اون هم بدم خدمتتون .

Share this post


Link to post
Share on other sites

ممنون از شما

حالا اگر لطف کنید و دیتابیس مربوط به ابین صفحه رو بسازین با یوزر و پس admin

لطف بزرگی کردین

Share this post


Link to post
Share on other sites

من ساختم

به این ترتیب اما لاگین نشد

یوزر و پس رو ادمین در نظر گرفتم

با بیس 64 کد کردم تو جداول دیتابیس وارد کردم و پسورد رو md5 کردم

لاگین نشد

بدون بیس64 ساختم نشد.:13::13:

Share this post


Link to post
Share on other sites

اینی که میدم رو ایمپورت کن ( ذخیره کن به عنوان تکست و داخل phpmyadmn ایمپورت کن :

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(50) NOT NULL,

`password` varchar(50) character set latin1 default NULL,

PRIMARY KEY (`id`)

) TYPE=MyISAM ;

INSERT INTO `user` (`id`, `username`, `password`) VALUES

(`1`, `Admin`, `Admin`);

Share this post


Link to post
Share on other sites

دوست گرامی من این رو ساختم اما مثل جداول قبلی باز نتونست با این ازلاعات لاگین کنه

الان داخل کد بالا

مگر اطلاعات با base 64 کد نمیشه و بعد بع دیتابیس ارسال میشه و پسورد با md5 باز کد میشه ؟؟؟

اینطور نیست

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

پسورد با base 64 کد بشن و بعد وارد دیتابیس بشن و در اونجا هم پسور با md5 ذخیره بشه؟؟؟؟؟؟؟؟

Share this post


Link to post
Share on other sites

من این رو ایجاد کرم اما باز لاگین نمیشه

CREATE TABLE IF NOT EXISTS `user` (
 `id` int(11) NOT NULL,
 `username` varchar(250) CHARACTER SET latin1 NOT NULL DEFAULT '',
 `password` varchar(250) CHARACTER SET latin1 NOT NULL DEFAULT '',
 PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

INSERT INTO `user` (`id`, `username`, `password`) VALUES
(1, 'MQ==', 'cdd96d3cc73d1dbdaffa03cc6cd7339b');

Share this post


Link to post
Share on other sites

شما یه کار کن .. شما یک پیج بساز که ادمین رو بسازه با base64 این کد رو ایمپورت میکه داخل دیتابیس . Md5 + base64

دقیقا مثل رجیستر کردن در همین فرم . اینجوری در میاد کدش

Share this post


Link to post
Share on other sites

خوب من بصورت دستی عدد 1 رو با base 64 کد کردم و داخل جداول قرار دادم و پسو.رد هم mdf کردم.

اما باز هم به نتیجه نرسید

ارتباز برقرار میشه اما اجازه ورود نمیده:auau::auau:

Share this post


Link to post
Share on other sites

جناب طالبی هم اکنون نیاز مند یارس سر سبزتان هستیم

giftgiftgiftgiftgiftgiftgiftgiftgiftgiftgiftgiftgiftgift

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری