LINUX.ORG.RU

[python][sage][решето] Аналог `yes` для питона

 ,


0

1
def foo():
    while True:
        yield 0

list(foo())

PROFIT. Только что подобным способом случайно уронил http://sagenb.org (там достаточно было list((1, 2, ..)) ). Да, как баг это рассматривать нельзя, всего лишь возможность выстрелить себе в ногу. Но по сути это же самая настоящая дыра в безопасности, таким образом можно уронить любой сервер, на котором есть свободный доступ к питоноконсоли. Почему такая банальная и очевидная вещь вообще существует? Неужели исправить никак нельзя?

★★★★★

форк-бомбу можно хоть на чем написать, или даже тупой бесконечный цикл, который весь проц сожрет. В чем новость?

xorik ★★★★★
()

range(9999999999999999)

13**666666666666

Работает также.

PolarFox ★★★★★
()

> Но по сути это же самая настоящая дыра в безопасности, таким образом можно уронить любой сервер, на котором есть свободный доступ к питоноконсоли.

ССЗБ тот, кто даёт доступ к питоноконсоли всем подряд. Ибо через неё можно сделать более интересные вещи. Например, подсадить какого-нибудь спамобота.

slav ★★
()

Это даже не форк бомба:

>>> def foo():
...     while True:
...         yield 0
...
>>> list(foo())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError
>>> 

И да, будь мужиком, настрой лимитсы.

redixin ★★★★
()

В общем ладно, всем спасибо. limits в принципе проблему решает.

pevzi ★★★★★
() автор топика

> таким образом можно уронить любой сервер, на котором есть свободный доступ к питоноконсоли.

Если ты дал свободный доступ к питонсонсоли и никак его не ограничил, считай что ты отдал ключи от квартиры где деньги лежат.)))

Ни понимаю, что тут неожиданного.

anonymous
()
Ответ на: комментарий от anonymous

> Ни понимаю, что тут неожиданного.

Ожидалось что скрипт вылетит с ошибкой, а вместо этого весь сервер ушел в своп.

redixin ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.