@python_beginnersЭта группа больше не существует

Страница 480 из 1885
Viktor
22.09.2016
13:38:51
третий саблайм из пакмана ставит.
Что еще раз подтверждает вашу тупость, кхм

Уж простите за откровенность

Google
Viktor
22.09.2016
13:39:34
зачем мне с аур разбираться , поставить не проблема. ЯЯ пользуюсь тем чем пользуюсь, отстань.
Ты бл*дь хочешь собрать из исходников, но AUR это слишком сложно

Как ты вообще арч поставил...

Zart
22.09.2016
13:39:58
а как в арче аур сделан?

err0r
22.09.2016
13:42:36
Что еще раз подтверждает вашу тупость, кхм
ты чо агришься , мне ваще не всрался твой саблайм. Зачем мне ставить саблайм?

Темный
22.09.2016
13:42:57
потому что можешь.

Viktor
22.09.2016
13:43:32
а как в арче аур сделан?
По сути AUR это хостинг для репозиториев

Каждый из которых имеет в себе скрипт

Который исполняется при сборке

И скачивает нужные исходники, конфигурирует и мейк инсталлит их

Также он определяет информацию о пакете

Этот скрипт исполняется утилитой makepkg которая проверяет зависимости, а затем запускает 3 стадии скрипта, после чего собирает пакет

Zart
22.09.2016
13:52:32
негусто разницы с портами

технически может и иначе, но суть та же

Google
Viktor
22.09.2016
14:20:30
Zart
22.09.2016
14:20:52
порты в бсд, ебилды в генту, вот это всё

Viktor
22.09.2016
14:21:32
а, ну да.

Максим
22.09.2016
14:27:12
Может кто подскажет, есть ли подобные группы в телеграме по java?

Темный
22.09.2016
14:29:04
есть

Максим
22.09.2016
14:39:26
Линк пожалуйста:)

Dmitriy
22.09.2016
14:55:52
Мужики, не подскажете какой-то ресурс, где подробно расписываются секьюрити баги в коде на питоне? У меня класс для работы с БД, возможно там косячнул где-то, пока догадки)

Или вообще посоветуете литературу по написанию грамотного безопасного кода?

Zart
22.09.2016
14:59:56
как везде - экранировать правильно

Cykooz
22.09.2016
15:01:12
Безопаснее всего - вообще ничего не писать. ?

Dmitriy
22.09.2016
15:05:42
как везде - экранировать правильно
Что под этим имел ввиду?

Zart
22.09.2016
15:08:33
не совать данные в запросы напрямую...

https://xkcd.com/327/

Dmitriy
22.09.2016
15:10:00
SQLite

Viktor
22.09.2016
15:10:13
И зачем свой класс?

Dmitriy
22.09.2016
15:11:08
Класс телефонная книга там дофига функций, я решил это обернуть в класс, чтобы легче импортировать было

не совать данные в запросы напрямую...
Извини, туплю сильно. Что значит напрямую? Если я пихаю с помощью sqlite типо cur.execute("INSERT hyuina INTO table") Это тот случай?

Google
Igor
22.09.2016
15:12:44
да

Dmitriy
22.09.2016
15:12:53
лол

Igor
22.09.2016
15:13:01
если ты делаешь так "INSERT " + то_что_ввел_юзер + " FROM table;"

Dmitriy
22.09.2016
15:13:15
так и делаю это уязвимо?

Igor
22.09.2016
15:13:16
если буквально так, как ты написал, то, конечно, нет

да, надо экранировать входящие данные

Viktor
22.09.2016
15:13:32
def insert_number(number: str): cur.execute("INSERT " + number + " INTO table");

Igor
22.09.2016
15:13:34
в стандартной sqlite библиотеке в питоне это вроде делается вопросиками

Zart
22.09.2016
15:13:38
так и делаю это уязвимо?
это сраный пиздец

Igor
22.09.2016
15:13:42
и потом через запятую перечисляешь

Viktor
22.09.2016
15:13:42
Dmitriy
22.09.2016
15:13:45
как это сделать? Что под этим подразумевается?

Igor
22.09.2016
15:14:00
c.execute("UPDATE movies SET rating = ? WHERE name = ?", (8.7, "'Allo 'Allo! (1982)"))

первым аргументом - запрос; там, где надо вставить опасные данные - знак вопроса, а вторым аргументом tuple из этих опасных данных

Viktor
22.09.2016
15:14:40
кстати да, просто юзай стандартные возможности библиотеки

Dmitriy
22.09.2016
15:14:52
в стандартной sqlite библиотеке в питоне это вроде делается вопросиками
cur.execute("INSERT INTO contacts (FIO, phone, born) VALUES(?, ?, ?)", info) один такой запрос cur.execute("UPDATE contacts SET phone={0} WHERE id={1}".format(phone_number, id)) другой такой запрос

Igor
22.09.2016
15:14:54
имей в виду, что если надо вставить че-то одно, то tuple должен выглядеть так - ('data',) с запятой на конце

Dmitriy
22.09.2016
15:15:20
Как я понял, первый вариант норм, а второй где я юзаю .format() не годится, верно?

Zart
22.09.2016
15:15:22
это касается и хтмл тоже

Google
Igor
22.09.2016
15:15:28
cur.execute("INSERT INTO contacts (FIO, phone, born) VALUES(?, ?, ?)", info) один такой запрос cur.execute("UPDATE contacts SET phone={0} WHERE id={1}".format(phone_number, id)) другой такой запрос
> cur.execute("INSERT INTO contacts (FIO, phone, born) VALUES(?, ?, ?)", info) вот это правильно > cur.execute("UPDATE contacts SET phone={0} WHERE id={1}".format(phone_number, id)) вот так нельзя

Dmitriy
22.09.2016
15:15:36
Спасибо!

Viktor
22.09.2016
15:16:48
phone_number = "123 WHERE id=5; DROP TABLE contacts; UPDATE contacts SET phone=123"

Igor
22.09.2016
15:16:59
это называется SQL-инъекция фишка в том, что юзер может ввести, например, такой номер телефона: 0; DROP TABLE users;

и все, и пизда всем твоим пользователям

Igor
22.09.2016
15:17:57
ибо в итоге выполняемый запрос будет выглядеть так: UPDATE contacts SET phone=0; DROP TABLE users; WHERE id=123

Admin
ERROR: S client not available

Igor
22.09.2016
15:18:05
ну да, на WHERE id=123 он охуеет, конечно

зато первые два выполнятся

Dmitriy
22.09.2016
15:18:08
Хорошо, то есть использование функций модуля sqlite3 (вопросики, а потом пихаю таппл) позволяет мне защититься от инъекции?

Igor
22.09.2016
15:18:13
да

Dmitriy
22.09.2016
15:18:35
Или же мне самому ещё надо проводить проверку на вводимые данные?

Igor
22.09.2016
15:18:52
идеально и так, да согласись, будет странно, если ты позволишь сохранить номер телефона "сосите хуй"

Dmitriy
22.09.2016
15:19:56
справедливо :)

Igor
22.09.2016
15:20:26
Или же мне самому ещё надо проводить проверку на вводимые данные?
это уже зависит от тебя, но вообще лишний раз данные юзера хорошо проверить. с другой стороны, когда не разрешают ввести 16-символьный пароль со спецсимволами или емейл a@bc.de, хотя он полностью валидный, мне хочется таких пиздить большими резиновыми черными хуями

Dmitriy
22.09.2016
15:21:06
лоол)

Google
Viktor
22.09.2016
15:22:29
особенно когда делаешь спецсимволов кучу

А оно в ответ: ВАШ ПАРОЛЬ НЕБЕЗОПАСЕН В НЕМ ДОЛЖНА БЫТЬ ОДНА ЦИФРА

amureki
22.09.2016
15:24:14
А оно в ответ: ВАШ ПАРОЛЬ НЕБЕЗОПАСЕН В НЕМ ДОЛЖНА БЫТЬ ОДНА ЦИФРА
расскажите как правильно валидировать пароли?

Viktor
22.09.2016
15:24:37
Никак

Главное не пустой, и чтобы хэш функции можно было скормить

А дальше пусть только СОВЕТЫ, но никак не Обязательные условия

amureki
22.09.2016
15:25:17
это бьет по репутации компании, когда сливаются огромные базы паролей от аккаунтов вроде 123456 и иже с ними

Viktor
22.09.2016
15:25:35
Сделать красным шрифтом: У вас пароль небезопасный

amureki
22.09.2016
15:25:53
никто не читает красный шрифт, если форма сабмитится

Владимир
22.09.2016
15:25:54
главное хранить в открытом виде

Viktor
22.09.2016
15:26:01
И мааааленькую галочку внизу "я знаю что я делаю"

Владимир
22.09.2016
15:26:05
и никакой соли и хешей

Viktor
22.09.2016
15:26:15
Ок, тогда не сабмитить с первого раза

amureki
22.09.2016
15:26:16
главное хранить в открытом виде
можно хранить суперсекьюрно пароли 123456, а толку?

Владимир
22.09.2016
15:26:22
а то как потом взалывать то

Viktor
22.09.2016
15:26:28
Брутфорс же

amureki
22.09.2016
15:26:48
Viktor
22.09.2016
15:26:52
Ок, тогда не сабмитить с первого раза
И добавлять где-то скрытно возможность передать свой пароль

Владимир
22.09.2016
15:27:02
не, я про радужные таблицы и тому подобное

Страница 480 из 1885

Эта группа больше не существует Эта группа больше не существует