All streams
Search
Write a publication
Pull to refresh
40
0
Александр Патраков @AEP

Пользователь

Send message
«И даже DNS-сервера, которые не поддерживают рекурсию, обязаны отвечать списком корневых серверов» — с этим не согласен. Сейчас рекомендация — вообще никак не отвечать на запросы за пределами своей зоны, чтобы не быть инструментом для amplification-атаки. Источник: www.dns-oarc.net/oarc/articles/upward-referrals-considered-harmful.
Не совсем так. Директор действительно идеальный, а заказчиков просто нет. Есть клиенты и пользователи.
Риски, похожие на описанные в стаье, возникают только при продаже заказчикам шкуры неубитого медведя. Компания, в которой я работаю, так не делает, а продает только готовые решения, поэтому и риски совсем другие (в основном — увольнение носителей какого-либо знания до того, как они это знание передадут другому). Речь из похожего может идти только о срыве только внутренних сроков, и в таком срыве всегда виноват тот, кто изначально заложил нереалистичный срок. Поэтому проголосовал «Знаем, но не применяем».
Еще один плюс предложенной конструкции: если таки при завинчивании шестирганник сорвет, то уже есть готовое коническое углубление для обычного экстрактора. Ничего рассверливать не нужно.
А теперь получен. CVE-2013-7324
А вот камень от меня лично в огород линуксоидам на Dell'ах.

Пользователи Windows, прежде чем спалить динамики, должны были самостоятельно выкрутить громкость на максимум. В Linux даже этого не требуется. Эта веб-страница, если ее просматривать через любой браузер, основанный на Webkit-GTK или Qt-Webkit (т.е., например, Midori, Epiphany или Konqueror), при настройках PulseAudio по умолчанию, поставит громкость на максимум и, более того, не даст ее убавить штатными средствами без закрытия браузера.

Так как в Ubuntu настройки PulseAudio (flat-volumes = no) отличаются от таковых по умолчанию (flat-volumes = yes), там это не воспроизводится.

CVE ID уже запрошен, но не получен.
Конкретно в этом случае — руководитель с самого начала занес в тикет нумерованный список.

1. Раз проблема

2. Два проблема

3. Три проблема

И тикет был в итоге разбит ровно по пунктам 1, 2, 3.
Наш багтрекер не поддерживает вложенные задачи. Однако, руководство не умеет разбивать задачи на этапе формулировки (например, сваливает совершенно несвязанные проблемы из нескольких жалоб пользователей в одну задачу и обзывает ее «проблемы, найденные пользователями» и ставит milestone на следующий релиз). Тактика «закрывать абсолютно любую задачу, содержащую список, как невалидную по формальной причине необходимости разбить» только привела к конфликтам. Не знаю, помогли бы в такой ситуации подзадачи или нет, но, думаю, не попробовав, не узнаю.
Прошу прощения за опечатку. Ошибкой является вызов mysql_store_result()
У меня на похожей задаче (выгрузка статистики пользовательских DNS-запросов в CSV), когда она возникла, была очень жесткая позиция: только потоковая обработка. Никаких переменных, хранящих весь результат запроса (потенциально сотни тысяч строк). Любая попытка сложить все в память (в том числе любой вызов C-функции mysql_fetch_result()) автоматически является багом. Вот рекомендации, как этого бага избежать.

C: используйте mysql_use_result()

PHP: выполняйте небуферизованные запросы с флагом MYSQLI_USE_RESULT, см. www.php.net/manual/en/mysqlinfo.concepts.buffering.php

Python: есть класс MySQLdb.cursors.SSCursor.

Во всех случаях перед формированием очередного запроса необходимо полностью прочитать результат предыдущего.

К сожалению, при использовании с Django, SSCursor немедленно делает приложение совершенно не поддающимся отладке, и вот почему. Если при обработке очередной (не последней) строки view выбросит исключение, то вызовется стандартный обработчик исключений. Он постарается откатить транзакцию и отправить traceback куда надо. Только вот попытка откатить транзакцию проваливается: выбрасывается исключение ProgrammingError, так как SQL-запрос ROLLBACK пришел до того, как все строки прочитаны. В итоге первоначальное исключение теряется, а в лог и в почту попадает «безволосая черная дыра» в виде ProgrammingError. Собственно, я считаю это багом в Django: code.djangoproject.com/ticket/21777

Вот костыль для тех случаев, когда патчить Django запрещено.

# Workaround against https://code.djangoproject.com/ticket/21777
# In short: gets meaningful tracebacks in apache log even if
# SSCursor is not completely consumed by the application when
# an exception occurs

from django.core.signals import got_request_exception, request_finished
from MySQLdb import DatabaseError
from MySQLdb.cursors import SSCursor
from threading import local

store = local()


class SafeSSCursor(SSCursor):
    def execute(self, *args, **kwargs):
        if not hasattr(store, 'cursors'):
            store.cursors = []
        if not self in store.cursors:
            store.cursors.append(self)
        return super(SafeSSCursor, self).execute(*args, **kwargs)


def expunge_cursors(**kwargs):
    store.cursors = []


def consume_cursors(**kwargs):
    if not hasattr(store, 'cursors'):
        return
    for cursor in store.cursors:
        try:
            for item in cursor:
                pass
        except DatabaseError:
            pass
    store.cursors = []


request_finished.connect(expunge_cursors)
got_request_exception.connect(consume_cursors)

Самое противное, что это верно и для обобщенного решения.
Проголосовал за «другой вариант».

Считаю, что навязывать какой-либо конкретный вариант неправильно, должна быть конкуренция как с участием частных компаний, так и государственных, так и должен остаться доступен вариант «нефильтрованный интернет + надзор глазами родителей». Контроль со стороны государства здесь недопустим, а то получим ситуацию «формально поставщиков много, но от прокурорских проверок спасает только этот».
Недовольных будет больше, чем в данном случае


Количество недовольных не имеет значения, пока они не могут ни на что повлиять.
К слову, IPv6 в Ростелекоме в Екатеринбурге уже три недели как есть. Для домашних пользователей.
Собственно, так оно и делается — пропихивается одно конкретное решение от NetPolice. Можете считать это распилом, можете не считать — дело ваше. У меня мнения нет.
Белые списки — не выход. Мне, в силу профессиональной деятельности, известно несколько случаев, когда за их использование прокурорская проверка вынесла предписание по типу «цензура у нас запрещена».
Обзор как-то запоздал. Этот трансформер доступен в продаже уже более года:

Date first available at Amazon.com: August 6, 2012
Провалил испытательный срок
Если я решу перейти от nVidia на картру AMD с использованием опенсорсных драйверов, то какие проблемы остаются ещё нерешенными?


В опенсорсных драйверах не работает передача звука 5.1 по HDMI. Частично решается костылями вроде моего dcaenc.
Видеокарта встроенная в процессор. Собственно, в Linux использовать что-либо, отличное от Intel, не имеет смысла (иначе разработчики игнорируют все багрепорты).

Поиск нового блока питания уже идет. В случае неуспеха заменю процессор на Intel Core i7 4770T.

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity