کسی نیست جواب بده؟
ممنون میشم راهنمایی کنید.
Printable View
کسی نیست جواب بده؟
ممنون میشم راهنمایی کنید.
نه عزیزم ببین مثل این، ببین میفهمی چی میشه؟! برو در مورد توابع md5 و crypt سرچ کن توی نت.نقل قول:
[PHP]$username=$_POST['user1'];
$password=crypt($_POST['pass'],"Salt");
include '../config.php';
$sql= "SELECT * FROM `users` WHERE `user`='$username' AND `pass`='$password'";
$result=mysql_query($sql);
$rows=mysql_num_rows($result);
if($rows==0)
{
header("Location: invalid.php");
}
else
{
setcookie("user","$username");
setcookie("pass","$password");
header("Location: detect.php");
}
mysql_close($link);
?>[/PHP]
و اگه نخوای پسورد رو بذاری توی کوکی، میتونی بعد از چک کردن user و پسورد یک راندوم بزرگ تولید کنی و اون رو هم توی کوکی و هم توی دیتابیس برای اهراز هویت کاربران سایت نگهداری کنی. پیروز باشی.
ممنون. دستتون درد نکنه.
من این لینک رو درباره ی Crypt() خوندم ولی هیچی نفهمیدم :دی
اگه میشه یکم راهنمایی کنین دربارش.
ببخشید من خیلی مبتدی هستم وقتتون رو می گیرم.کد:http://www.w3schools.com/php/func_string_crypt.asp
شما یک پسورد داری و میخوای کدش کنی. میتونی از توابه مختلفی استفاده کنی که هر کدوم امنیت خاص خودشون رو دارن. مثلا crypt. وقتی یک رشته مثلا همون پسورد رو به صورت تنها بخورد این تابع بدی به این صورت crypt($password) این تابع پس از هر بار اجرا یک کد متفاوت تولید میکنه. یعنی مثلا دو بار اجرا میشه و دوتا کد متفاوت تولید میکنه. و این مشکل سازه چون شما میخوای این پسورد کد شده رو با یک کد دیگه که توی دیتابیس هست مقایسه بکنی. برای حل این مشکل شما دوست عزیز باید یک نمک یا همون salt اضافه کنی تا هم امنیت رو افزایش بدی و هم کدای تولیدیه یکسانی بدست بیاری. نمک هر چیزی میتونه باشه. به مثال زی توجه کننقل قول:
[PHP]$password=crypt($_POST['pass'],"beautiful");[/PHP]
الان من پسورد پست شده از فرم قبلی رو با نمک beautiful قاطی کردم. شما همواره کد یکسانی با این تابع بدست خواهی آورد. وقتی یک نفر میخواد توی سایت ثبت نام کنه شما کد بدست اومده رو توی دیتابیس ذخیره میکنی نه خود اصل پسورد رو. بعد وقتی طرف میاد لاگین بشه باز پسوردش رو کد میکنی و با پسوردی که توی دیتابیس هست مقایسه میکنی و اگه یکی بود اجازه ورود دارد.
این نکته رو هم من اضافه کنم که بهتره سالت رندوم باشه. طولش هم متغیر باشه. و در هر دفعه استفاده هم عوض بشه
در غیر این صورت هکر رو کند میکنه اما نه به اندازه ای که نتونه کارش رو انجام بده
ممنونم از شما دوستان.
اونوقت هر دفعه عوض بشه یعنی اینکه به دیتابیس وصل بشه و هر دفعه اون رمز رو عوض کنه؟
اونوقت هر صفحه ای که بخواد از کوکی استفاده کنه که اگر رندوم باشه دیگه با دفعه ی قبلی جور نمیشه.
میشه راهنماییم کنید؟ یکم گیج شدم.
دیگه یوزر نیم رو که نمیخواد Crypt کنم نه؟
اونوقت اگر برای خودم که مدیر سایتم هستم :دی بخوام سشن درست کنم دیگه نمیخواد کاریش کنم؟ فقط یه سشن ساده کافیه امنیتش؟
منظورم برای استفاده در کنترل پنل مدیریت هست.
باید سالتی رو که موقع هش کردن استفاده میشه به همراه پسورد ذخیره کنید و بعداً برای چک کردن داده های ورودی کاربر از همون سالت قبلی استفاده کنیدنقل قول:
اونوقت هر دفعه عوض بشه یعنی اینکه به دیتابیس وصل بشه و هر دفعه اون رمز رو عوض کنه؟
اونوقت هر صفحه ای که بخواد از کوکی استفاده کنه که اگر رندوم باشه دیگه با دفعه ی قبلی جور نمیشه.
لزوماً احتیاجی نیستنقل قول:
دیگه یوزر نیم رو که نمیخواد Crypt کنم نه؟
چه فرقی میکنه؟ پسوردها همیشه باید هش بشه. کوکی هم هر وقت پسورد داخلش هست باید هش شده باشهنقل قول:
اونوقت اگر برای خودم که مدیر سایتم هستم بخوام سشن درست کنم دیگه نمیخواد کاریش کنم؟ فقط یه سشن ساده کافیه امنیتش؟
ممنون. اونوقت وقتی Crypt کنم اصلا بازم نیاز هست که کوکی admin رو به سشن تبدیل کنم امنیتش بره بالا تر؟
من در مورد md5 هم تحقیق کردم. خودش پسورد رو به رندوم هش می کنه. اونوقت امنیت کدوم بهتره فرق می کنه اصلا؟
آهان فهمیدم خودم این یکی MD5 هر دفعه تغییر نمی کنه.
ممنون.
من یه مشکل دارم با Crypt کردن. دیگه نمیخواد پسورد های هش نشده رو در دیتابیس سیو کنم نه؟ فقط پسورد ها رو به صورت هش شده سیو کنم کافیه؟ مشکلم اینجاست که اونوقت در داخل قسمت salt ِ فانکشن Crypt چی بذارم؟ یه عدد رندوم؟ اونوقت که هر دفعه پسورد یه چیز در میاد و با پسورد داخل دیتابیس تتابق نداره!
من حسابی گیج شدم. میشه کمک کنید؟
نه نیازی به ذخیره پسورد بدون هش نیست
اگر پسورد هش شده هر دفعه تغییر میکرد که دیگه قابل استفاده نبود! نتیجه تابع Crypt هم ثابت هست و تغییر نمیکنه. اینکه الان برای شما تغییر میکنه دلیلش این هست که سالت بهش نمیدید و اونم خودش از یه سالت رندوم استفاده میکنه برای همین نتیجه هر دفعه فرق میکنه
از طرفی کمتر پیش میاد که برای هش کردن از تابع crypt استفاده بشه. معمولاً از توابع md5 و sha1 استفاده میشه. در برخی مواقع هم که لازم باشه هش با الگوریتمهای دیگه انجام بشه از تابع hash استفاده میشه