@prophp7

Страница 626 из 1387
Sergey
20.09.2017
12:31:26
мне больше всего нравится вариант hmac + рефреш + блэклист

ну и jwt как самый простой способ сделать hmac

Dmitry
20.09.2017
12:32:26
В идеале да, думать должен... но просто бывают случаи, когда тема не такая простая, что бы в ней разбираться. Для того же объяснения, почему md5 плох в идеале нужно даже немного в экономику погружаться, так как напрямую на стоимости железа все завязано

Sergey
20.09.2017
12:32:33
а вот смысла юзать oauth я вот лично не вижу пока (если не буду делать что-то где надо третью сторону аутентировать)

Google
Sergey
20.09.2017
12:33:38
В идеале да, думать должен... но просто бывают случаи, когда тема не такая простая, что бы в ней разбираться. Для того же объяснения, почему md5 плох в идеале нужно даже немного в экономику погружаться, так как напрямую на стоимости железа все завязано
средняя видеокарта сгенерит тебе миллиард хэшей в секунду, так как большинство пользуются паролями из top 1000 то если у тебя сольют базу пользователей, то где-то 70% всех паролей поберут где-нибудь минут за 10 (в зависимости от количества пользователей конечно)

как по мне не сложное объяснение зачем нужны медленные алгоритмы хэширования стойкие к перебору на GPU (убивают параллелизм)

а вообще этому в универах должны учить

а то я помню как мы за семестр научились только шифровать на ксорах да rsa запилили

Dmitry
20.09.2017
12:35:57
на примитивном уровне да, а дальше? как подобрать коэффициенты того же bcrypt или argon2

Sergey
20.09.2017
12:49:16
на примитивном уровне да, а дальше? как подобрать коэффициенты того же bcrypt или argon2
ну дефолтнов + словарика уже хватит что бы существенно усложнить жизнь злоумышленнику)

это так сказать "базовый уровень" который должен быть

а как подбирать параметры - вот ты их подбираешь?

Dmitry
20.09.2017
12:50:50
нет ;) ну иногда "на глаз", а так в принципе хотелсь бы понимать баланс между затратами своих серверов и затратами подбора ;)

Vladislav
20.09.2017
13:16:38
https://github.com/bjeavons/zxcvbn-php

К проверке сложности паролей

Sam
20.09.2017
14:04:51
$a = null; var_dump($a[1][2][3]); что произойдет?

notice?

Google
Sergo
20.09.2017
14:06:01
а проверить?

Jimm
20.09.2017
14:06:01
null

Sam
20.09.2017
14:08:23
неуловимый баг, сцуко

Eugene
20.09.2017
14:08:29
$a = [0,1,2]; foreach($a as &$v) {} foreach($a as $v) {} var_dump($a); —---------- array(3) { [0]=> int(0) [1]=> int(1) [2]=> &int(1) }

Sam
20.09.2017
14:08:37
проверень на проде

Eugene
20.09.2017
14:08:44
не подскажете почему так?

Sam
20.09.2017
14:09:04
указатель

http://php.net/manual/en/function.reset.php

Dmitry
20.09.2017
14:12:25
не подскажете почему так?
всегда после использования переменных по ссылке делай unset

Eugene
20.09.2017
14:12:46
попробовал, но не помогло

Aleh
20.09.2017
14:12:58
Или не используй переменные по ссылке

Eugene
20.09.2017
14:13:02
аааа

точно

сделать ансет $v

Dmitry
20.09.2017
14:14:07
угу... такие грабли походу, на которых каждый сам набивает шишку

Eugene
20.09.2017
14:16:22
чорд, вот как с этим бороться я понял, а вот как это произошло не совсем.((

Vladislav
20.09.2017
14:17:50
magic.gif

Dmitry
20.09.2017
14:27:55
после первого цикла у тебя $v - слинкован с последним элементов массива $a. Второй цикл когда присвает значения в $v - по сути меняет значения в последнем элементе массива $a

Борис
20.09.2017
14:30:08
угу... такие грабли походу, на которых каждый сам набивает шишку
Такие грабли, за которые надо бить по лбу наместе же. Написано же не стоит использовать foreach по ссылке. Да и логично это, что пиздец какой-то. Ну надо тебе преобразовать массив, ну куча функций array_* выбираешь нужну и погнал. На крайняк for() {}

Google
Eugene
20.09.2017
14:32:18
@miksir ох как все просто оказалось, спасибо Дмитрий!

Борис
20.09.2017
14:34:24
кем написано?
Да каждый ресурс который хочет показать насколько PHP говно упоминает об этом.

Dmitry
20.09.2017
14:35:01
Бред какой-то...

Причем тут логическая ошибка и говно. "C" тоже говно что ли, потому что можно что-то случайно по указателю записать не туда....

Dave
20.09.2017
14:36:39
Анимированная какаха!

Vladislav
20.09.2017
14:37:08
как-то очень категорично не забывайте ансетить &$val и всё причем PHPStorm предупредит, если забыли вроде

Dmitry
20.09.2017
14:42:13
логические ошибки допускет не "что-то", а программист

Sergey
20.09.2017
14:42:36
логические ошибки допускет не "что-то", а программист
именно, потому не стоит им вообще в руки давать (то есть отсекать возможность) на уровне регламента

что бы тебе потом не пришлось разбираться "где там этот удод не поставил unset"

Борис
20.09.2017
14:43:05
"Ежики плакали и кололись, но продолжали есть кактусы" Еще раз, если нужно изменить элементы массива( не просто пробежаться с целью чтения, а именно изменить) я для себя сделал выбор. Сегодня unset завтра удалите следующий элемент или добавите елемент в конец массива, и по нему проедет форич, хотя вы этого не хотели

Вот, серега меня понимает :)

Sergey
20.09.2017
14:44:12
это как спор for vs foreach. Суть не в производительности - суть в том что при использовании for надо учитывать our of range и не проиграть с условиями

все разработчики хотя бы один раз за пратику (а на самом деле не раз) ошибались в условиях циклов

Dmitry
20.09.2017
14:44:48
если есть такой регламент - то и проблемы нет, не писать или ставить unset

Sergey
20.09.2017
14:45:00
мы говорим о том что если у разработчика возникают подобные проблемы со ссылками - наша обязанность попросить его больше не юзать ссылки)

Google
Sergey
20.09.2017
14:45:34
и таким образом сделать код чуть-чуть чище

Dmitry
20.09.2017
14:46:21
а мне казалось - наша обязанность объяснить как все работает, что бы он просто понял проблему и уже не делал таких косяков ;)

вместо того, что бы говорить "просто не делай так, пиши array_walk" :)

кстати, array_walk с генераторами работает?

Sergey
20.09.2017
14:47:01
а мне казалось - наша обязанность объяснить как все работает, что бы он просто понял проблему и уже не делал таких косяков ;)
"как работает" не отвечает на вопрос "как сделать так что бы подобного не повторялось в будущем". Расчитывать на то что человек что-то там осознает - это ну очень слабый аргумент

Crazzy
20.09.2017
14:47:13
/stat@combot

Combot
20.09.2017
14:47:13
combot.org/chat/-1001042383571

Sergey
20.09.2017
14:47:17
кстати, array_walk с генераторами работает?
с генераторами тебе не нужны ссылки)

Sergey
20.09.2017
14:47:31
это как объяснишь ;)
спор ради спора

Dmitry
20.09.2017
14:47:36
с генераторами тебе не нужны ссылки)
генераторы могут работать со ссылками

Sergey
20.09.2017
14:48:09
генераторы могут работать со ссылками
то есть возвращать ссылку?)

ну клево

и что ты с ними будешь делать?*)

foreach (xrange(1, 100) as &$number) {}

зачем тебе тут может понадобиться ссылка?

вот расскажи мне

если у тебя генератор ссылки возвращает - ну ок, это на клиетский код не влияет

мы говорим про ссылки в контексте обхода коллекций/итераторов сейчас

Dmitry
20.09.2017
14:50:49
откуда я знаю когда мне это может понадобится, когда понадобится, тогда узнаю

Google
Sergey
20.09.2017
14:52:34
откуда я знаю когда мне это может понадобится, когда понадобится, тогда узнаю
моя позиция простая: - сформировать дефолты которые невилируют риски - знать о других возможностях - если дефолты не справляются (очень редкие кейсы) - думать в сторону других вариантов.

пройтись по коллекции и сформировать новую - это дефолт

Dmitry
20.09.2017
14:53:42
п. 2 и 3 подразумевают знания сайдэффектов

а откуда эти знания, если мы будем учить "не делай так, просто не делай"

Sergey
20.09.2017
14:58:59
как минимум начать с того что бы рассказать о том чем плох стэйт и сайд эффекты)

Dmitry
20.09.2017
14:59:22
А особо с замыканиями, которые и не замыкания вовсе. Забыл в use указать нужную или передачу по ссылке там - вот тебе тоже логическая ошибка. Кстати, а как из array_walk выйти из цикла?

Борис
20.09.2017
15:02:27
а откуда эти знания, если мы будем учить "не делай так, просто не делай"
Кто сказал "просто не делай"? Я буду говорить "не делай вот так, потому что Dmitry Mikslr сделал так и ебался с этим потом несколько дней, и погугли почему foreach c сылками это плохо" и человек все поймет ;)

Страница 626 из 1387