Опять не подходит потому что куки могут украсть.Откуда вы такие специалисты по безопасности беретесь?..
Вопрос остаётся - как реализовать нормальный и безопасный способ для такой функции, чтобы больше не приходилось использовать другие варианты после каждой очередной жалобы на взлом?Взлом через уведенную куку входит в топ 5 малореальных сценариев взлома, если у вас есть хоть какая-то защита от XSS.
Хранить IP последнего входа в аккаунт? Идея неплохая, но если каким-то магическим образом БД взломают, то все айпи попадут нехорошим людям.Оу, вас это больше всего расстраивает? Учитывая что 80% траффика сейчас идет через мобильные сети, айпи будет разниться при каждой сессии авторизации. И в данном случае вероятность такого взлома вы почему-то оцениваете практически как "магию", в то время как доступ к кукам пользователя у вас на уровне "ну, это точно случится, и скорее всего раньше, чем позже, любой может там гулять как у себя дома"...
Тем не менее сейчас я столкнулся с тем, что на собеседованиях начинают спрашивать что серьезного доводилось делать на чистом php - без фреймворков и мои ответы на их вопросы касательно парсеров, скиптов для обмена данными остаются неубедительными. Даже дальше кадровиков иногда дело не уходит.
Еще спрашивюат какие патерные проектирования используешь, придерживаешься ли принципов Solid?
А сейчас я не только ради прохождения собеседований, но и ради повышения скилла хотел бы углублённо погрузиться в написание кода без фреймворков. Но как к этому подойти? Не писать .же бложег или интернет-магазин на чистом php?
Может начать с изучения PSR
от него начать писат простой psr фреймворк как это делал Дмитрий Елисеев?
Или просто взять симфони и начать писать на ней чтоб понять суть вещей глубже и потом козырять своими скиллами на собеседованиях, что, мол, ,я тут на Симфони пишу, а вы мне тут вопросы для школьников задаёте?
Короче расскажите мне про роудмеп погружения в php. Теорию я и так знаю - книги по php читал.
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
$a = ["group.phantom", "group.god", "group.imperator", "group.general", "group.hermit", "group.soldier"];
$b = [
[
"permission" => "group.default"
],
[
"permission" => "group.phantom"
],
[
"permission" => "group.hermit"
],
[
"permission" => "group.imperator"
],
[
"permission" => "group.god"
],
];
function getItem($a, $b) {
foreach ($a as $item) {
foreach ($b as $data_arr => $data) {
if ($item == $data['permission']) return $item;
}
}
}
print getItem($a, $b);
SELECT cat.id, cat.name, JSON_ARRAYAGG(
JSON_OBJECT('pro_name',pro.name,'pro_pice',pro.price)
) prod
FROM products as pro
JOIN categories as cat on pro.cat_id = cat.id
GROUP BY cat.id, cat.name
ORDER BY cat.id;
postgres:
ports:
- 5432:5432
networks:
- app-network
UPDATE winka SET losse = losse + 1 WHERE user_id = 1;
UPDATE winka SET win = win + 1 WHERE user_id = 1;
То есть исходники есть как в JPG/PNG так и в формате CDR
header('Location: avt.php');
. Соответственно, происходит переход на GET avt.php, в POST ничего нет, выдаются предупреждения об отсутствии индексов login и password. А, поскольку в выходной поток уже что-то передано, заголовки больше не принимаются и header("Location: $script");
также выдаёт предупреждение.if (! $_SESSION['admin']);
смысла не имеет из-за точки с запятой в конце. Прочитал, что в mysql в движке innodb индексы делятся на два больших типа - первичный и вторичный
кластеризованный, как написано хранится с данными
Всегда ли не кластиризованные индексы хранятся в оперативной памяти или это как-то можно регулировать?
Я слышал что индексы должны быть в пределах мегабайт, а не гигабайт.
Читал, что бывает так, что индекс в таблице индекса хранит сразу данные определенных столбцов, а не ссылки на эти строки в основной таблице.