Pull to refresh

Comments 13

Все это хорошо, только непонятно, зачем было делать авторизацию, если все пароли можно украсть через SQL-инъекцию, а на взлом среднего пароля, "зашифрованного" с использованием 128-битного алгоритма хэширования MD5 требуется несколько минут. Или же украсть куки из браузера через XSS. Или же авторизоваться без пароля через ту же SQL инъекцию.

Было бы неплохо, если бы вы сделали работу над ошибками, ознакомившись с самыми базовыми правилами веб-разработки (и парой мелких замечаний):

  • хэширование паролей должно делаться только с использованием специально предназначенной функции

  • любые данные передаются в SQL запрос не напрямую, а через символы подстановки

  • Любой вывод должен начинаться после того, как закончилось получение и обработка данных

  • При выводе в HTML все переменные должны экранироваться с помощью htmlspecialchars()

  • phpMyAdmin - это не СУБД. СУБД, с которой вы работаете, называется по-другому

  • кодировку соединения с БД устанавливают один раз после установления соединения, а не после каждого запроса

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

Спасибо за ваш комментарий. Действительно, в статье допустил ошибку phpMyAdmin - это не СУБД. Также согласен со всеми остальными указанными замечаниями, постараюсь исправить.

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

В остальном же, как отвечал уже в комментариях, на реализацию ушел 1 рабочий день (может чуть больше, если считать заполнение БД и другие факторы). Проект используется только одной учебной группой, не заморачивался сильно. Поэтому прошу сильно не пинать за такие грубые ошибки.

А кто вас пинает-то? Вас наоборот поддержали, не стали минусовать.
При том что статья откровенно слабая, и обычно за такие тут закидывают тухлыми помидорами. Но вас никто не пинал, просто написали что и как исправить. Но внезапно вместо того, чтобы потратить 2 часа на исправление, или хотя бы задать вопросы о том, как сделать лучше, вы зачем-то решили начать оправдываться.

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

Какая разница, сколько дней у вас ушло? К чему здесь это "использует одна группа" и "мнимая безопасность"? Как будто если бы использовала не одна группа, а две, то вы бы сделали по-другому? Или вы хотите сказать, что знаете про нормальное хэширование, но сознательно выбрали "128-битный алгоритм", не преминув об этом написать? Нет? А к чему тогда это всё написано?

Вы сейчас этим одним этим комментарием растеряли весь кредит поддержки, который вам дало сообщество. Вы, наверное, не поняли главное. Что статья на самом деле не подходит для Хабра вообще. В первую очередь форматом "Смотрите какой я молодец, на коленке сделал приблуду для студентов!", в то время как на Хабр пишут "Смотрите, что нового вы можете узнать".

Не понимаю смысла данного комментария.

Но внезапно вместо того, чтобы потратить 2 часа на исправление, или хотя бы задать вопросы о том, как сделать лучше, вы зачем-то решили начать оправдываться.

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

Какая разница, сколько дней у вас ушло? К чему здесь это "использует одна группа" и "мнимая безопасность"?

Потому что данное решение нужно было "здесь и сейчас". И ключевым фактором при реализации была, в первую очередь, скорость. Была необходимость как можно быстрее ввести продукт в эксплуатацию, а потом уже закрывать все уязвимости и как-то улучшать.

Что статья на самом деле не подходит для Хабра вообще. В первую очередь форматом "Смотрите какой я молодец, на коленке сделал приблуду для студентов!", в то время как на Хабр пишут "Смотрите, что нового вы можете узнать".

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

Думаю, что раз нашлись умники, которые стали ставить себя первыми в очереди, то найдутся и умники, которые через SQL-инъекции в коде получат доступ к БД и будут продолжать ставить себя на первое место. Автору рекомендую ознакомится с основами веб-безопасности раз в универе этому не учат. Статья как будто пятнадцатилетней давности - $_GET параметры передаются напрямую в запрос, MD5 пароли которые подбираются по радужным таблицам, вёрстка на clearfix'ах и смешивание слоёв логики и отображения.

Ну вот и сколько времени вы потратили на эту задачу? Неделю? Три недели?

Сначала просто писали в общий чат, кто каким будет в очереди (например, "я первый", "я вторая", "я третий" и т.д.)

Вот чем этот вариант был плох? Для 20 человек раз в неделю так сложно в чате договориться? Создайте 10 чатов если надо, для каждого предмета. Быстро, дешево, просто. На работе вам тимлид так и скажет, что нечего ерундой в рабочее время заниматься.

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

Вроде сессия ещё не скоро.. Надо ждать нового наплыва лабораторок на хабре?

Ну вот и сколько времени вы потратили на эту задачу? Неделю? Три недели?

Данный проект был написан "на коленках" за 1 день.

Цели продвинуть себя в очереди вперед не имею. Создавать отдельные чаты для каждой дисциплины? Вы серьезно сейчас? В принципе, практика с чатами уже была и оказалась абсолютно безуспешной. Как минимум, нельзя отследить текущее состояние очереди. В случае же с автоматизированной очередью, каждый студент после защиты лабораторной работы должен удалить свою запись.

В качестве СУБД был выбран phpMyAdmin

И сразу 2 балла. На пересдачу.

В статье действительно опечатка: phpMyAdmin - не СУБД

Автор, Вы молодец! От всего сердца советую только одно - не принимайте близко к сердцу то, что другие пишут о том, что код кривой и сейчас так не пишут. Успешные проекты, которые мы видим вокруг и которыми пользуемся каждый день, начинались так же, если не хуже. Продолжайте развивать свои навыки, и помните, что всегда найдется тот, кто скажет "х***я [фигня], переделывай".

Я не очень понял логику этого комментария. Так надо автору развивать свои навыки, или не надо? Если надо, то в чем проблема прислушаться к рекомендациям? И как вы ему предлагаете развивать свои навыки, если не переделкой кода и исправлением ошибок? И в чем, собственно, проблема переделать?

Так я вроде про навыки и написал, что развивать надо. И что к комментариям нужно относиться критически и никогда не воспринимать написанное в них (да и в целом в интернете, в учебниках и т.д.) как прописную истину.

А почему не подошли гугл формы? Ответ в форме всегда добавляет в конец списка. Таблицу с результатами можно или вовсе не выкладывать или выложить в общий доступ в режиме чтения. Ну или брать данные из нее и выводить в любой удобной форме.

Sign up to leave a comment.

Articles