به عبارتيطور كه در طراحي سايت فروشگاهي در مشهد ابتدا هم آمده ميباشد تابع hash سه عدد پارامتر دارااست، اولين پارامتر آن الگوريتم هش كردن فن اخذ مينمايد كه به دو عدد از پر اسم و رسمترين آنها در ابتدا اشاره كرديم (md5 - sha1)، پارامتر دوم فناي كه مي بايست هش بشود را مي گيرد و پارامتر سوم كه ازروي ميل ميباشد كه فراتر نيز اشاره شد دو مقدار true يا اين كه false را اخذ مينمايد و به صورت پيش فرض false ميباشد و درصورتيكه مقدار true را وارد كنيم تابع تحت عنوان خروجي فني هش گرديده باينري را تحت عنوان خروجي بر ميگرداند.
تابع password_hash:
يكي شايسته ترين آيتمها براي هش كردن سر عبور (Password)ها قادر است تابع password_hash باشد، مزيتي كه سبب ساز گرديده اين تابع موقتا يك كدام از شايسته ترين آيتمها باشد اين ميباشد كه هر توشه يك هش تصادفي (Random) تحت عنوان خروجي برميگرداند كهاين زمينه ميتواند از كرك كردن راز عبور (Password)ها پرهيز نمايد.
string password_hash ( $password , $algo [, array $options ] )
پارامتر اوليه راز عبور (Password)ي كه بايستي هش بشود را اخذ مينمايد، پارامتر دوم الگوريتمي كهاين سر عبور (Password) را هش مينمايد را اخذ مينمايد و دارنده چهار آيتم ميباشد.
PASSWORD_DEFAULT
PASSWORD_BCRYPT
PASSWORD_ARGON2I
PASSWORD_ARGON2ID
وارد كردن پارامتر سوم نيز واجب وجود ندارد البته مي توانيد به طور آرايه به آن مقدار بدهيد، به عنوان مثال:
string password_hash ( "7learn" , PASSWORD_DEFAULT , ['غير مجاز مي باشدt' => 12 ] );
با قرار دادن غير مجاز مي باشدt و مقداردهي به آن به تابع وقت دادهايم كه بيشتر روي هش كردن سر عبور (Password) وقت بگذارد و در صورتيكه اين مقدار ارتقا پيدا نمايد براي هش كردن چند ثانيه مدت ميبرد.
البته اصليخيس از آن Verify يا اين كه تاييد كردن سر عبور (Password) ميباشد زيرا هر توشه يك هش تصادفي به ما برميگرداند شايد براي ما پرسش باشد كه چه طور سر عبور (Password) را Verify كنيم؟
bool password_verify ( $password , $hash )
با تابع password_verify ميتوانيم مراحل تاييد كردن را انجام دهيم. اين تابع دو پارامتر را اخذ مينمايد كه اولين راز عبور (Password)ي ميباشد كه از مخاطب مي گيريم و دومين راز عبور (Password) هش گرديدهاي ميباشد كه در مقر داده ذخيره كردهايم، در شرايطيكه راز عبور (Password) و هش منطبق داشته باشد مقدار true را برميگرداند و درحالتي كه نداشته باشد مقدار false را برميگرداند.
ايرادات ناشي از register_globals:
register_globals يك پيكربندي باطن PHP ميباشد كه درصورتيكه فعال باشد مقاديري كه از آرايههاي سوپر گلوبال (Superglobals) مي آيند را با اسمهاي آنها متغير ميسازد و مقاديرشان را داخل به عبارتي متغيرها ميريزد. به عنوان مثال:
$username === $_POST['username'];
در نمونه بالا متغير username به عبارتي مقدار username ميباشد كه از آرايه سوپر گلوبال(Superglobals) POST آمده ميباشد.
غير فعال كردن register_globals در cpanel:
در آغاز مي بايست وارد سيپنل خويش بشويد و در تب Software مورد Select PHP Version را بزنيد.
Cpanel - register_globals - PHP
در پنجرهي گشوده گرديده موردي Switch To PHP Version را بزنيد تا به ورقهي غير فعال سازي register_globals منتقل بشويم.
Cpanel -register_globals - PHP
در شيتي متبوع شما مي توانيد register_globals را on يا اين كه off فرماييد كه بايستي آيتم off را تعيين فرماييد، پس از تعيين مورد بر روي دكمهي Save بزنيد تا تغييرات براي شما ذخيره شوند.
Cpanel - register_globals - PHP