@ru_python

Страница 8754 из 9768
Pavel
17.04.2019
09:50:11
@deluxoft кстати, работу нашел?
новичков не берут же никуда

Владимир
17.04.2019
09:51:15
Zombibober
17.04.2019
09:54:22
Привет. Как можно заменить символ в строке по индексу. Вот пример: sql[-1] = ")" Если нужен полный контект то вот: sql = f"""CREATE TABLE {table.get_classname()}(""" for name, colums_type in colums.items(): sql += f"""{name} {colums_type},""" sql[-1] = ")"

Google
Alex
17.04.2019
09:55:11
но... что за херню ты делаешь?

Zombibober
17.04.2019
09:55:20
А можно пример, для полного понимания

Создаю таблицу

Alex
17.04.2019
09:55:45
форматные строки с вызовами метода - отличный способ abuse f-strings

Tishka17
17.04.2019
09:56:30
ты там свой ORM что ли пилишь?

Alex
17.04.2019
09:56:36
нахрен извращаться так?

Zombibober
17.04.2019
09:56:44
АХаха, угу это лаба

Tishka17
17.04.2019
09:56:55
писать ORM не научившись работать со строками - ух

Zombibober
17.04.2019
09:57:04
Я тупой и ничего не знаю. Python бесит меня

Google
Tigran
17.04.2019
09:57:18
не, ну это бан

Alex
17.04.2019
09:57:39
Zombibober
17.04.2019
09:58:35
Чувак, мне наплевать на бан, python после java и С++ выглядит очень странным братом-аутистом.Constantine так я и спрашиваю чтобы научится

Марк
17.04.2019
09:58:45
Нет
Че, серьезно? Вроде месяц прошел ужо

Alex
17.04.2019
09:59:34
Чувак, мне наплевать на бан, python после java и С++ выглядит очень странным братом-аутистом.Constantine так я и спрашиваю чтобы научится
colums = [] for name, colums_type in colums.items(): columns.append(f'{name} {colums_type}') sql = "CREATE TABLE {} ({})".format(table.get_classname(), ','.join(columns))

если уж так хочется извращаться.

Zombibober
17.04.2019
10:00:22
@cutwater Спасибо, теперь я понял как должно быть

Alex
17.04.2019
10:00:28
оно так быть не должно

Zombibober
17.04.2019
10:00:44
А как должно быть?

Worlak
17.04.2019
10:00:47
если уж так хочется извращаться.
Пихать через ф очень опасно в запрос, лучше сере обработчик

Nikolay
17.04.2019
10:01:00
Ф

Worlak
17.04.2019
10:01:24
что ты несешь?
Нельзя закидывать так данные в скл запрос

что ты несешь?
Это очень опасно

Google
Alex
17.04.2019
10:01:54
Нельзя закидывать так данные в скл запрос
нельзя закидывать данные из *непроверенного* источника...

Worlak
17.04.2019
10:02:09
Alex
17.04.2019
10:02:15
Worlak
17.04.2019
10:02:23
Zombibober
17.04.2019
10:02:35
@worlak2 Это не select, а create table.

Alex
17.04.2019
10:02:37
Именно
пожалуйста не неси хуйни, ладно?

Worlak
17.04.2019
10:02:55
пожалуйста не неси хуйни, ладно?
Вы хотите поспорить насчёт овасп топ?

Или скл инъекций ?

Zombibober
17.04.2019
10:03:39
На селекте используется placeholder

Костя
17.04.2019
10:03:39
Или скл инъекций ?
я бы послушал

спорьте

Worlak
17.04.2019
10:05:23
Изначально это является плохим ходом, потому что данные туда могут попасть разные и при недостаточной обработке будут не лучшие результаты из-за такой *хуйни* которую вы делаете

on my way to Uganda
17.04.2019
10:06:59
спорьте
https://memepedia.ru/wp-content/uploads/2018/01/j8ufbixp.jpeg

Костя
17.04.2019
10:07:09
Alex
17.04.2019
10:10:00
Вы хотите поспорить насчёт овасп топ?
нет, я хочу сказать что ты идиот и не понимаешь разницы между unsafe данными и данными, полученными на основе твоего же кода (как-то структура твоего же класса) и таки если мы говорим про аля ORM и построение запроса, то ты ну никак не уйдешь от генерации запроса строковыми операциями.

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

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

Worlak
17.04.2019
10:13:03
нет, я хочу сказать что ты идиот и не понимаешь разницы между unsafe данными и данными, полученными на основе твоего же кода (как-то структура твоего же класса) и таки если мы говорим про аля ORM и построение запроса, то ты ну никак не уйдешь от генерации запроса строковыми операциями.
Я хотел отметить что данный подход является не самым подходящем, так как если вы работаете с командой и кто-то недобросовестный передаст туда что-то, то выйдет не самое подходящее в связи с чем подобные данные необходимо было бы предварительно обработать, дабы избежать всяческих ошибок. Меня обеспокоило то, что вы 100 процентов доверяете тому что написано, не предусматривая что с этим кто-то может еще и работать

Google
Tishka17
17.04.2019
10:13:23
ну передаст, это вылезет в тестах

Worlak
17.04.2019
10:13:28
а по твоему ORM работают не так?
так, но я предполагаю там минимальные обработки присутствуют

Tishka17
17.04.2019
10:13:36
вообще конечно имено колонок надо нормализовать, да

Tigran
17.04.2019
10:13:40
даже твой код?
иногда и из кода лучше не надо несекьюрно инъектить, сегодня доверенный, а завтра вызов твоего метода кто-нибудь к своему эндпоинту прикрутил

Tishka17
17.04.2019
10:14:03
но от формата никуда не денешься

Tigran
17.04.2019
10:14:20
ну ясное дело

Alex
17.04.2019
10:14:25
об этом и речь

Tigran
17.04.2019
10:14:34
просто нужно всегда типобезопасный формат делать со всеми эскейпами

или о чём срач?

Alex
17.04.2019
10:15:04
срачь об безапеляционном заявлении "никогда не используйте форматные строки для построения SQL"

Nikolay
17.04.2019
10:15:24
F

Tishka17
17.04.2019
10:15:26
вообще, create table надо просто руками писать, а не долбить генерацию

Worlak
17.04.2019
10:15:26
но от формата никуда не денешься
моя ошибка что сказал про формат не рассмотрев до конца запрос, мельком пока листал. Показалось что это селект или како либо инсерт. Поэтому сделал замечание, что такие вещи в формат не стоит пихать

Tigran
17.04.2019
10:15:32
ну, без слоя эскейпинга и правда не надо использовать

Tigran
17.04.2019
10:16:00
я думаю, вы к словам придираетесь, короч

Tishka17
17.04.2019
10:17:11
вообще я склонен согласиться - нефиг юзать формат для SQL.

Google
Alex
17.04.2019
10:21:39
вообще я склонен согласиться - нефиг юзать формат для SQL.
тут есть нюансы, для новичков - да это табу. но ты никуда не денешься от формата в том или ином виде, например если тебе нужно собрать динамический запрос руками с идентификатормами получаемыми программно. и если, к примеру, psycopg2 тебе предоставляет безопасный query builder, который по факту тот же формат на стероидах, то другие движки - нет

если ты берешь те же данные из константы рядом, я не вижу проблемы использовать формат.

Alex
17.04.2019
10:23:33
ты в первую очередь должен понимать откуда данные приходят.

Worlak
17.04.2019
10:23:55
если ты берешь те же данные из константы рядом, я не вижу проблемы использовать формат.
я думаю ты хочешь донести мысль что можно пихать если правильно обработать, ведь так и происходит в том же psycopg2 при передаче. Я считаю что ты тут прав и так и нужно делать.

Alex
17.04.2019
10:24:20
и если у тебя программист-зловред в команде засунул SQL-inj намеренно, то ты ну никак от этого не защитишься, кроме код-ревью и тестов.

я думаю ты хочешь донести мысль что можно пихать если правильно обработать, ведь так и происходит в том же psycopg2 при передаче. Я считаю что ты тут прав и так и нужно делать.
да, или если ты к примеру запрос по кусам собираешь. есть разница между данными, которые ты контролируешь и которые нет.

сорян, за грубость в отношении безапеляционных заявлений.

Worlak
17.04.2019
10:26:04
сорян, за грубость в отношении безапеляционных заявлений.
Рад что мы пришли к общему выводу, просто поняли неправильно друг друга

brestows
17.04.2019
10:26:55
Подскажите, а нормальная ли практика вьюхи которые должны быть закрыть паролем наследовать от LoginRequiredMixin ?

или есть более адекватное решение

Tishka17
17.04.2019
10:27:31
я ж предлагал мидлварю

или не тебе?

brestows
17.04.2019
10:27:38
Django

я просто читаю

Страница 8754 из 9768