Pull to refresh
44
0
Всеволод Новиков @nnseva

User

Send message

Написано на "давай-давай" видимо...

Ну, это не совсем так, кое-что есть. Например, голосование с возможностью отмены и переголосования. Это позволит человеку, находящемуся под давлением, сделать вид, что он проголосовал, после чего, когда опасность отступила, отменить и изменить свой голос.

я же специально прямую ссылку на ветку поставил.
Active branches
voting2020
Updated 5 days ago by a-borodenkov

ну вот по мере сил и понимания, сделали опенсорс, если я правильно трактую действия разработчиков. Дальше — наша очередь, разбираться что они там наваяли

да, регистрация — одно из самых уязвимых мест

по ссылке — ветка voting2020 которая видимо, и будет использована нынче

спасибо, очень полезная информация!

пока я так понимаю, что предлагают поверить на слово :) Хотя как мне кажется, есть возможность надавить

Django-Guardian ориентируется на специализированную модель объекта прав, явным образом связывающую с помощью Generic PK пользователя с каждым объектом, для которого нужно установить права доступа.


Django-Access определяет функциональные права доступа в соответствие с правилами, устанавливающими связь между объектами для принятия решения о том, какие действия может произвести данный пользователь с данным объектом.


Например, в рассмотренном примере, в случае Django-Guardian, чтобы установить, что пользователь 'test' имеет право изменять объект Vehicle '1234' принадлежащий данному проекту, нужно будет создать объект UserObjectPermission, связывающий 'test' с 1234'. В то же время для Django-Access с определенными в примере правилами доступа, сам факт того, что 'test' и '1234' принадлежат одному и тому же проекту, уже достаточен для того, чтобы определить порядок доступа.


Таким образом, функциональные связи, уже существующие в проекте, становятся достаточны (или почти достаточны) для того, чтобы установить порядок доступа, в то время как Django-Guardian требует создания явной связки между пользователем и объектом модели в специальной таблице.


В этом смысле, Django-Access больше похож на пакет Django Permissions, но у последнего есть другие проблемы, которые решены в Django-Access.

1) Не совсем понимаю, как здесь работал бы Generic FK. Generic FK не то чтобы медленнее, он просто неудобный, поэтому я стараюсь пользоваться им как можно реже. Здесь ведь и Generic FK в принципе, не нужен, достаточно общего абстрактного предка, правда там механизм объявления related_name какой-то недоделанный. Можно было бы сделать предка неабстрактным, но практика показывает что вот такое решение как раз действительно медленнее: многие запросы в развитом приложении будут пересекать границы JOIN между предком и наследником. Поскольку это туториал, хотелось обойтись без всех этих сложностей, проще всего было сделать ссылку в каждом классе, который ее требовал.
2) Можно и так, несущественно. Фокус с `INSTALLED_APPS` уже отработан на практике, а с ready hook надо будет прикинуть, может быть даже сделать автоматическую подгрузку правил.
… при этом все удобство заканчивается тогда, когда пользователь забывает пресловутый «сильный пароль» от менеджера паролей, а вся безопасность — когда он же (во избежание вышеописанного) записывает злосчастный «сильный пароль» от менеджера паролей на подставке для монитора…

Попытки разрешить противоречие между безопасностью и удобством с помощью дополнительных инструментов имхо приводит скорее не к поставленной цели, а к возникновению (или усилению) новых, еще не исследованных рисков, которые не заметны на фоне новизны применяемого инструмента.

Так например, FaceID и системы с отпечатком пальца оказываются подвержены подделке с помощью моделирования, менеджер паролей может быть взломан или подменен, а мастер-пароль — забыт или незаметно скомпрометирован, сохраненный локально ключ доступа — украден вирусом, или скачан при временном доступе к физическому хосту со стороны злоумышленника.

Таким образом, кажущаяся удобной защита от одних рисков приводит к возникновению (или усилению) других. Похоже, игра в этом случае таки остается с нулевой суммой, лишь возрастает количество неизвестных.
Было бы интересно взглянуть на решение с js-кукой. Исходники прототипа на житхабе, пулл реквесты приветствуются
Плагин уж если делать, так сразу полноценный — с альтернативным защищенным распределенным децентрализованным DNS и распределенной сетью доставки, чтобы вообще больше никогда не зависеть от централизованных сервисов.

Но плагин ведь еще поставить надо. Много ли людей поставили себе friGate?

А описанное решение — для тех, кто поленится не то чтобы плагин поставить, а даже поинтересоваться, что это вдруг сайт перестал отвечать…
Я же написал — штатными. Насчет js — не очень хорошо, когда мидлварь вмешивается в страницу, это и существенно затратнее по ресурсам. Но да, я думал о таком варианте, в принципе, можно даже попробовать избежать вмешательства в страницу, плюс один редирект.

Без куки не получится закрепить домен за агентом, что приведет к быстрому перебору оператором блокировок всего пула доменов второго уровня.
К сожалению, куки имеют ограничение, приводящее к невозможности обмена куками между разными доменами второго уровня. Обмен куками между доменами третьего уровня — возможен.
Не имея возможности обмена куками, мы не сможем (штатными средствами) распознать повторный вход агента оператора блокировок на альтернативный домен и правильным образом редиректить его на его личный URL. Остается только использовать случвйный выбор домена второго уровня, что вероятно, приведет к быстрому исчерпанию пула доменов второго уровня.
друг мой, интернет уже сломали, а вы не заметили :/
интересный способ, надо подумать, можно ли что-то с этим сделать интересное…
открою секрет полишинеля, реестр блокировок имеет ограниченную длину, до которой он уже почти добрался, поэтому его недавно почистили аж вдвое. Адовое количество блокируемых ссылок очень быстро приведет к переполнению реестра.

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity