
Олег
21.09.2018
15:38:32
?

?
21.09.2018
15:38:55

Олег
21.09.2018
15:39:15

?
21.09.2018
15:39:15
shit

Google

?
21.09.2018
15:39:19
2017

Олег
21.09.2018
15:39:24
уот уот

?
21.09.2018
15:41:36
уот уот
eee https://github.com/deepfence/socketio-client-deepfence

Олег
21.09.2018
15:43:40
то решим вопрос в лс)


Kallibr44
21.09.2018
15:45:01
народ подскажите, я взломал как-то время?
def new_bet_amount(message,is_admin):
amount = message.text
print(amount)
conn = sqlite3.connect("main.sqlite")
cursor = conn.cursor()
sql = "UPDATE users SET bet_amount={1} WHERE id={0}".format(message.from_user.id,amount)
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
bot.send_message(message.chat.id, "Сумма ставки успешно установлена!",reply_markup=menu.game_menu(is_admin))
есть такой код. При отработке он должен перезаписать в бд значение ставки и вывести в конце меню для игры (игровой бот для т елеги). НО.
у меня вылезает ошибка cursor.execute(sql)
sqlite3.OperationalError: near "ставки": syntax error и это слово 'ставки' берётся из последнего сообщения бота!
как это возможно?!
если excecute в базу происходит раньше отправки сообщения??
да и само сообщение нигде не записывается кроме как самой телеги в сообщения

Andrey
21.09.2018
15:49:36
А если указать amount равный " DROP TABLE users ?

Google

Kallibr44
21.09.2018
15:49:59
получается по логике кода, он перескакивает на строчки ниже и как-то сам берёт оттуда строку и принимает её за занчение переменной, которая объявлена в начале фукнции

?
21.09.2018
15:50:19
?

Kallibr44
21.09.2018
15:50:26
ты еще скажи что фиксится sudo rm -rf /*
ну реально, как это вообще возможно? почему так происходит??
за 3 года с питоном впервые с таким сталкиваюсь

Andrey
21.09.2018
15:51:27
я не настолько туп в SQL)
Ну вообще кажется, что это вполне валидная атака на этот код. Используйте prepared statements какие-нибудь

Kallibr44
21.09.2018
15:51:57
кстати
еще один интересный факт: если заметить, то сообщение пользователю отправляется ПОСЛЕ ЗАКРЫТИЯ СОЕДИНЕНИЯ С ТАБЛИЦЕЙ
ля, вызовите в дата-центр экзорциста для моего сервака
т.е. он пытается записать в базу значение переменной, со значением текста в последней строке при закрытом соединении с базой и его напрягает только ошибка в синтаксисе
ШТООООООООООООООО

Олег
21.09.2018
15:56:28

?
21.09.2018
15:57:42

Олег
21.09.2018
15:58:05

Tishka17
21.09.2018
15:58:21

Kallibr44
21.09.2018
15:58:35
да всё разобрался)
это чисто был косяк в библиотеке для работы с телега-ботом
перенёс нахождение переменной is_admin внутрь функции и всё ок стало

Tishka17
21.09.2018
15:59:15
Оо

Google

?
21.09.2018
15:59:44
тут начинается https://youtu.be/PZkZ60V6MIs

Yevhen
21.09.2018
16:00:56
Кто тут кричит?

Ivan
21.09.2018
16:01:27
/rmkb@remkeybot

?? Eugene
21.09.2018
16:52:30
какие-то умные девушки про питон вещают

Kallibr44
21.09.2018
16:58:33
народ
кто знает как работает random.randint() модуль?
как думаете норм мой рандомизатор?)
def get_number():
sum = 0
for i in range(0,10):
strin = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(15))
hash = hashlib.sha256(bytes(strin, encoding='utf-8')).hexdigest()
print(hash)
h1 = re.findall(r'\d+', str(hash))
for j in h1:
sum = int(sum) + int(j)
if sum % 2 == 0:
return 1
else:
return 0

Олег
21.09.2018
17:02:13

Kallibr44
21.09.2018
17:02:50
ну
я не подумал

Kallibr44
21.09.2018
17:03:01
поэтому накатал свой рандомизатор :D

?? Eugene
21.09.2018
17:07:59

Kallibr44
21.09.2018
17:08:12
ну то, что он работает
и работает получше дефолдтного рандомизатора питона)

?? Eugene
21.09.2018
17:08:31

Admin
ERROR: S client not available

Kallibr44
21.09.2018
17:08:34
вопрос конечно во времени исполнения
это как выражается?
при random.randint(0,1) он выдает 0 или 1 длинной в секунду (пока идет например 37 секунда ответ будет только 1)

Google

Kallibr44
21.09.2018
17:10:04
а у меня цикл на 10 проходов, где в каждом проходе генерируется строка из чисел+символов длинной 15 после берётся sha256 хэщ строки и из хэша вытаскиваются все числа и складываются. После 10 проходов проверка сумма четная или нет

?? Eugene
21.09.2018
17:10:35
так какая разница если и то и другое псевдорандом?

Kallibr44
21.09.2018
17:10:55
дефолтный random завязан на времени
при быстрых скоростях является ли это рандомом?

Valery
21.09.2018
17:12:04

?? Eugene
21.09.2018
17:12:08
тут настало время определить понятие "рандом"

Kallibr44
21.09.2018
17:12:15
da

Проксимов
21.09.2018
17:17:20

Tishka17
21.09.2018
17:29:32

Denis
21.09.2018
17:32:14

Pavel
21.09.2018
17:57:33
в 11-ю секунду выпало 47 единиц и 53 нуля

Tishka17
21.09.2018
18:00:01
Эм. Чёт маленькая выборка
Или я не понял, что за секунды

?
21.09.2018
18:01:17
Подскажите чат по JS

Nikita
21.09.2018
18:03:13
@JSlang

Николай
21.09.2018
18:03:29
Валерий, гуглить надо уметь

Nikita
21.09.2018
18:03:33
@jsrules
@js_noobs_ru

Pavel
21.09.2018
18:04:05

Google

Tishka17
21.09.2018
18:04:18
Оо
Жесть какая

Dmitry
21.09.2018
18:05:23
Я отмечу что это не только в питоне

Pavel
21.09.2018
18:05:48
А у меня почему меняет?