من تلاش می کنم برای ایجاد یک صفحه ورود به سیستم برای یک وب سایت رسانه های اجتماعی کار کنم، اما می خواهم در برابر تزریق و همه چیز محافظت کنم.
صفحه ورود
$ result = LoginManager :: ورود ($ username، $ password)؛
اگر ($ نتیجه == "invalid_username") {
echo نام کاربری نامعتبر! '؛
}
اگر ($ result == "invalid_login") {
echo 'ورود نامعتبر!'؛
}
$ expires = gmdate ('Y-m-d'، strtotime ($ Date. + 1 روز))؛
DataBase :: query ("INSERT INTO sessions VALUES (: session،: userid،: expires)"، array (': session' => $ result، ': userid' => $ userid، ': expires' => $ expires ))
setcookie ("جلسه"، $ نتیجه)؛
//
برگشت؛
}
echo ''؛
؟>
LoginManager
16 || strlen ($ password)> 50 || strlen ($ password) < 5){
return 'invalid_bounds';
}
$sql = "SELECT * from accounts WHERE username = :username";
$users = Database::query($sql, array(':username' => $ username))؛
اگر (sizeof ($ کاربران) == 0) {
return 'invalid_username'؛
}
$ userdata = $ کاربران [0]؛
$ salt = '-45dfeHK / __ yu349 @ - / klF21-1 _ / 4JkUP / 4'؛
اگر (password_verify ($ password. $ salt، $ userdata ['password'])) {
$ session = com_create_guid ()؛
بازگشت $ session؛
} else {
بازگشت 'invalid_login'؛
}
}
؟>
سپس صفحه اصلی (مثال کار با جلسه)
$ session))؛
اگر (sizeof ($ sessions) == 0) {
// تغییر مسیر برای ورود به صفحه
برگشت؛
}
$ session = $ sessions [0]؛
$ date = جدید DateTime ($ session ['expires'])؛
$ now = جدید DateTime ()؛
اگر ($ تاریخ < $now) {
//Expired session : Redirect to login
return;
}
//Display feed
?>
آیا نقصی وجود دارد که می تواند مشکلات جدی مانند تزریق یا جلسه سلامی و / یا مناطقی را که من باید بهبود ببخشد، ایجاد کنم؟
