Я работаю над CakePHP 2.3 по очень большому проекту, и я собираюсь запустить свой сайт по всему миру.Лучший подход для обеспечения безопасности и управления кодом
У меня есть система входа в мое приложение. Я делюсь своим кодом, потому что хочу убедиться, что я правильно кодирую или нет ..., а также любую проверку на отсутствие каких-либо функций или если какой-либо совет по добавлению чего-то или удалению чего-либо в коде будет очень благодарен. А также комментировать точки зрения безопасности тоже ...
скажите мне некоторые подсказки сделать мой сайт быстрее .. например, как писать быстрые запросы или удалить нежелательные из этого BlaBla
class UsersController extends AppController
{
public $components = array('Cookie');
public function beforeFilter()
{
parent::beforeFilter();
App::uses('Utility', 'Utility');
$this->Auth->allow('index');
$this->Security->requireSecure('login'); // for security
$this->Auth->authenticate = array(
'Authenticate.Cookie' => array(
'fields' => array(
'username' => 'email',
'password' => 'password'
),
'userModel' => 'User',
'scope' => array(
'User.active' => 1
)
),
'Authenticate.MultiColumn' => array(
'fields' => array(
'username' => 'email',
'password' => 'password'
),
'columns' => array(
'email',
'mobileNo'
),
'userModel' => 'User'
)
);
}
public function index()
{
$this->layout = 'logindefault';
if (!$this->Auth->login() || !$this->Auth->loggedIn()) {
$this->redirect(array(
'controller' => 'users',
'action' => 'login'
));
} else {
$this->redirect(array(
'controller' => 'users',
'action' => 'dashboard'
));
}
}
public function login()
{
$this->layout = 'logindefault';
$this->set('title_for_layout', 'Account Login');
if ($this->Auth->login() || $this->Auth->loggedIn()) {
$lastLogin = $this->Auth->User('lastLogin');
if ($lastLogin != null) {
$this->redirect($this->Auth->redirect());
} else {
$this->redirect(array(
'controller' => 'Userinfo',
'action' => 'gettingstarted'
));
}
} else {
if ($this->request->is('post')) {
$mobileNo = $this->request->data['User']['email'];
$mobileNo = Utility::addPlusToMobileNo($mobileNo);
$this->request->data['User']['email'] = $mobileNo;
if ($this->Auth->login() || $this->Auth->loggedIn()) {
if ($this->Session->check('Auth.User')) {
$this->_setCookie($this->Auth->user('idUser'));
$lastLogin = $this->Auth->User('lastLogin');
if ($lastLogin != null) {
$this->redirect(array(
'controller' => 'users',
'action' => 'dashboard'
));
} else {
$this->redirect(array(
'controller' => 'Userinfo',
'action' => 'gettingstarted'
));
}
}
} else {
$this->Session->setFlash('Incorrect Email/Password Combination');
}
}
}
}
protected function _setCookie($id)
{
if (!$this->request->data('User.remember_me')) {
return false;
}
$data = array(
'username' => $this->request->data('User.email'),
'password' => $this->request->data('User.password')
);
$this->Cookie->write('User', $data, true, '1 week');
return true;
}
public function logout()
{
$this->Cookie->delete('User');
$this->redirect($this->Auth->logout());
}
@thankyou burzum .... я могу отправить вам AppController, если вы скажете ... второй я не получил четвертую точку. 6-й пункт об модульных тестах ... что это значит ... не могли бы вы привести мне пример .. и последнее, что вы говорите, что я не следую стандартам кодирования торта .. как? – mynameisjohn
, а также вы сказали, что приложение использует приложение поверх файла ... где ?? после объявления класса. class UsersController extends AppController {App :: uses ('Утилита', 'Утилита'); но он дает мне ошибку здесь – mynameisjohn
и скажите мне, что, поскольку я загружаю комплект отладки ... так что я хочу знать, когда я делаю свой сайт общедоступным, должен ли я удалить набор отладки тогда ??? – mynameisjohn