PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (26): « 1 [2] 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 378
MiksIr Отправлено: 10 Марта, 2016 - 01:51:56 • Тема: Кража сессии или паранойя? • Форум: Вопросы новичков

Ответов: 20
Просмотров: 962
Viper пишет:
не дофига телодвижений?

Нормальная поддержка сессий со сбросом всех сессий по изменению пароля и "автологином" - не меньше движений требует. А все перечисленные мной движения - одна строчка в методе расчета хеша.
(Добавление)
resik пишет:
Вариант не безопасен?

Относительно безопасен, но следует учитывать несколько вещей. Как контролировать, что пользователь удален или забанен? Сброс всех сессий при смене пароля - полезная функция для безопасности пользователя. Т.е. вам все-равно нужно будет выгребать пользователя из базы, так что писать все его данные в сессию особо смысла нет.
MiksIr Отправлено: 09 Марта, 2016 - 21:37:54 • Тема: Кража сессии или паранойя? • Форум: Вопросы новичков

Ответов: 20
Просмотров: 962
Да там много подводных камней. Например - блокировка файла сессии. Время жизни сессии. Оно короткое, значит начинаем еще "поверх" воротить что-то вроде автологина, что по сути есть некий ключ в куках не связанный с сессией.

Это все можно заменить на хеш с необходимой информацией и секретным ключем, записанный в куку. Считали из кук хеш и user_id, выгребли из базы, построили хеш на основе пароля, секретного ключа приложения, каких-то еще необходимых данных (юзерагент, ipи т.п.), сравнили с тем, что в куке. Равно? Значит все ок.

К безопасности это отношения не имеет, факт.
MiksIr Отправлено: 09 Марта, 2016 - 20:37:45 • Тема: Кража сессии или паранойя? • Форум: Вопросы новичков

Ответов: 20
Просмотров: 962
OrmaJever пишет:
Поэтому нужно не обсуждать что хуже красть, а сделать так что бы украсть куку было невозможно.

Нет ничего невозможного - троян на комп и куки ушли. Новая 0day дыра в браузере - и куки ушли. Но если говорить о преобладающем способе краж через XSS - то httponly достаточно.

esterio пишет:
Не надо холиварить. Простой сессии и ее ИД в куках в большинстве случаев достаточно, если же это не интернет-банкинг конечно.

А причем тут банк. Это вопрос исключительно архитектуры и тех людей, которые не желают засирать файловую систему файлами сессий только для того, что бы записать туда user_id=99. Вопрос аутентификации действительно решается неплохо доверенным хешом+user_id в куке. Но для тех, кто программирует по учебнику, конечно, ничего кроме сессий и быть не может, они могут не читать написанное ;)
MiksIr Отправлено: 09 Марта, 2016 - 17:31:42 • Тема: Кража сессии или паранойя? • Форум: Вопросы новичков

Ответов: 20
Просмотров: 962
Угу, значит кража токена аутентификации - это нормально, а id сессии - это утрирование?
MiksIr Отправлено: 09 Марта, 2016 - 14:23:28 • Тема: MyISAM или InnoDB? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 193
С появлением FTS в InnoDb причин использовать MyISAM осталось менее 1%. И те весьма специфические задачи, о который на стадии изучения мира СУБД можно забыть.
MiksIr Отправлено: 09 Марта, 2016 - 14:21:50 • Тема: два cathc'a • Форум: Вопросы новичков

Ответов: 2
Просмотров: 130
catch(Exception ловит MyException тоже, ибо иерархия.
Поменяйте catch местами.
MiksIr Отправлено: 09 Марта, 2016 - 14:20:30 • Тема: Кража сессии или паранойя? • Форум: Вопросы новичков

Ответов: 20
Просмотров: 962
Viper пишет:
Кража токена приводит к чему?

Кража ID сессии приводит к чему?
MiksIr Отправлено: 20 Февраля, 2016 - 16:09:20 • Тема: Изменение видимости при наследовании • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1445
Почитайте про LSB (Принцип подстановки Барбары Лисков)
MiksIr Отправлено: 27 Января, 2016 - 15:42:16 • Тема: Ошибка при создании объекта SimpleXML • Форум: XML и его обработка

Ответов: 1
Просмотров: 2218
Кодировка прописана в первой строчке XML файла
<?xml version="1.0" encoding="windows-1251" ?>
Вы в UTF8 конвертнули, а simplexml думает, что это 1251.
MiksIr Отправлено: 25 Января, 2016 - 14:31:35 • Тема: Процедурный стиль vs Объектно ориентированное программирование • Форум: Программирование на PHP

Ответов: 31
Просмотров: 4372
dcc0 пишет:
И тут вообще еще надо с терминологией разбираться, что есть в действительности процедурное программирование, а что есть императивное.

Что тут разбираться. Процедурное программирование - императивно. ООП - тоже императивно. Автоматное программирование - это вообще область алгоритмов. В общем это совершенно разные категории странно смешанные в кашу.
MiksIr Отправлено: 24 Января, 2016 - 18:51:03 • Тема: Обновление форума. Баги и ошибки пишем здесь • Форум: Колонка администратора

Ответов: 17
Просмотров: 8839
LIME пишет:
противоречишь сам себе

Не, я же сказал - есть исключения, как правило для реального хайлоада. Очень нужно понимать, что делаешь. Простой пример: архитектурно верно - нормальная форма данных в БД, в реальности - бывает, делаем денормализацию ;)
Ладно, проехали ;)
(Добавление)
LIME пишет:
я категорически знаю что есть штука удобнее

Субъективно удобнее ибо есть знание редиса, но нет - мемкеша ;) Мне вот эта удобность не очевидна, ибо давно и активно знаю мемкеш, а редис - только на некоторые задачи быстрого доступа к данным по ключу, да и то, обычно, вместе с FTS движками типа сфинкса.
MiksIr Отправлено: 24 Января, 2016 - 18:46:26 • Тема: Обновление форума. Баги и ошибки пишем здесь • Форум: Колонка администратора

Ответов: 17
Просмотров: 8839
Мелкий пишет:
MiksIr пишет:
Не влезли - пока новые данные, даже если они и супер горячие ;))

eviction policy в конфиге.
LRU вполне умеет. Но дефолтно - да, стоит noeviction.

А, ну отлично ;)
Я в общем не о том, что редис не может работать как кеш - не пробовал, не знаю ;) А о том, что мемкеш покрывает основные задачи кеша вполне даже сегодня, так что нет никаких причин категорически его отвергать.
MiksIr Отправлено: 24 Января, 2016 - 17:48:46 • Тема: Обновление форума. Баги и ошибки пишем здесь • Форум: Колонка администратора

Ответов: 17
Просмотров: 8839
Цитата:
хрен там ты прав
в редисе не надо

Если мы хотим прочитать + изменить + записать - в редисе нужно WATCH, разве не так? А watch - это именно что оптимистичная блокировка.
Могу ошибаться про транзакции с редисом почти не использовал.

Цитата:
Цитата:
которому персистентность не только не нужна - она вредна.

вот сейчас вообще не понял
в чем вред?

В том, что, как я говорил, кеш можно выключить - ПО должно работать. Кеш включить - ПО должно начать наполнять кеш. По определению кеша ;) Персистентность тут собаке пятая нога. Вредна именно с точки зрения искажения архитектуры - начинаешь ориентироваться на то, чего быть не должно.
Сори если сумбурно, жена не дает расслабляться ;)

Цитата:
ты о мютексах итп?

Я о CAS.

Цитата:
вообще не серьезно
разогрев кэша это я вообще не понимаю
я знаю что это такое но учитывать разогрев....хмммм

Представь себе, что сайт выдерживает 10к хитов, а с кешом - 40к. Что произойдет в час пик, если будет 30к хитов, пока кеш не разогреется? Все ляжет. Персистент тут может помочь. Но, в более... обыденных случаях - он вреден, ибо поднятый устаревший давно кеш может доставить много больше проблем ;)

Чем мемкеш лучше редиса для кеша? Как минимум вытеснением. Мемкеш сам заботится о том, что бы удалять редко востребованные данные в случае нехватки памяти. В редисе - есть память, есть данные. Не влезли - пока новые данные, даже если они и супер горячие ;))
MiksIr Отправлено: 24 Января, 2016 - 17:13:22 • Тема: Обновление форума. Баги и ошибки пишем здесь • Форум: Колонка администратора

Ответов: 468
Просмотров: 200206
Цитата:
ты наверное про мемкэшед

Тут есть путаница. Есть мемкеш, а есть клиенские библиотеки для общения с мемкеш. Их две - либмемкеш и либмемкешед ;) Вторая просто поддерживает больше фич мемкеша, но блокировка - это все же фича мемкеша, а не библиотеки.

Цитата:
скорее всего путаю раз ты завел об этом речь(кстати просвяти)

Атомарность - это единая неделимая операция относительно других процессов/потоков. Т.е. возьмем банальное - запись в файл. Атомарен он? Наверное, нет - если два процесса пишут в один файл одновременно - будет каша. А как же логи, неужели блокировки? Ан нет, оказывется, в linux запись в файл блока размером одной страницы памяти (4к обычно) - атомарен. Т.е. если мы добавляем в файл строчку небольшую - можно не блокировать, никто в середину этой строчки не влезет.
Другое дело, что не нужно путать просто атамарность, как термин, с ACID (где A == атомарность) - последнее относится к транзакционным СУБД, коим мемкеш не является.

Оптимистичные блокировки в мемкеше - это не атомарность.

Цитата:
но разве и не хорошо что мне не надо знать эти тонкости
инкрементю значение и точно знаю что не будет гонки состояний
а если надо то и транзакции есть


Тонкости знать нужно. Прочитав значение из базы, будь то редис или мускуль, изменив его в ПО и записав - получаешь гонку. Ибо при чтении нужно явно назначить блокировку. А атомарно сделать инкримент можно и в мемкеше - отдельной операцией (т.е. http://php.net/manual/ru/memcached.increment.php)

Цитата:
и персистентность...кстати что там будет с мемкэшед если сервак отключить

Так я и пишу - мемкеш, это тот механизм, которому персистентность не только не нужна - она вредна. Есть всякие решения для крупных систем, где могут быть проблемы на время разогрева кеша... но это исключения.

Тема закрыта! Продолжение в теме "Обновление форума. Баги и ошибки пишем здесь - 2".
MiksIr Отправлено: 24 Января, 2016 - 16:12:32 • Тема: Обновление форума. Баги и ошибки пишем здесь • Форум: Колонка администратора

Ответов: 468
Просмотров: 200206
Цитата:
а давно у тебя не было проблем с атомарностью?

Никогда. Мемкеш атомарен.
Ты, по ходу, путаешь атомарность и транзакции с блокировками. Типа, "прочитал, а потом записал". Это всегда было вопрос блокировок. Хоть в мемкеше, хоть в редисе, хоть мускуле.
В мемкеше есть замечательные оптимистичные блокировки, что гораздо полезнее, чем пессимистичные _для кеша_.
Еще раз, это разные инструменты. Абсолютно. Мемкеш - это кеш. Редис - это СУБД. У мемкеша есть то, что нужно для кеша, включая оптимистичные блокировки и вытеснение ключей. У Редиса - то, что для СУБД, включая транзакции и "даже персистентность". У мемкеша вообще не может быть "дедблока". Более того, если ПО валится из-за пробелм с мемкешом - это хреновое ПО с хреновой архитектурой. Ибо это кеш - он может быть, его может не быть - ПО должно работать.

Цитата:
MiksIr))) не умничай)) я если говорю то знаю что говорю

В том то и дело, что тут мимо. Возможно, слабый опыт в мемкеше и много хабра про редис?

Страниц (26): « 1 [2] 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB