Программирование на Go и Python становится все более популярным, и разработчики по всему миру активно используют эти языки для создания приложений и сервисов. Однако, при написании кода нет гарантии отсутствия уязвимостей и слабых мест, которые могут стать точкой входа для злоумышленников. В этой статье мы рассмотрим методы анализа кода на Go и Pyt…
Этого человека, наверное, не оклеветал плохим словом только тот, кто не сидит в интернете вообще. Но знал ли кто-то, как и сколько зарабатывает Маркарянчик благодаря хейту в свою сторону?
Сервис продолжит собирать данные с устройств и будет давать индивидуальные рекомендации по здоровью, узнало агентство.
История из жизни. Так случилось, что я отправился в Дубай искать инвесторов, и клиентов, естественно, было много ожиданий. Что же такое Дубай? Яхты, небоскребы, ламборгини...
Мероприятие стало «кульминацией почти двух месяцев постоянных демонстраций».
Но «классический поиск» всё ещё может быть хорош — например, если нужно найти конкретную страницу, считает старший обозреватель The Wall Street Journal Джоанна Стёрн.
Ходят легенды, что работники склада ВБ используют рулетки, которые начинаются с 5 см. Как думаете, правда или вымысел? Но сегодня не про легенды. Я придумал бота, который поможет сразу узнать за что селлеры получают штраф и какие действия предпринять, чтобы урегулировать конфликт с маркетплесом.
Наша сегодняшняя героиня — молодая феминистка, только что закончившая ВУЗ по специальности филолог, решает устроиться воспитательницей в детский сад за 20 000 рублей в месяц. Как ей удалось попасть на работу в крупнейшие IT-компании и построить там карьеру, а потом всё бросить и уехать в другую страну — читай прямо сейчас!
Маркетплейсы, кажется, начинают сдавать позиции, как некогда модные пейджеры в эпоху первых мобильников. Селлеры, словно опытные шахматисты, делают ход конём, переобуваясь в сторону собственных интернет-магазинов. Почему?
Кто разогнал стоимость новостроек до космоса? Сами застройщики со своими рассрочками и разогнали. А вот тупики в переговорах обваливают фондовый рынок. Рублю на стероидах всё нипочём, а биткоин продолжает чилить. Предлагаю почилить и вам с чашечкой кофе за чтением вашего любимого дайджеста.
Знаете, какой мой главный ночной кошмар? Сначала временно согласиться на что-то, что снижает уровень нормы. А потом сдаться. Деградировать настолько, что становится “ок” то, что вы не допустили бы еще несколько месяцев/лет назад.
Соло-разработка звучит красиво. Свобода, фокус, никакой бюрократии. Один человек, один продукт, полный контроль.
Подскажите, из чего следует, что user_id в вашем примере, это пользовательский ввод?
Извините за путаницу. В примере на Python, user_id не является явным пользовательским вводом, так как он передается в функцию как аргумент. Ошибка в этом коде скрыта в том, что он создает SQL-запрос, используя строковую конкатенацию, а не параметризованный запрос.
Чтобы исправить это и избежать потенциальной SQL-инъекции, следует использовать параметризованные запросы. Вот исправленный вариант:
import sqlite3
def get_user_data(user_id):
conn = sqlite3.connect("users.db")
cursor = conn.cursor()
query = "SELECT * FROM users WHERE id = ?"
cursor.execute(query, (user_id,))
user_data = cursor.fetchone()
conn.close()
return user_data
Теперь user_id передается как параметр запроса, и это делает код более безопасным и защищенным от SQL-инъекций.