1. PHP / Говнокод #23401

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    <?php
    $page = $_GET['page'];
    $do = $_GET['do'];
    $todo = $_GET['todo'];
    
    //sponsor
    $s = $_GET['s'];
    
    //stupen
    $st = $_GET['st'];
    
    //sponsor
    $u = $_GET['u'];
    
    $email = $_POST['email'];
    $password = $_POST['password'];
    
    $name = $_POST['name'];
    $message = $_POST['message'];
    
    
    $surname = $_POST['surname'];
    $username = $_POST['username'];
    $passrepeat = $_POST['passrepeat'];
    $sponsor = $_POST['sponsor'];
    $skype = $_POST['skype'];
    $perfectmoney = $_POST['perfectmoney'];
    $payeer = $_POST['payeer'];
    $advcash = $_POST['advcash'];
    $bitcoin = $_POST['bitcoin'];
    
    $status = $_POST['status'];
    
    $uac = $_GET['uac'];
    
    $nowis = time();
    
    if ($do == 'login') {
        //id 	name 	email 	username 	password
        $querylogin = "SELECT * FROM `users`";
        $datalogin = mysql_query($querylogin);
        while ($rowlogin = mysql_fetch_array($datalogin)) {
            $usercheck_id = $rowlogin['id'];
            $usercheck_mail = $rowlogin['email'];
            $usercheck_pass = $rowlogin['password'];
            $usercheck_name = $rowlogin['name'];
            $usercheck_username = $rowlogin['username'];
    
            if ($usercheck_username == $username) {
                if ($usercheck_pass == $password) {
                    $_SESSION['user'] = $usercheck_id;
                    $inmsg = 'Привет ' . $usercheck_name . '!';
                    $page = 'cabinet';
                } else {
                    $err_msg = 'Неправильные пароль или аккаунт!';
                }
            } else {
                $err_msg = 'Неправильные пароль или аккаунт!';
            }
        }
    }

    Такого дилетанского кода я еще не видел

    Запостил: kissarat, 12 Октября 2017

    Комментарии (189) RSS

    • Зато без SQL-иньекций
      Ответить
    • а чем к слову сейчас нужно хэшить пароли?

      ша1 хакнули - ша512?
      Ответить
      • nvm - https://crackstation.net/hashing-security.htm - первый хит на гугле.
        как все сложно. но к счастью есть библиотечки.
        Ответить
      • bcrypt
        Ответить
      • В PHP есть стандартные функции[/color]
        Ответить
      • да можно и sha1, если ты от мамкиных хакеров защищаешься
        главное -- солить

        но лучше конечно sha512
        Ответить
        • Чистые хэши - говно. Они слишком быстрые, даже с солью мамкин хакер их поломает освободившейся от майнинга видюхой.

          Надо всё-таки юзать что-нибудь с итерациями.
          Ответить
          • for ($i = 0; $i < 9000; $i++) {
              $pass = sha1($pass);
            }
            Ответить
          • Можно по-подробнее?
            Какими данными для этого нужно владеть?
            Ответить
            • Ну базой логинов и хешей от паролей, видимо.
              хттп двоеточие слеш слеш википедия точка ру слеш Радужные таблицы.
              Ответить
              • > Использование функции формирования ключа с применением соли делает эту атаку неосуществимой
                Ответить
              • > Радужные таблицы
                Да я имела в виду брутфорс: современным видюшкам с их терафлопсами прогнать словарь через хэш - раз плюнуть. А от брутфорса соль не защищает, поэтому и надо тыщи итераций + зависимость результата от каждой из них, как в PBKDF2.
                Ответить
                • Если борманд -- тян, почему на видео про ОСУ мужские руки?
                  Ответить
                  • Ногти забыла накрасить.
                    Ответить
                  • Анимуёбы с большим стажем часто гворят о себе в женском лице, т. к. за просмотром мультиков про маленьких девочек часто забывают, кто они на самом деле.
                    Ответить
                    • А, точно. Я уж думал баба программировать умеет.
                      Ответить
                    • Н-но у меня стаж всего 3 года, да и последний год я почти ничего не смотрела.
                      Ответить
                    • Это анимуебы с маленьким стажем, потому что сначала это кажется ВеСелО и пРекОлЬНо))) Когда у меня был маленький мал, я тоже о себе в женском роде любила говорить.
                      Ответить
                      • Ну хуй знает, как-то меня это миновало. Желание говорить о себе в женском лице и трахать свой зад искусственным членом пропало еще до того, как я начал увлекаться аниме.
                        Ответить
                        • А что послужило катализатором?
                          Ответить
                      • Пиздец, вы все ебанутые. Я видел девочек, говорящих о себе в мужском роде, но 30ти летних бормандов, думающих что они тян -- такого я еще не видал
                        Ответить
                        • Только сейчас заметил?
                          Ещё cykablyad так делает.
                          Ответить
                        • >но 30ти летних бормандов, думающих что они тян -- такого я еще не видал

                          Это одно из проявлений такого явления как борманды.
                          Ответить
                        • > думающих
                          Но ведь я -- тян (пруфов не будет).
                          Ответить
                          • Борманд, нашёл странную штуку в ngk.

                            Если нажать "разбанить всех", а потом зайти на ngk в новой вкладке, то разбаненные будут забаненными. Если открыть ещё пару вкладов с ngk, то там будет всё ок. Если все закрыть и снова открыть ngk, то снова разбаненные будут забаненными. И т.д.

                            Не то чтобы это надо фиксить, просто интересно, с фига ли. Обозреватель - ФФ
                            Ответить
                            • И треды зелёненькие те, в которые уже ходил на ngk.
                              Ответить
                              • А вот это странно. Список прочитанного в локалсторедже, сервак тут не участвует т.е. кеш влиять не должен. Фф поди из истории достал снимок страницы на тот момент?
                                Ответить
                                • Возможно. Насколько я помню, у ФФ вообще достаточно злоебучий кэш
                                  Ответить
                                  • кеш не может быть злоебучим или не злоебучим

                                    Он подчиняется RFC: https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching
                                    Ответить
                                    • Конечно может. В Хроме не такой злоебучий. Не надо занудствовать :)
                                      Ответить
                                      • Самый злоебучий был в опере вроде.
                                        Ответить
                                        • в хроме злоебучесть (была?) в том, что им херово тестировать геты своего бекенда - по мере ввода гета в адресной строке этот пидор ДО энтера уже в фоне дрочит твой бек некими предполагаемыми запросами (которые ты выполнял какое-то время назад), типа такой агрессивный префетч

                                          а злоебучий кеш был в edge когда 10ка только начала у заказчика внедряться - этот пидор кешировал прямо страницы предыдущей сессии (которые так-то вообще не беком генерились, а ангуляром)
                                          Ответить
                                      • да, если не уметь читать RFC то он правда такой странный
                                        Ответить
                                        • > не уметь читать RFC
                                          Злоебучесть остаётся злоебучестью даже если она укладывается в рамки стандартов.

                                          З.Ы. Лень гуглить, но такое ощущение, что у мобильного хрома злоебучесть политика кеширования зависит от того, через что он лезет в инет (wifi или сотовую сеть).
                                          Ответить
                                          • > такое ощущение, что у мобильного хрома злоебучесть политика кеширования зависит от того, через что он лезет в инет (wifi или сотовую сеть).
                                            Интересно, распространяется ли это на обычный хром? Задал подключение как лимитное - и хром кэширует?
                                            Ответить
                                          • Похоже на какую-то адаптацию к частоте изменения ресурса — если css'ка свежая, то каждый раз за ней ходит. А если пару дней не править — привыкает к постоянству и проверяет очень редко.
                                            Ответить
                                        • > не уметь читать RFC
                                          Т.е. если я не укажу max-age или expires, то клиент имеет полное право больше никогда не кидать запрос к моей css'ке?
                                          Ответить
                                          • ну какбе да

                                            поэтому динамические питухи, когда билдят фронт, просто хуярят версионные суффиксы на все ресурсы

                                            был pitux.min.js, стал pitux.min.js?v=123412341234124, был unskillabra.css, стал unskillabra.css?v=134123412341234 (обычно туда таймстамп билда вшивается)

                                            потому что экспирес экспиресом и кеш-контрол кеш-контролом, но когда ты выпускаешь новую версию на прод, тебе некогда ждать, когда у юзера истекут некие 24 часа или 30 дней
                                            Ответить
                                            • Слушай, дефекате, пока ты не ушёл. Ты если поставишь днс с hui.gcode.cx на какой-то айпишник, то через сколько люди смогут на него ходить?
                                              Ответить
                                              • > через сколько люди смогут на него ходить
                                                По идее сразу. Проблемы там начинаются с заменой/удалением когда кеши DNS уже защёлкнули айпишник.
                                                Ответить
                                                • да
                                                  обычно днс-хостер говорит (в частноси, у меня яндекс-хуяндекс), что в течение 15 минут на его зоне обновится, а в сети Интернет - до 24 часов
                                                  но на практике сразу, как вносишь и нажимаешь апплай, так сразу гугловый днс резолвит
                                                  Ответить
                                                  • Я на сайте регистратора делегировал днс на ns.govnohosting.ru, на говнохостинге проставил А-записи на свой домен, и всё уже через пару часов работало. Но потом началась ёбля с почтой, я настроил всё по инструкции, но письма нихуя не отправляются. Потом решил сделать всё заново, и удалил все записи, и добавил всё заново. Теперь даже домен не резолвится. Может это норма, и нужно подождать?
                                                    Ответить
                                                    • Замена может все 24 часа занять, пока все кеши просрутся. Дефолтный TTL вроде как раз сутки.
                                                      Ответить
                                                      • А то, что я заменил на то же, что было, не влияет?
                                                        Ответить
                                                        • > не влияет
                                                          Влияет, по идее должно старые значения возвращать пока TTL не истечёт (т.е. правильные в твоём случае).
                                                          Ответить
                                                          • Ещё воброс. Если я захожу с браузера mysite.govnohosting.ru (это технический адрес), то он ок работает. А если делаю nslookup mysite.govnohosting.ru, и захожу по айпишнику, то хуй. Как они так сделали?
                                                            Ответить
                                                            • Стандарт http 1.1 требует заголовка host. Сервер смотрит этот заголовок и работает по конфигурации этого хоста. Без этого заголовка сервер вынужден отдать контент дефолтного хоста.
                                                              Ответить
                                                            • Поставь себе сниффер, wireshark, например. Куча вопросов сразу отпадет.
                                                              Ответить
                                                    • И сервер и клиент может кешировать отрицательный ответ
                                                      спроси у своего сервера напрямую. Ты на винде? Тогда
                                                      C:\>nslookup -type=soa govnokod.ru 
                                                      Смотри на  default TTL (тут 30 мин). Значит, 30 минут можно кешировать NXDOMAIN.
                                                      Потом посмотри на 
                                                      primary name server = ns1.digitalocean.com
                                                      и спроси у него:
                                                      C:\> nslookup  govnokod.ru  ns1.digitalocean.com
                                                      ...
                                                      Name:    govnokod.ru
                                                      Address:  46.101.246.194


                                                      Переланчани DNS клиента
                                                      c:\> net stop Dnscache && net start Dnscache
                                                      //или
                                                      c:\> sc stop dnscache && sc start dnscache
                                                      // либо PS
                                                      PS c:\> Restart-Service -Name Dnscache


                                                      А что за ебля с почтой? Через что ты ее отправлял?
                                                      Ответить
                                                      • Через твоё очко.
                                                        Ответить
                                                      • Мне уже ответили, что регистратор приостановил делегирование, т.е. хуйнул clienttransferprohibited

                                                        Посмотрим что они напишут.
                                                        Ответить
                                                      • > А что за ебля с почтой?

                                                        Настроил в biz.mail.ru корпоративный ящик по домену, все MX, TXT записи - всё вроде заебись.
                                                        И и хостинговом UI оно вроде привязалось.
                                                        Но как этот говнохостинг должен отправлять письма от моего ящика - хуй знает.
                                                        Ответить
                                                        • Кисуля, ты что-нибудь слышал о "SMTP"?
                                                          Ответить
                                                          • Ну я отправлял письма с локалхоста: указывал smtp сервер гугла, мой логин и пороль.
                                                            На хостинге хуй знает как это делается, я первый раз пытаюсь что-то хостить.
                                                            Ответить
                                                            • Ладно. Коноёбься дальше.
                                                              Ответить
                                                              • Я бы на твоём месте создал CrashTesterAnus0v или как-то так
                                                                Ответить
                                                            • причем тут хостинг?
                                                              Ты точно так же отправляешь письма через их SMTP сервер указывая хост, порт, логин и пароль (и, вероятно, включая TLS).
                                                              На чем ты пишешь? на пыхе?
                                                              Pear Net_SMTP, нет?


                                                              localhost нужен когда у тебя на хостинге вертится свой SMTP. В теории ты можешь так сделать, но это требует некоторого уровня прыщеблядства потому что тебе придется устанавливать и настраивать MTA (Postfix, Exim, в тяжелых случаях Sendmail итд) либо на отправку писем напрямую, либо на форвардинг их на твой mail.ru (т.н. smarthost). Может еще понадобится настроить подпись DKIM, в общем поверь: ты этого не хочешь.

                                                              Так что просто пропиши в тебя в DNS те txt записи которые требует mail.ru чтобы заработали DKIM, DMARC и SPF (поищи у них в документаци) и проверь что твой скрипт соединился с их smtp (его адрес так же можно почерпнуть в доке по твоему biz) и что отправилось письмо

                                                              Проверь через https://www.mail-tester.com/ что твои письма не попадают в спам (что работают dkim и spf хотя бы) и можешь спать спокойно
                                                              Ответить
                                                              • На пыхе. Но код не мой, а в ядре WordPress.

                                                                > указывая хост, порт, логин и пароль

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

                                                                DKIM, SPF - это всё есть.
                                                                Ответить
                                                                • как может вылезти какое-то окно, если обращаться к серверу по порту и протоколу smtp(s)?
                                                                  Ответить
                                                                  • А логин/пароль где они должны были взять?
                                                                    Ответить
                                                                    • в параметрах твоего smtp клиента, который подсунет твой логин и пароль в нужный момент, когда сервер это попросит, в рамках протокола smtp!
                                                                      Ответить
                                                                      • Высер еще не в курсе, вроде бы на мылрушечке давно отключили аутентификацию по паролю.
                                                                        Ответить
                                                                        • вроде бы?
                                                                          недонемец как обычно вроде бы чего-то хотел сказать важного и полезного, но вместо того, чтобы зайти на мерзкий майлру и увидеть поле "Пароль" на самом видном месте, просто напускал в холодную мартовскую лужу очередных пердячих пузырей
                                                                          Ответить
                                                                          • Аутентификацию по паролю в imap/smtp, пидорашка. Возьми ведро и тряпку и собери вывалившееся из тебя дерьмо, пока его тобой не затерли.

                                                                            >холодную мартовскую лужу
                                                                            Извини, пидорашка, у нас луж практически нет.
                                                                            Ответить
                                                                            • >>Аутентификацию по паролю в imap/smtp,

                                                                              Вероятно ты говоришь про отключение самих imap и smtp а не про аутентификацию, потому что не понятно как еще аутентифицировать пользователя: по смарт-карте? по ключу?

                                                                              За мейлру не скажу -- я им не пользуюсь --- но google по-умолчанию отключает imap и smtp для пользователя, нужно ставить галочку в настройках дескать "да, я до сих пор пользуюсь толстым клиентом".

                                                                              Причем гугл не любит когда шлют письма скриптом. Если слать по письму в день то ок, а если сделать рассылку на 500 человек то он может и забанить или потребовать зайти с этого IP и заполнить капчу)
                                                                              Ответить
                                                                              • Лол пиздец. Никто не пользуется мылрушечкой из почтовой программы? Там уже давно oauth
                                                                                Ответить
                                                                            • > тряпку
                                                                              смотри, беру тебя последний раз
                                                                              [foo@edge ~]$ openssl s_client -connect smtp.mail.ru:465
                                                                              CONNECTED(00000003)
                                                                              ...
                                                                              220 smtp59.i.mail.ru ESMTP ready (Looking for Mail for your domain? Visit https://biz.mail.ru)
                                                                              EHLO nedonemec.lox
                                                                              250-smtp59.i.mail.ru
                                                                              250-SIZE 73400320
                                                                              250-8BITMIME
                                                                              250-PIPELINING
                                                                              250 AUTH PLAIN LOGIN XOAUTH2

                                                                              и макаю тебя в твои ламерские анскильные выперды

                                                                              проверяй информацию ДО того, как посмеешь открыть говнокод, школьник
                                                                              Ответить
                                                                              • Я и сказал вроде, пидорашка. Так что засоси обратно своё дерьмо, смотри не ломни от желчи! В программе мне предлагали oauth.
                                                                                Ответить
                                                              • >>>"можешь спать спокойно"

                                                                Переспал с твоей мамкой на спине твоего папки.
                                                                Ответить
                                                      • Мой домен govnokod.xyz (лол)
                                                        Вот у этих
                                                        https://www.reg.ru/whois/?check=&dname=govnokod.xyz
                                                        https://www.whois.com/whois/govnokod.xyz
                                                        есть запись Domain Status: serverTransferProhibited

                                                        А вот whois моего регистратора https://www.nic.ru/whois/?searchWord=govnokod.xyz, у которых этой записи нет, и суппорт отвечает - мы хз.

                                                        что за нахуй?

                                                        nslookup -type=soa govnokod.xyz
                                                        возвращает какую-то sdns-12r2ns01.client.parking.ru, хотя я указывал днсы
                                                        Primary DNS - ns02.parking.ru [195.128.120.2]
                                                        Secondary DNS - ns03.parking.ru [46.173.223.50]
                                                        может быть в этом дело?

                                                        SEMAREAL, проверь.
                                                        Ответить
                                                        • https://www.nic.ru/whois/?query=govnokod.xyz

                                                          По данным WHOIS.NIC.RU:
                                                          Domain Name: GOVNOKOD.XYZ
                                                          Registry Domain ID: D64222689-CNIC
                                                          Registrar WHOIS Server: whois.nic.ru
                                                          Registrar URL: http://www.nic.ru
                                                          Updated Date: 2018-03-27T13:04:13Z
                                                          Creation Date: 2018-03-23T10:33:11Z
                                                          Registrar Registration Expiration Date: 2019-03-23T21:00:00Z

                                                          всё там есть.

                                                          А вот DNS сервере на твоем parking.ru в SOA прописана какая-то помойка
                                                          ;; AUTHORITY SECTION:
                                                          govnokod.xyz.           3600    IN      SOA     sdns-12r2ns01.client.parking.ru. admin.client.parking.ru. 21 900 600 86400 3600


                                                          А во вторых там нет A записи так что домен не резолвится ни во что
                                                          ;; OPT PSEUDOSECTION:
                                                          ; EDNS: version: 0, flags:; udp: 4000
                                                          ;; QUESTION SECTION:
                                                          ;govnokod.xyz.                  IN      A


                                                          Зайди на админскую панель управления DNSом на parking.ru и пропиши там во-первых сервер " ns02.parking.ru" и укажи IP адрес своего хостинга в A записи

                                                          До кучи можешь прописать responsible mail addr "guestinho.mail.ru" раз уж ты написал его в whois (в SOA записях точка вместо собачки в мыле)
                                                          Ответить
                                                          • > А вот DNS сервере на твоем parking.ru в SOA прописана какая-то помойка

                                                            В чем заключается помойка?
                                                            Чем оно отличается от рабочего бесплатного домена guestinh_96852_0.lh.parking.ru ?
                                                            Ответить
                                                            • В SOA записи по RFC должен быть прописан primary name server.
                                                              У тебя primary name server -- sdns-12r2ns01.client.parking.ru.?

                                                              Впрочем, это не главная твоя проблема: на работу сайта это мало влияет. А вот отсуттвие A записи очень даже влияет: сайт потому и не открывается

                                                              Пропиши A
                                                              Ответить
                                                              • Да блядь всё там прописано, по крайней мере админка так показывает. Суппорт ссылается на этот ёбаный serverTransferProhibited
                                                                Ответить
                                                                • Во-первых я не вижу в WHOIS serverTransferProhibited.
                                                                  Во-вторых он значит
                                                                  "This status code prevents your domain from being transferred from your current registrar to another."

                                                                  Ты что его, между регистраторами переносил?
                                                                  Или ты его как на nic.ru купил так и всё?

                                                                  В-третьих -- суппорт кого? parking.ru?
                                                                  Твоя зона делегирована на их сервера, их сервер не содержит A записи, причем тут whois?

                                                                  Покажи лучше ответ суппорта и скриншот адмики своей на parking.ru
                                                                  Ответить
                                                                  • > Ты что его, между регистраторами переносил?
                                                                    Нет
                                                                    > Или ты его как на nic.ru купил так и всё?
                                                                    Да
                                                                    > В-третьих -- суппорт кого? parking.ru?
                                                                    parking.ru

                                                                    Скриншот админки и письма http://guestinh_96852_0.lh.parking.ru/m.png
                                                                    Скриншот из письма https://screenshots.firefox.com/cIkt3aQQqiTrLtjz/www.reg.ru
                                                                    Ответить
                                                                    • Так у тебя A запись на WWW, вот у тебя "http://www.govnokod.xyz" и открывается прекрасно
                                                                      А для @ записи A нет.

                                                                      Подозреваю что status был сразу после регистрации, пока еще ничего не обновилось
                                                                      Теперь уже все ок
                                                                      https://www.nic.ru/whois/?query=govnokod.xyz
                                                                      Ответить
                                                              • > У тебя primary name server -- sdns-12r2ns01.client.parking.ru.?

                                                                Нет. Я хуй знает откуда он взялся. В админке регистратора прописан ns02.parking.ru
                                                                Ответить
                                                                • забей на SOA пока.
                                                                  я там выше написал что у тебя A только для WWW и потому я по http://www.govnokod.xyz вижу иконку с говном и Work in progress

                                                                  А без www я вижу хуй потому что A записи для @ нет.
                                                                  > @ A free standing @ is used to denote the current origin.
                                                                  /RFC 1035


                                                                  зы: SOA прописывается не у регистратора а в DNS сервере -- то-есть в parking.ru в твоем случае, если ты ее там не прописывал то они видимо сами это делают, но пока это не проблема
                                                                  Ответить
                                                                  • Чёто оно не даёт A запись с именем @ создать.
                                                                    И как-то без него в прошлый раз работало, до того как я всё грохнул.
                                                                    Ответить
                                                                    • а пустую дает?
                                                                      Ответить
                                                                      • тоже нет
                                                                        Ответить
                                                                        • ладно тогда пропиши полное имя с точкой в конце
                                                                          govnokod.xyz.
                                                                          я вижу что у тебя он прописан, но точки нет

                                                                          без точки в конце он относительный (как govnokod.xyz.govnokod.xyz, но так не работает потому что само имя точку содержит)
                                                                          Ответить
                                                                        • лол, ты сделал это?;)

                                                                          ;; ANSWER SECTION:
                                                                          govnokod.xyz.           3414    IN      A       195.128.120.143
                                                                          
                                                                          PS C:\> curl http://govnokod.xyz
                                                                          
                                                                          StatusCode        : 200
                                                                          StatusDescription : OK
                                                                          Content           : Work is in progress
                                                                          RawContent        : HTTP/1.1 200 OK
                                                                                              Transfer-Encoding: chunked
                                                                                              Connection: keep-alive
                                                                                              Keep-Alive: timeout=5
                                                                                              Link: <http://guestinh_96852_0.lh.parking.ru/wp-json/>; rel="https://api.w.org/"
                                                                                              Content-Type: text/html; c...
                                                                          Ответить
                                                                          • Хз. Я опять пнул суппорт, может они чёто сделали. А может какие-то кеши раздуплились?

                                                                            P.S. С точкой в конце запись тоже нельзя создать.
                                                                            Ответить
                                                                            • ебанутый какой у тебя хостер dns, да еще и суппорт лажает) ладно, фиг с ним: заработало, и ладно

                                                                              самый лучший DNS у самого nic.ru: там прямо дают файл зоны редактировать: пиши, что хочешь
                                                                              Ответить
                                                                              • Теперь я вернулся к тому с чего начал - отсылка почты :D

                                                                                P.S. Тебе спасибо за помощь )
                                                                                Ответить
                                                                                • ну spf, mx и dkim я вижу (dmarc нет, ну это не важно)
                                                                                  если все три записи настроены по инструкции mail.ru, то наверное будет работать

                                                                                  Я бы проверил с командной строки, через "openssl s_client -connect smtp.mail.ru:465"
                                                                                  https://oioki.ru/2011/09/proveryaem-rabotu-smtp-auth-login-cherez-telnet/
                                                                                  Ответить
                                                                              • > ебанутый какой у тебя хостер dns

                                                                                Какой Сёма посоветовал -__-
                                                                                Ответить
                                                                                • просто если ты уже купил домен на nic.ru то мог бы и захостить его там же
                                                                                  https://www.nic.ru/dns/service/dns_hosting/
                                                                                  Ответить
                                                        • Вопрос к быдлу: не тупо ли будет селиться на сайте у долбоёба, который не способен ни движок спизженный отладить, ни домен настроить, но которому хочется поиграть "в админа", побыть вахтёром?
                                                          Ответить
                                                          • А что, много желающих этим заниматься кроме него?
                                                            Ответить
                                                          • Со "спизженным" движном проблем нет, только с доменом. Там по сути повторения функционала бормандстока + возможость писать посты и коменты у себя.
                                                            Ответить
                                                          • Посмотрим, пусть сначала сайт запилит.
                                                            Ответить
                                          • именно так и делают "вечный кеш" всякие серьезные фронтэндеры

                                            foo.js -> foo[hash-от-контекта].js
                                            Затем Expires: через год

                                            И всё: один раз скачали и до внесения изм. в файл так и будет закешено. Это актуально когда у тебя миллион клиентов.

                                            но даже без этого с if-modified-since работает не плохо
                                            Ответить
                                        • Нафиг мне читать RFC, если я браузером пользуюсь обычно на уровне домохозяйки? Чувак, не все такие задроты, как ты :D
                                          Ответить
                                    • Комментарии в хтмл тоже должны быть <!-- -->, но все кроме старой оперы замечательно глотали и --!>
                                      Ответить
                                    • Интересно, можно ли провернуть что-то типа meltdown - смотреть на время загрузки картинок, CSS, etc, и вытягивать инфу из соцаккаунта?
                                      Ответить
                            • Кеш походу косячит. На мобиле у меня вообще скрипты не релоадятся. Надо бы проверить заголовки.
                              Ответить
                    • > часто забывают, кто они на самом деле.
                      Но я на самом деле девочка-волшебница.
                      Ответить
                  • Что за видео?
                    Ответить
                • > что-нибудь с итерациями
                  > брутфорс: современным видюшкам с их терафлопсами прогнать словарь через хэш - раз плюнуть. А от брутфорса соль не защищает

                  Не троллинга ради, хочется разобраться.

                  Перейдём в логарифмическую шкалу, построим оценку сверху.
                  Терафлопс - это 40 бит в секунду. Год - это 25 бит секунд или 65 бит в год на терафлопсе. Накинем 3 бита за 10 лет и ещё 7 бит во славу закона Мура. Итого 75 бит за 10 лет, начиная с терафлопса и активно апгрейдясь.
                  Скинем 5 бит за вычисление хэша. Скинем 22 бита за словарь. Останется 48 бит хэшей.
                  Соответственно, мне достаточно насолить хакеру 6 байт, что эквивалентно порядка 10¹⁴ итереций без соли (на самом деле даже меньше, т.к. оценка была сверху). Если короткий словарь на 12 бит - 8 байт или 10¹⁷ итереций.

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

                  Если я накидываю 1000 итереций, то добавляю ему только 10 бит. При используемых прикидках (воинствующий школьник с папой из Google) надо будет использовать 5+22+10 = 37 бит флопсов, то есть ¹⁄₈ секунды вместо ¹⁄₈₀₀₀. Если не так быстро, это ¹⁄₄ часа вместо секунды или 3 года вместо дня. Но всё равно криптографически вяло, а эта питушня на сервере тормозит.

                  Если речь о брутфорсе паролей, то итереции и слипы только снизят пирфоманс. Если поставить 1000 ядер, кулхацкер будет брутфорсить c 1000 IP. Если разрешить только один одновременный вход раз за какое-то время, то логинилка будет успешно DoSиться, если не самими пользователями, то одним неспешным хакером со старым нетбуком. Тут только пользователей заставлять пароли ставить сложнее, логиниться с трёхэтажными капчами (каждый раз, чтобы защитить от распределённого подбора логинов) и т.п.

                  Не вижу какой-то пользы в итерециях, кроме как в случае подбора паролей (но там и слип поможет). На каком этапе я заблуждаюсь?
                  Ответить
                  • > На каком этапе я заблуждаюсь?
                    Соление и итереции защищают не твой сервер от активной атаки, а креденшиалы юзеров в случае, если у тебя базу ломанули и спиздили.

                    В общем-то можешь хранить пароли и в открытом виде, если не жалко людей, использующих один и тот же пароль на всех сайтах.
                    Ответить
                    • >>если не жалко людей, использующих один и тот же пароль на всех сайтах.
                      99% таких. Среди НЕ айтишников так точно
                      Ответить
                    • >>> Да я имела в виду брутфорс: современным видюшкам с их терафлопсами прогнать словарь через хэш - раз плюнуть. А от брутфорса соль не защищает
                      >>> А от брутфорса соль не защищает
                      >> На каком этапе я заблуждаюсь?
                      > Соление и итереции защищают не твой сервер от активной атаки
                      Про это у меня был только один абзац о подборе паролей - чисто для покрытия всех вариантов касательно паролей (спереть хэши, подобрать пароли на сервере), оставив за бортом какие-нибудь мелочи вроде SQL-инъекций и прочих уязвимостей.
                      Остальное - расчёты того, как хакер десять лет обращает хэши у себя дома.

                      Почему соль не защищает от брутфорса?

                      Борманд в моей голове только что #:
                      Потому, что соль хранится в открытом виде, и если подбирать по словарю, не важно, сделать миллион вычислений хэша от пароля, либо миллион вычислений хэша от пароля плюс соли. В твоих вычислениях ты по недоразумению представил соль как нечто неизвестное, что ещё требуется подобрать. Соответственно, 6 байт соли добавят не 48 бит сложности брутфорсеру, а 0 бит; соль бесполезна.

                      Пока писал вопрос, понял, в чём дело.
                      Ответить
                      • >Борманд в моей голове только что

                        Хы-хы-хы. Вот так и заводят себе мнимых и даже комплексных друзей.
                        Или весь ГК, на самом деле, — плод воображения 1024-- ?
                        Ответить
                      • Соль защищает от того, что ты возьмешь список паролей с хешем и найдешь нужный за O(1)
                        Ответить
                        • Борманд писал, что константная соль не спасает. Но мне лень весь тред перечитывать.
                          Ответить
                          • Константная, это всмысле когда у тебя на всех паролях соль одинаковая?

                            >Это хуёвый вариант, т.к. у юзеров с одинаковым паролем будет одинаковый хэш.


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

                                З.Ы. А если он ещё и разный на всех сайтах, то ему вообще нясрать ня эти проблемы.
                                Ответить
                                • Ок. Для чего нужна соль? Чтобы если сольют хеши, нельзя было восстановить пароль по таблице. Или для чего-то ещё?
                                  Ответить
                                  • > Для чего нужна соль?

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

                                    В сочетании с достаточным количеством итереций это отобьёт у злоумышленника всё желание что-то перебирать. Разве что совсем тупые варианты попробовать на авось.
                                    Ответить
                              • Допустим, у тебя есть хеши 100К пользователей.

                                Если они все несолёные, то ты за O(1) найдешь придурков с паролем "123" и "pass".

                                Если они все солёные одной солью, то ты брутнешь одного придурка с паролем "123", и автоматически увидишь остальных сорока двух придурков с таким же паролем.

                                Если они все солёные разной солью, то ты будешь брутить каждого, а это долго.
                                Ответить
                                • Ладно, согласен.
                                  Ответить
                                • > а это долго

                                  Именно поэтому я за argon2i: гиг памяти, 4 ядра и что-то в районе секунды на одно вычисление хеша на 8700k.

                                  Удачного перебора ;)

                                  З.Ы. Хотя это больше для дискового шифрования, для сервака что-нибудь полегче надо.
                                  Ответить
                                  • Почему вообще еще существуют пароли на сервере?

                                    Я бы сделал так:
                                    * В хроме есть кнопка "сгенерить серт и прива-тный ключ для этого домена
                                    * Юзер ее жмет, ключ сохраняется с паролем где-то локально, серт передается на сервер

                                    Всё. На сервере чисто публичные ключи именно для него и созданные. Пускай воруют сервер, похуй как-то.

                                    Если у тебя 10К пользователей, то парочка всё равно забубенит легко угадываяемый пароль
                                    Ответить
                                    • > В хроме есть кнопка

                                      А на другой девайс приватные ключи передавать через гугол? Тогда проще через гугол SSO'шнуться и не ебать мозг себе и юзеру...
                                      Ответить
                                      • Через флешку или блютус или усб, или даже по wifi.
                                        Это уже забота юзера.
                                        Ответить
                                        • Именно поэтому я за смарт-карты (для мобилы беспроводные тоже есть, да).
                                          Ответить
                                          • Ну или так (с)

                                            Кстати, как прикрутить к чему-то 2FA? Нужно с кем-то контракт заключать чтобы слать SMSки? Или можно воткнуть симку куда-то?
                                            Ответить
                                            • > Нужно с кем-то контракт заключать

                                              Да, так проще всего...

                                              А чем ТОРТ TOTP в качестве второго фактора тебе не нравится? Там и смсок не надо будет и в оффлайне будет работать.
                                              Ответить
                                              • тогда тебе нужно приложение на телефон или какое-то другое устройство, не?

                                                Кстати, был же когда-то OTP (без первой T) тупо на бумажке.

                                                Вот тебе 33 пароля, каждый на один раз.


                                                PS: Мне ничего этого не надо, разумеется.
                                                Я прикоучивал https://python-social-auth.readthedocs.io/en/latest/backends/index.html#social-backends и тёк

                                                Пускай голова у гугла болит
                                                Ответить
                                                • он и сейчас есть, по крайней мере у гитхаба, и, если не изменяет память, у гугла по крайней мере до каких-то времен
                                                  Ответить
                                                  • Ну это резервный вариант, на случай если приложение проебёшь. Хотя можно и постоянно пользоваться, наверное...
                                                    Ответить
                                                • > приложение

                                                  Можешь секрет запомнить и в уме считать, там всего лишь хеш и немного битоёбства.
                                                  Ответить
                                                  • Ну если бы я делал соц-сеть для математиков...
                                                    Ответить
                                  • > для сервака что-нибудь полегче надо.

                                    заDDoSить легко даже небольшим ботнетом
                                    Ответить
                                    • > заDDoSить легко

                                      Затроттлишь перебор по айпишнику. Один фиг это сделать надо по-хорошему.
                                      Ответить
                                      • У годного хакера ботнет на 100К айпишников, заебешься его тротлить.

                                        Впрочем, если баннить после трех неверных попыток и передавать бан куда-то на сетевое оборудование, которое умеет проверять SRC хардварно, то может и не так страшно
                                        Ответить
                • Поскольку ты тут самая умная, то скажи:

                  я захешил sha512 соленый пароль "сороктысячобезьянвжопусунулибанан".
                  У маминого хакера есть 4 карты NVIDIA P106-100 на общуюу сумму 80 тыр.

                  Сколько времени ему надо чтобы вскрыть мой пароль?
                  Ответить
                  • Да кому нахуй нужен твой пароль, если в той же базе есть 100500 юзеров с анальным 12345678?

                    З.Ы. И "сороктысячобезьянвжопусунулибанан" всяко есть в словарях, классика же.
                    Ответить
                    • То-есть если у меня нормальный пароль, соль и современный хеш (ну не md5 хотя бы) то шансы у мамкиного хакера не велики?

                      >> И "сороктысячобезьянвжопусунулибанан" всяко есть в словарях,
                      да, но если это словарь для брута то ты прав. А если это словарь слово-хеш то хуй, ибо соль
                      Ответить
                      • > не велики
                        Как-то так.

                        > md5
                        Разве для md5 уже pre-image атаку нашли, чтобы его нельзя было юзать для хеширования паролей? Емнип, там только коллизии научились генерить.

                        > словарь для брута
                        Да, я его имела в виду.
                        Ответить
                        • Юзать можно, но мне кажется что он коротковат, да и брутится быстрее чем sha2.
                          Но окей, я соглашусь пожалуй что и MD5 солёный на дороге не валяется.
                          Ответить
                    • Допустим мы нашли самый распространённый пароль, и это 123. Как теперь подбирать соль?

                      P.S. Можно айдишник юзера ложить в соль.
                      Ответить
                      • Я вчера задавал этот вопрос.
                        1. Если слита таблица с хэшами, индивидуальная соль пользователя там уже лежит, и подбирать её не надо, просто вычислить хэш от 123 и соли.
                        2. Если спрашивать user:123 у сервера, соль не важна.
                        Спрятать соль на другом сервере отдельно? Может, и вариант получше, ломать придётся два сервера, а не один. Но если сломали первый, то почему второй должен устоять?
                        Ответить
                        • Ну про 2 сервера - хороший, годный вариант. Один сервер занимается только аутентификацией, а остальные - крутят прикладнуху и вообще никогда не видят креденшиалы юзеров.
                          Ответить
                          • OAuth?
                            Ответить
                          • Kerberos, как в AD
                            Ответить
                            • Кому нахуй сдался какой-то Kerber OS?
                              Ответить
                              • MITу..
                                Ответить
                                • А кто это?
                                  Ответить
                                  • ну блядь
                                    https://www.mit.edu/

                                    Это логово столманов, AI, лиспа, вот этого всего
                                    Ответить
                                    • Сука, заебали с автовоспроизведением видео, да ещё и со звуком.
                                      Ответить
                                    • Minsky in the middle
                                      Ответить
                                      • Мерзкий насильник! Тридцать лет назад он пригласил к себе 17-ти летнюю массажистку

                                        Нужно нахуй сжечь весь MIT
                                        Ответить
                              • Вообще если без шуток, то Kerberos (изобретенный в MIT, и популяризированный мелкомякгими) действительно решает описанную 1024 проблему, то есть позволяет не передавать пароль (даже в виде хеша) ни на какой сервер, а хранится твой пароль захешированный на сервере тикетов (в случае MS это называется "контроллер домена") куда у хорошего админа никто никогда не лазит.

                                К сожалению, как минимум один раз тебе нужно куда-то ввести свой пароль, и это здорово рушит картину в сетях MS (например при удалённом доступе).

                                Именно потому Борманд и за смарт-карты.

                                Сейчас есть OAuth, и идеей SSO без передачи пароля никого не удивишь, увы
                                Ответить
                        • Соль также легко украсть, как и хеш. Разницы нет. Но с солью у тебя нет готовых таблиц
                          Ответить
                          • Словарная атака Борманда работает за O(размера словаря), что для небольшого числа популярных паролей O(1) и асимптотически эквивалентно подбору по таблице.
                            Ответить
                        • Рассмотрим случай, когда соль не индивидуальная, а захардкожена в settings.php

                          И ещё нужно знать алгоритм применения соли. Но допустим это password + salt.
                          Ответить
                          • > нужно знать алгоритм применения соли
                            В криптографии всегда предполагается, что мы знаем все алгоритмы.

                            > захардкожена в settings.php
                            Это хуёвый вариант, т.к. у юзеров с одинаковым паролем будет одинаковый хэш. Здесь можно провести активную атаку заюзав сервер в качестве оракула - зарегаться, менять свой пароль и подглядывать, какой получается хеш.

                            Вот если часть соли индивидуальная, а часть - в settings.php - вроде выглядит лучше. По крайней мере SQL инъекций можно не бояться, если соль в settings.php достаточно криптостойкая.
                            Ответить
                            • > зарегаться, менять свой пароль и подглядывать, какой получается хеш
                              Это чтобы ещё и алгоритм хэширования подобрать?
                              А так установить себе один раз пароль "123" и отнести хэш хакеру домой на подбор соли видеокартами.
                              Ответить
                              • > ещё и алгоритм хэширования подобрать
                                Не, тут даже алгоритм знать не надо. Сервер сам всё сделает как надо. Тебе остаётся менять свой пароль на все тупые варианты и смотреть, когда твой хеш с чьим-то ещё совпадёт.

                                Да, не оффлайн. Да, админ может запалить (но не факт, т.к. смена пароля при известном старом - довольно безобидное действие).

                                Т.е. индивидуальная соль всё же нужна.
                                Ответить
                              • В итоге получается такая схема:
                                - криптостойкая статичная соль, без знания которой хеши бесполезны;
                                - индивидуальная соль, которая защищает от создания таблиц и сравнения хешей друг с другом;
                                - алгоритм с N итерециями (к примеру, PBKDF2), который замедляет брутфорс в N раз.
                                Ответить
                              • > пароль "123" и отнести хэш хакеру домой на подбор соли видеокартами.

                                Вот я пытаюсь выпытать у вас: КАК?
                                Как подобрать соль, пусть даже она 10 символов 64-символьного алфавита?
                                Ответить
                                • Взять дефолтную из дистриба, один фиг пыхоадмин забыл её поменять.
                                  Ответить
                                  • Потому то джанга всегда генерит разный ключ при создании проекта
                                    Ответить
                                    • Причем тут это?
                                      Ответить
                                      • притом что ни соли, ничего рендомного не должно быть "дефалтного" в проекте
                                        Ответить
                                        • На что влияет ключ проекта (SEKRET_KEY?)
                                          Ответить
                                          • на csrf в пост формах, на сессии, на salt в хешах
                                            Ответить
                                            • >на salt в хешах
                                              >на сессии
                                              Штооо блядь?

                                              >на csrf в пост формах
                                              Как оно там организовано?
                                              Ответить
                                              • https://github.com/django/django/blob/master/django/utils/crypto.py
                                                salted_hmac

                                                я не верно выразился: не на саму соль, а в добавок к ней.
                                                salt гарантирует что в двух местах кода я не получу одинаковых hmac, а ключ гарантирует что я не получу его в разных инсталляциях

                                                >>Как оно там организовано?
                                                https://github.com/django/django/blob/master/django/middleware/csrf.py

                                                from django.utils.crypto import constant_time_compare, get_random_string


                                                при этом get_random_string (правда только если нет random нормального)

                                                hashlib.sha256(
                                                ('%s%s%s' % (random.getstate(), time.time(), settings.SECRET_KEY)).encode()
                                                )
                                                Ответить
                                                • Я чот не понимаю. Они рендому не доверяют, что ли?
                                                  >если нет random нормального
                                                  Это как вообще? Даже на эмбеде он есть.

                                                  Короче, нихуя не понятно. То ли я дурак, то ли они.
                                                  Ответить
                                                  • >>Они рендому не доверяют, что ли?
                                                    они доверяют только нормальному рендому который использует энтропию, а его (по доке питона) может не быть:

                                                    https://docs.python.org/2/library/os.html#os.urandom

                                                    On a UNIX-like system this will query /dev/urandom, and on Windows it will use CryptGenRandom(). If a randomness source is not found, NotImplementedError will be raised.

                                                    POSIX не требует urandom
                                                    https://unix.stackexchange.com/questions/146735/does-posix-require-any-devices

                                                    Так что вполне может не быть в конкретном устройстве
                                                    Ответить
                                                    • Если у тебя не будет нормального рендома (назови мне устройство где его не будет), у тебя не будет работать криптография на открытом ключе, это для начала.
                                                      Ответить
                                                      • >>назови мне устройство где его не будет
                                                        Теоретически я могу представь себе маленький headless сервер у которого просто нет источника энтропии, но это не важно: важно что posix не требует /dev/random и /dev/urandom, а значит их может не быть, и Django не может требовать их наличия.

                                                        >>криптография на открытом ключе,
                                                        ну сгенерить ключ ты можешь заставив пользователя кляцать по клаве (так делает openssh, например) а вот нужен-ли тебе рендом при его использовании зависит от использования.
                                                        Ответить
                                                        • Ну бля, я вообще-то имел в виду TLS. Придумай мне ось, на которой не будет энтропии для TLS, но придется запустить джангу.

                                                          >при этом get_random_string (правда только если нет random нормального)
                                                          А для чего он нужен-то если есть нормальный рендом?
                                                          Ответить
                                                          • Да, TLSу (как и всему, что передается по сети) нельзя без randomа иначе можно наснифить пакетов и подобрать ключ.

                                                            >>а для чего
                                                            для того чтобы превратить random в красивый набор букв и цифр нужной длины:)

                                                            Вот как он работает если есть random (то-есть можно random.choice)
                                                            "".join(random.choice(allowed_chars) for i in range(length))


                                                            Еще раз предлагаю почитать код, там всё написано
                                                            https://github.com/django/django/blob/master/django/utils/crypto.py
                                                            Ответить
                                                            • Влом. Просто такие вещи как по мне делаются не от хорошего ума.
                                                              Ответить
                                      • Привет.
                                        Ответить
                                • * Взять дефолтную как говорит Борманд
                                  * Проверить варианты, сгенерированные с помощью rand() и других простых генераторов
                                  * Запастись терпением и перебирать все варианты

                                  > КАК?
                                  for(salt = "AAAAAAAAAA"; salt <= "ZZZZZZZZZZ"; inc(salt))
                                    if(hash("123" + salt) == myHash)
                                      std::cout << "THE SALT IS " << salt;

                                  А потом использовать найденную salt для остальных
                                  Ответить
                                  • Я придумал.
                                    Берём достаточное количество поролей. Составляем сестему бесконечномерный уравнений, и решаем её.
                                    Ответить
                                    • В случае неизвестной длинной случайной соли подобное будет действительно проще.
                                      Ответить
                                    • допустим соль 123 тогда составляет воерции 321 можно получить 1 что всего 12 байт в 42 разы быстрее
                                      Ответить
                • Да ты уже полгода как пидор.
                  Ответить
    • Где здесь C++, guest?!
      Ответить

    Добавить комментарий