Прошу совет, а то я как то растерялся от рекомендаций валидаторов официалов...
Вот такая функция:
Код: Выделить всё
public function ajax()
{
$sid = md5('qrlogin' . $this->user->session_id);
$sql_where = ' WHERE ' . $this->db->sql_build_array('SELECT', ['sid' => $sid]);
$poll_lifetime = $this->config['qrlogin_poll_lifetime'];
// waiting for login - max $poll_lifetime s
while (!$uid = $this->get_field_session('uid', $sql_where))
{
if (--$poll_lifetime < 0)
{
return new Response('', 200);
}
sleep(1);
if (connection_aborted())
{
return new Response('', 200);
}
}
// received uid for login - Session creation
$res = $this->user->session_create($uid, false, false, true);
// set login status for qrLogin post to 200 or 403 - Forbidden
$sql = 'UPDATE ' . $this->qrlogin_table . ' SET ' . $this->db->sql_build_array('UPDATE', ['result' => ($res ? 200 : 403)]) . $sql_where;
$this->db->sql_query($sql);
// answer to ajax with '1' for reload page if OK
return new Response($res ? '1' : '', 200);
}
Это реально?This is security through obscurity, it doesn't make the system any safer. You could be using the session ID itself just as well. However, you make the session ID act like an authentication token which is not what the session ID should be used for. Please generate your own token in a secure way.
If I get hold of a session ID from another user and GET/qrlogin_ajax?sid=$sid
before he does, I am logged in to his account. This is what I meant by saying you use the session ID as an authentication token, and it's a severe security problem.
session_id
phpBB меняется таким GET??? Или он не знает что там придумать еще? Моя функция явно никаких параметров не использует...И второе:
Это обращение из Javascript. Фантазии его? Ведь все ресурсы с сайта через точку грузятся и никаких проблемLine 7: mentioning this now for the 4th time: you must generate this URL in PHP using the router helper service's route() method.Код: Выделить всё
$.ajax({ url: "./qrlogin_ajax",
For example, boards with URL rewriting disabled will throw an error when requesting the URL in the code above. We have good reasons when asking you to do things in certain ways.
Действительно при включении этого режима Javascript не будет знать адрес странички??