PDA

View Full Version : سوال: mvc من :: بررسی امنیت login



redhat2
سه شنبه 05 شهریور 1392, 13:18 عصر
سلام به دوستان ، من mvc زیر را نوشتم و یک login action هم براش طراحی کردم میخواستم بدونم که امنیت فرم login اون چطوره ( منظور Session و cookie هست که به کار بردم ) لطفا اگه نظری دارین بگین برای بهتر شدنش :

برای نصبش یه پوشه به نام rcms بسازین و محتویات فایل zip را توی اون برزین . بعد یه دیتابیس بسازین به نام rcms و فایل sql را در اون import کنین ،

اینام تنظیمات دیتابیس :



db_local = localhost
db_name = rcms
db_pass = null
db_user = root


ممنون میشم که بگین امنتیش چطوره و برا بهترشدنش باید چیکار کنم .

mtnam1372
سه شنبه 05 شهریور 1392, 13:40 عصر
عزیزم فکر نکنم کسی حوصله نصب داشته باشه کد هاشو بزار

redhat2
سه شنبه 05 شهریور 1392, 18:50 عصر
خوب همه ی کدها را که نمیشه گذاشت ولی خوب این زیریه ماله signin action هست :



<?php

namespace rcms\modules\controllers;

use rcms\libs\BaseController as BaseController;

class UsersController extends BaseController {

public function Signin() {

if ($this->Vars->issetpost("username") && $this->Vars->issetpost("password")) {

if ($this->Model->Signin()) {

$this->Session->start();

$this->Session->regid();

$this->Hash->result = $this->Hash->hash("sha1", $this->Http->useragent() . $this->Http->remoteIp());

$this->Session->set(array("username" => $this->Db->result['username'], "signinkey" => $this->Hash->result));

if ($this->Vars->issetpost("rememberme")) {

$this->Hash->result .= "sep" . substr($this->Hash->uniqid(), 0, 17);

$this->Model->InsertRemekey($this->Hash->result, $this->Db->result['username']);

$this->Cookie->set(array("username" => $this->Db->result['username'], "remekey" => $this->Hash->result, "lastvisit" => time()));
}

$this->Http->redirect("users");
}
}

$this->View->setTemplate("users/signin");

$this->View->setData("title", "ورود");

$this->View->display();
}

public function Index() {

$this->Session->start();

echo "session username : " . $this->Session->get("username") . "<br>";

echo "session signinkey : " . $this->Session->get("signinkey") . "<br>";

echo "cookie username : " . $this->Cookie->get("username") . "<br>";

echo "cookie remekey :" . $this->Cookie->get("remekey");
}

}

?>



2 تا سشن ذخیره میشه و اگه کاربر Remember me کرده باشه 3 تا کوکی ذخیره میشه که کوکی reme تو یه دیتابیس هم ذخیره میشه و ما بعد اون را از دیتابیس می گیریم توی هر درخواست و Explode می کنیم و قسمت اول با مشخصات user agent و ip کاربر مطابقت می دیم . هر 20 دقیقه یکبارم قسمت دوم تغییر میکنه و با قسمت اول Hash میشه طوری که کلا 60 تا کارکتر باشه و توی دیتابیس قرار می گیره . خوب این چیزی که من نوشتن منطقی هست یا نه یا کلا هر نظری برای بهرت شدنش دارین بگین ممنون .

redhat2
سه شنبه 05 شهریور 1392, 20:35 عصر
کسی نیست ، بابا یه کمکی بکنین . d:)

redhat2
چهارشنبه 06 شهریور 1392, 13:43 عصر
یعنی اینقده سخته که بگین این login خوب هست یا نه ، بابا من میخواستم یه آموزش mvc بنویسم ، خیلی ناامید شدم ، هر وقت ما یه سوالی میپرسم ، اصن انگار نه انگار . واقعا چرا ؟

MRmoon
چهارشنبه 06 شهریور 1392, 13:54 عصر
از نظر اس كيو ال اينجكشن مشكلي نداره چون با PDO كار كردي.

كپچا نداره. من همينا به ذهنم رسيد

redhat2
چهارشنبه 06 شهریور 1392, 20:26 عصر
از نظر اس كيو ال اينجكشن مشكلي نداره چون با PDO كار كردي.

كپچا نداره. من همينا به ذهنم رسيد
از نظر Session و کوکی که استفاده کردم چی ؟

rezavb6
دوشنبه 01 مهر 1392, 23:44 عصر
اقا خیلی عالی هست:تشویق::لبخند: