Гость Camus #6041 19 июня 2016 хм, великий сеньор, расскажи мне еще плз зачем нарушать логичный контракт и вместо ожидаемого возвращения одного юзера по айди возвращается их список? Низачем. В данный момент этот сервис возвращает список в контролер, а тот уже вызывает .FirstOrDefault() чтобы вернуть клиенту одного юзера. Так что со стороны клиента это не важно - результат один и тот же. В рамках проекта из которого я вытянул этот клас, это не критично, ибо проект мизерный. У нас такое конечно бы не пролетело, ибо бизнес логики в контролерах быть не должно.Гыы Поделиться сообщением Ссылка на сообщение
Supernatura1 #6042 19 июня 2016 хм, великий сеньор, расскажи мне еще плз зачем нарушать логичный контракт и вместо ожидаемого возвращения одного юзера по айди возвращается их список? Низачем. В данный момент этот сервис возвращает список в контролер, а тот уже вызывает .FirstOrDefault() чтобы вернуть клиенту одного юзера. Так что со стороны клиента это не важно - результат один и тот же. В рамках проекта из которого я вытянул этот клас, это не критично, ибо проект мизерный. У нас такое конечно бы не пролетело, ибо бизнес логики в контролерах быть не должно.Гыы Проект = проект в VSКлиент = то, что поглащает сервис, судя по этому солюшену, это веб апп Где ты тут всмотрел что это используется в продукции? Поделиться сообщением Ссылка на сообщение
Гость Camus #6043 19 июня 2016 Ждем, когда окажется что комментарии оказывается писать не запрещено, а даже поощряется. Поделиться сообщением Ссылка на сообщение
Supernatura1 #6044 19 июня 2016 (изменено) Ждем, когда окажется что комментарии оказывается писать не запрещено, а даже поощряется. С тобой вести диалог, это все равно что спорить с религиозными фанатиками. Результат тот же - постишь неаргументированные из воздуха взятые убеждения немного разбавленные смайликами и повсеместными "гыыыыы", которые по твоему мнению наверняка завышают твою позицию и вес твоих сообщений. А ну и еще. Вместо мычать как корова на форуме, я тебе советую тебе пойти изучить историю SHA1 и вообще вникнуться в криптографию (которую я кстати изучал в университете в свое время). SHA1 вполне можно использовать для хеширования паролей. То, что этот алгоритм устарел, эти слухи идут еще с 2002 года. В действительности, на данный момент поддержку этого алгоритма гугл и майкрософт будут останавливать в ближайшие два года, но это потому что ТЕОРЕТИЧЕСКИ, для этого алгоритма можно найти коллизии. Иными словами, использовать SHA1 для SSL сертификатов - это рискованно, так как в будущем есть вероятность что с ростом компьютерной мощности (согласно Moor's law), эти коллизии можно будет найти. Было много научных исследований на эту тему, некоторые группам удалось найти колизии в неполной версии алгоритма и это якобы важный шаг к тому, чтобы сломать главный алогоритм. Однако: https://en.wikipedia.org/wiki/SHA-1As of October 2015 , no actual collisions are publicly known. Ну это про колизии. То что тут было упомянуто про слитие базы, это preimage attack, это совершенно другой вид атаки. Понятия "preimage resistance" и "collision resistance" это две разные вещи. Если тебя интересует преимадж резистанс SHA1 (а именно возможность найти X, если M = hash(x, salt) при знании M), то можешь посмотреть вот это видео: http://research.microsoft.com/apps/video/default.aspx?id=153985&r=1 We show that preimages of SHA-1 can be computed at the cost of 2159.3 compression function computations. Ну хотя для твоего простецкого глаза 2^159 выглядит как небольшая цифра, но не поддавайся на такое. 2^159 = 730750818665451459101842416358141509827966271488 ах да, забыл добавить. SHA1 это дефолтный алгоритм используемый ASP.NET Membership Framework на которой сейчас живут милионы ecommerce веб сайтов. Если у тебя есть магическая палочка которая может крякнуть SHA1, то ты чувак на жопе ровно зря сидишь, ты можешь идти милиарды на этом зарабатывать. Изменено 19 июня 2016 пользователем Supernatura1 Поделиться сообщением Ссылка на сообщение
TheDeadSkin #6045 19 июня 2016 ах да, забыл добавить. SHA1 это дефолтный алгоритм используемый ASP.NET Membership Framework на которой сейчас живут милионы ecommerce веб сайтов. Если у тебя есть магическая палочка которая может крякнуть SHA1, то ты чувак на жопе ровно зря сидишь, ты можешь идти милиарды на этом зарабатывать.который в некст году забанят с сертификатов Поделиться сообщением Ссылка на сообщение
Reality #6046 19 июня 2016 (изменено) а что за язык на 302й? Изменено 19 июня 2016 пользователем Reality Поделиться сообщением Ссылка на сообщение
Supernatura1 #6047 19 июня 2016 ах да, забыл добавить. SHA1 это дефолтный алгоритм используемый ASP.NET Membership Framework на которой сейчас живут милионы ecommerce веб сайтов. Если у тебя есть магическая палочка которая может крякнуть SHA1, то ты чувак на жопе ровно зря сидишь, ты можешь идти милиарды на этом зарабатывать.который в некст году забанят с сертификатов Каким образом сертификаты связаны с паролями в базе данных? Поделиться сообщением Ссылка на сообщение
Гость Camus #6048 19 июня 2016 Гыы, называет кого-то религиозным фанатиком, а сам при этом фанатично отказывается писать комментарии, гыы. Использовать устаревшую хеш функцию, когда есть bcrypt, и оправдывать это, это конечно эпик. Тем более странно звучат слова, что ты этот курс изучал, но видимо комментарии себе в тетрадку не записывал. Поделиться сообщением Ссылка на сообщение
TheDeadSkin #6049 19 июня 2016 ах да, забыл добавить. SHA1 это дефолтный алгоритм используемый ASP.NET Membership Framework на которой сейчас живут милионы ecommerce веб сайтов. Если у тебя есть магическая палочка которая может крякнуть SHA1, то ты чувак на жопе ровно зря сидишь, ты можешь идти милиарды на этом зарабатывать.который в некст году забанят с сертификатов Каким образом сертификаты связаны с паролями в базе данных?считаешь что хеши небезопасные для подписки сертификатов абсолютно безопасны для хранения паролей?они же юзаются абсолютно одинаково Поделиться сообщением Ссылка на сообщение
Supernatura1 #6050 19 июня 2016 ах да, забыл добавить. SHA1 это дефолтный алгоритм используемый ASP.NET Membership Framework на которой сейчас живут милионы ecommerce веб сайтов. Если у тебя есть магическая палочка которая может крякнуть SHA1, то ты чувак на жопе ровно зря сидишь, ты можешь идти милиарды на этом зарабатывать.который в некст году забанят с сертификатов Каким образом сертификаты связаны с паролями в базе данных?считаешь что хеши небезопасные для подписки сертификатов абсолютно безопасны для хранения паролей?они же юзаются абсолютно одинаково Smotria chto ti ponimaesh pod 'odinakogo'. Eshe raz perechitai moi post predidushij. Ja sha ne doma i ne mogu na russkom pechatat, tak chto potom otvechu kak domoi pridu. So vtorim klounom sporit bespoke no, on prochital chtoto na zabore i povtorjaet kak istinu Поделиться сообщением Ссылка на сообщение
Гость Camus #6051 19 июня 2016 Гыы, не умеет в слепую печать, гыы Поделиться сообщением Ссылка на сообщение
AskMe- #6052 19 июня 2016 супернатурал так то добротный персонаж, я помню тут уже была какая то лютая заруба с его участием, правда не помню на какую тему Лишь ощутив баттхерт до конца, мы обретаем свободу Поделиться сообщением Ссылка на сообщение
Supernatura1 #6053 20 июня 2016 ах да, забыл добавить. SHA1 это дефолтный алгоритм используемый ASP.NET Membership Framework на которой сейчас живут милионы ecommerce веб сайтов. Если у тебя есть магическая палочка которая может крякнуть SHA1, то ты чувак на жопе ровно зря сидишь, ты можешь идти милиарды на этом зарабатывать.который в некст году забанят с сертификатов Каким образом сертификаты связаны с паролями в базе данных?считаешь что хеши небезопасные для подписки сертификатов абсолютно безопасны для хранения паролей?они же юзаются абсолютно одинаково Абсолютно безопасны, если соблюдать адекватные рестрикции на сами пароли (9+ символов содержащие буквы и цифры) SHA1 небезопасен лишь тем, что в можно ТЕОРЕТИЧЕСКИ найти колизии (опять же это все пока что звон в научных местах без реальных доказательств. Википедия ясно говорит, что колизий в полной версии алгоритма пока что не найдено) Колизия это когда 2 РАЗНЫХ строки приводят к одному и тому же хешированному результату. То есть имея строки m1 и m2, hash(m1) = hash(m2). Теперь давай разберемся как это влияет на SSL сертификаты. Злодей имеет два документа, 'А' и 'Б'. Он хочет наебать Петю таким образом, чтобы он принял документ 'Б' от Васи. Что происходит далее:- Злодей шлет документ 'А' Васе. Тот соглашается с ним, подписывает хэш и отправляет подпись обратно Злодею.- Злодей прикрепляет полученную подпись к документу 'Б'. - Злодей шлет подпись вместе с документом 'Б' Пете, заявляя, что мол этот документ был подписан Васей. Так как электронная подпись подходит к хэшу из документа 'Б', то Петя никак не может уличить подмену и принимает документ (а именно SSL сертификат!) Ситуация с паролями совершенно другая. Допустим случилось так и твою базу слили, и злодей заполучил хеши и соли всех юзеров. Здесь найденная колизия никак не поможет, ибо допустим мы имеем пользователя со следующими данными: username: supernaturalpass: 9EGbR5o95M4F4ScJYtyYYQRhDRQ= (в реальности давайте скажем что пароль это qwerty123)salt: 3ZPGINWK8WPHF6PAWLYCSTOOA2439OJN Опять же ТЕОРЕТИЧЕСКИ (опять же скажу, этого пока что не удалось сделать для полного SHA1) давай скажем что мы нашли колизию и строка "978978978" с солью "3ZPGINWK8WPHF6PAWLYCSTOOA2439OJN" возвращает хеш "9EGbR5o95M4F4ScJYtyYYQRhDRQ=" Итак, что мы от этого поимели? Пароля supernatural мы все равно не знаем. Мы можем сгенерировать такой же хеш, как у этого юзера, но можем ли мы залогиниться как supernatural? Опять же нет, ибо проверяется не только пароль, но и username. Дак вот мой вопрос к тебе, что ты имеешь от того, что ты нашел эту мифическую колизию и смог сгенерировать такой же пароль какой есть у какого то юзера? На самом деле, то, что ты хочешь найти это преимедж, а именно тебе нужно произвести преимадж атаку на слитую базу. Это типичная брут форс атака, а именно тебе нужно будет генерировать хаши на каждую соль и пытаться "угадать" пароль qwerty123. Как только ты найдешь строку которая приведет к результату - 9EGbR5o95M4F4ScJYtyYYQRhDRQ=, то ты знаешь, что ты попал в цель. Однако любой пароль состоящий из 9+ знаков (буквы и цифры) таким образом сломать невозможно. Поделиться сообщением Ссылка на сообщение
AskMe- #6054 20 июня 2016 Мы можем сгенерировать такой же хеш, как у этого юзера, но можем ли мы залогиниться как supernatural? Опять же нет, ибо проверяется не только пароль, но и username. шо? Лишь ощутив баттхерт до конца, мы обретаем свободу Поделиться сообщением Ссылка на сообщение
Гость Camus #6055 20 июня 2016 Однако любой пароль состоящий из 9+ знаков (буквы и цифры) таким образом сломать невозможно. Из-за коллизий возможно. SHA, md5 и многие другие хеши создавались специально, чтобы быстро подсчитывать хеши больших объемов данных, это одно из условий хорошего хеша. И уже поэтому их не стоит использовать для хеша пароля, ибо дает возможность для брут атаки. На видеокартах sha-1 считается очень хорошо. Но то что у этого алгоритма возможны коллизии делает его окончательно непригодным для серьезных вещей. Это как минимум говорит о его качестве. От того более странно, что ты пытаешься защищать код который писал не ты. Поделиться сообщением Ссылка на сообщение
Supernatura1 #6056 20 июня 2016 (изменено) Однако любой пароль состоящий из 9+ знаков (буквы и цифры) таким образом сломать невозможно. Из-за коллизий возможно. SHA, md5 и многие другие хеши создавались специально, чтобы быстро подсчитывать хеши больших объемов данных, это одно из условий хорошего хеша. И уже поэтому их не стоит использовать для хеша пароля, ибо дает возможность для брут атаки. На видеокартах sha-1 считается очень хорошо. Но то что у этого алгоритма возможны коллизии делает его окончательно непригодным для серьезных вещей. Это как минимум говорит о его качестве. От того более странно, что ты пытаешься защищать код который писал не ты. Ja takih glupih ludei davno ne vstrechal. Ne chitaet voobshe chto ja pishu, a prosto sret i sret. Horosho chuvak, ti prav. Ti menia zaovnil Изменено 20 июня 2016 пользователем Supernatura1 Поделиться сообщением Ссылка на сообщение
Lorde - Sober ll #6057 20 июня 2016 то чувство когда уехал жить в калифорнию, но не закончил войну в интернете ReAIver's и Supernatura1 понравилось это have courage and be kind 😈🫀💋 🩸👣🤌🏿🦄 🐝✨ ⚡️ ☄️❣️ 💕 💞❤️😈 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 Поделиться сообщением Ссылка на сообщение
Гость Camus #6058 20 июня 2016 Гыы, называть кого-то в интернете тупым Поделиться сообщением Ссылка на сообщение
CriErr #6059 20 июня 2016 Гыыыв каждом посте Cantona.Eric понравилось это Поделиться сообщением Ссылка на сообщение
ReAIver's #6060 20 июня 2016 Приведу стену из известной книги: Стена Комментарии легче написать плохо, а не хорошо, и комментирование иногдабывает скорее вредным, чем полезным. Жаркие дискуссии по поводу достоинствкомментирования часто напоминают философские дебаты о моральных достоинствах, и это наводит меня на мысль о том, что, будь Сократ программистом, междуним и его учениками могла бы произойти следующая беседа.КомментоДействующие лица:ФРАСИМАХНеопытный пурист теории, который верит всему, что читает.КАЛЛИКЛЗакаленный в боях представитель старой школы — «настоящий»программист.ГЛАВКОНМолодой, самоуверенный, энергичный программист.ИСМЕНАОпытная разработчица, уставшая от громких обещаний и простожелающая найти несколько работающих методик.СОКРАТМудрый опытный программист.Мизансцена:Завершение ежедневного собрания группы— Желает ли кто#то обсудить еще что-нибудь, прежде чем мы вернемся к работе?— спрашивает Сократ.— Я хочу предложить стандарт комментирования для наших проектов, — говорит Фрасимах. — Некоторые наши программисты почти не комментируют свойкод, а всем известно, что код без комментариев нечитаем.— Ты, должно быть, еще менее опытен, чем я думал, — отвечает Калликл. — Ком#ментарии — это академическая панацея, и любому, кто писал реальные програм#мы, известно, что комментарии затрудняют чтение кода, а не облегчают. Естествен#ный язык менее точен, чем Java или Visual Basic, и страдает от избыточности, тог#да как операторы языков программирования лаконичны и попадают в самое яб#лочко. Если кто#то не может написать ясный код, разве ему удастся написать яс#ные комментарии? Кроме того, комментарии устаревают при изменениях кода.Доверяя устаревшим комментариям, ты сам себе роешь яму.— Полностью согласен, — вступает в разговор Главкон. — Щедро прокомментиро#ванный код читать труднее, потому что в этом случае читать приходится больше. Малотого, что я должен читать код, так мне нужно читать еще и кучу комментариев!— Подождите минутку, — вставляет свои две драхмы Исмена, ставя чашку кофе.— Конечно, злоупотребление комментариями возможно, но хорошие комментарииценятся на вес золота. Мне приходилось сопровождать код как с комментариями,так и без них, и, будь у меня выбор, я бы предпочла первый вариант. Не думаю, чтонам нужен стандарт, заставляющий писать один комментарий на каждые x строккода, но побудить всех программистов комментировать код не помешает.— Если комментарии — пустая трата времени, почему все их используют, Калликл?— спрашивает Сократ.— Или потому, что таково требование, или потому, что человек прочитал где#то опользе комментариев. Ни один программист, когда#либо задумавшийся об этом,не пришел к выводу, что комментарии полезны.— Исмена считает, что они полезны. Она уже три года сопровождает твой код безкомментариев и чужой код с комментариями. Ее мнение ты уже слышал. Что тыскажешь на это?— Комментарии бесполезны, потому что они просто повторяют код в более мно#гословной...— Подожди, — прерывает Калликла Фрасимах. — Хорошие комментариине повторяют код и не объясняют его. Они поясняют его цель. Коммен#тарии должны объяснять намерения программиста на более высокомуровне абстракции, чем код.— Верно, — соглашается Исмена. — Если я ищу фрагмент, который мне нужно из#менить или исправить, я просматриваю комментарии. Комментарии, повторяю#щие код, на самом деле бесполезны, потому что все уже сказано в самом коде. Когдая читаю комментарии, я хочу, чтобы они напоминали оглавление книги. Коммен#тарии должны помочь мне найти нужный раздел, а после этого я начну читатькод. Гораздо быстрее прочитать одно предложение на обычном языке, чем ана#лизировать 20 строк кода на языке программирования.Исмена наливает себе вторую чашку кофе.— Мне кажется, что люди, отказывающиеся писать комментарии, (1) думают, чтоих код понятнее, чем мог бы быть, (2) считают, что другие программисты гораз#до сильнее интересуются их кодом, чем есть на самом деле, (3) думают, что дру#гие программисты умнее, чем есть на самом деле, (4) ленятся или (5) боятся, чтокто#то другой узнает, как работает их код.— В этом смысле очень помогли бы обзоры кода, Сократ, — продолжает Исмена.— Если кто#то утверждает, что комментарии писать не нужно, и получает во вре#мя обзора кучу вопросов — если сразу несколько коллег спрашивают его: „Что про#исходит в этом фрагменте твоего кода?“ — он начинает писать комментарии. Еслипрограммист не дойдет до этого сам, его руководитель сможет заставить его пи#сать комментарии.— Я не утверждаю, Калликл, что ты ленишься или боишься, что кто#то другой пой#мет твой код. Я работала с твоим кодом и могу сказать, что ты — один из лучшихпрограммистов компании. Но будь чуточку добрее, а? Мне было бы легче сопро#вождать твой код, если бы ты писал комментарии.— Но это пустая трата времени, — не сдается Калликл. — Код хорошего програм#миста должен быть самодокументирующимся: все, что нужно знать другим про#граммистам, должно быть в самом коде.— Нет! — Фрасимах вскакивает со стула. — В коде и так уже есть все, что нужнознать компилятору! С таким же успехом можно было бы сказать, что все, что нуж#но знать другим программистам, уже есть в двоичном исполняемом файле! Еслибы мы только были достаточно умны, чтобы уметь читать его! Информации о том,что программистсобиралсясделать, в коде нет.Фрасимах замечает, что вскочил с места, и садится.— Сократ, это немыслимо. Почему мы спорим о важности комментариев? Во всехкнигах, которые я читал, говорится, что комментарии полезны и что на них не сто#ит экономить. Мы зря теряем время.— Успокойся, Фрасимах. Спроси у Калликла, как давно онпрограммирует.— Действительно, как давно, Калликл?— Ну, я начал с системы Акрополь IV где#то 15 лет назад.Думаю, что я стал свидетелем рождения и гибели пример#но десятка крупных приложений. А еще в десятке проектовя работал над крупными компонентами. Две из этих системвключали более полумиллиона строк кода, так что я знаю,о чем говорю. Комментарии совершенно бесполезны.Сократ бросает взгляд на более молодого программиста.— Как говорит Калликл, с комментариями действительно связано много проблем,и ты не поймешь это, пока не приобретешь больше опыта. Если комментироватькод неграмотно, комментарии не просто бесполезны — они вредны.— Они бесполезны, даже если комментировать код грамотно, — заявляет Калликл.— Комментарии менее точны, чем язык программирования. Лично я думаю, чтолучше вообще их не писать.— Постой, — говорит Сократ. — Исмена согласна с тем, что комментарии менееточны, но она утверждает, что комментарии поднимают программиста на болеевысокий уровень абстракции, а все мы знаем, что абстракция — один из самыхэффективных инструментов, имеющихся в нашем распоряжении.— Я с этим не согласен, — заявляет Главкон. — Нам следует концентрироватьсяне на комментариях, а на читабельности кода. При рефакторинге большинствомоих комментариев исчезает. После рефакторинга мой код может включать 20или 30 вызовов методов, не нуждающихся в каких бы то ни было комментариях.Хороший программист способен определять цель автора по самому коду; к томуже какой толк в чтении о чьей#то цели, если известно, что код содержит ошибку?Главкон умолкает, удовлетворенный своим вкладом в беседу. Калликл кивает.— Похоже, вам никогда не приходилось изменять чужой код, — говорит Исмена.Калликл делает вид, что его очень заинтересовали плитки на потолке.— Почему бы вам не попробовать прочитать собственный код через шесть меся#цев или год после его написания? Вы можете развивать и навык чтения кода, и навыкего комментирования. Никто не заставляет вас выбирать что#то одно. Если вы чи#таете роман, вам, может, и не нужны названия глав. Но при чтении техническойкниги вам, наверное, хотелось бы иметь возможность быстро найти то, что вы ищете.Тогда мне не пришлось бы переходить в режим сверхсосредоточенности и читатьсотни строк кода для нахождения двух строк, которые я хочу изменить.— Хорошо, я понимаю, что возможность быстрого просмотра кода была бы удоб#ной, — говорит Главкон. Он видел некоторые из программ Исмены, и они не ос#тавили его равнодушным. — Но как быть с другим утверждением Калликла — чтокомментарии устаревают по мере изменений кода? Я программирую лишь парулет, но даже я знаю, что никто не обновляет свои комментарии.— Ну, и да, и нет, — говорит Исмена. — Если вы считаете комментарии неприкос#новенными, а код подозрительным, у вас серьезные проблемы. На самом деле не#соответствие между комментарием и кодом обычно говорит о том, что невернои то, и другое. Если какие#то комментарии плохи, это не означает, что само ком#ментирование плохо. Пойду налью себе еще чашку кофе.Исмена выходит из комнаты.— Мое главное возражение против комментариев, — заявляет Калликл, — в том,что они тратят ресурсы.— Можете ли вы предложить способ минимизации времени написания коммен#тариев? — спрашивает Сократ.— Проектирование методов на псевдокоде, преобразование псевдокода в коммента#рии и написание соответствующего им кода, — говорит Главкон.— OK, это сработает, если комментарии не будут повторять код, — утверждает Кал#ликл.— Написание комментария заставляет вас лучше подумать над тем, что делает вашкод, — говорит Исмена, возвращаясь с новой чашкой кофе. — Если комментарииписать трудно, это означает, что код плох или вы недостаточно хорошо его по#нимаете. В обоих случаях вы должны поработать над кодом еще, так что время,потраченное на его комментирование, не пропадает — оно указывает вам на не#обходимую работу.— Хорошо, — подводит итоги Сократ. — Не думаю, что у нас остались еще вопро#сы. Похоже, Исмена сегодня была самой убедительной. Мы будем поощрять ком#ментирование, но не будем относиться к нему простодушно. Мы будем выполнятьобзоры кода, чтобы все поняли, какие комментарии на самом деле полезны. Еслиу вас возникнут проблемы с пониманием кода другого программиста, подскажи#те ему, как он может его улучшить. # читайте, как дефис. Soulless1989 понравилось это Поделиться сообщением Ссылка на сообщение