Лыцарь пичальнава образа - про универсальность [entries|archive|friends|userinfo]
silly_sad

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

про универсальность [Feb. 28th, 2013|02:26 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
обычно говорят: "я шо тебе должен на каждый чих писать хранимку?! мне
нужна система правил, а не перечисление всех особых случаев!"

ну так вот разницы нет.

потому что при чуть более замысловатом случае чем "эту таблицу никому
читать нельзя", точнее говоря, как тока у тебя появляются СОСТОЯНИЯ
хранимых в базе объектов, и с изменением этих состояний меняются права
доступа, так сразу же упомянутая выше разница подходов изчезает.

потому что ты ПОЛЮБОМУ ОБЯЗАН все пользовательские сценарии щательно
изучить и описать.
ты как минимум должен проверить "а если пользователь сделает так-то,
что ему система позволит?"
и проверить ты должен ВСЕ ВОЗМОЖНЫЕ попытки юзера.

ну так вот между "проверить" и "в лоб закодировать" разницы никакой на самом
деле нет. и даже наоборот:
ты когда пишешь "общее правило" ты пишешь правило которое даст нужное
тебе значение в наперёд заданных точках.
тоесть ты тот же самый сценарий пользователя кодируешь по тем же самым
точкам, но при этом кодируешь КОСВЕННО, пытаясь найти более общее
правило (чем для заданной оболасти определения!)
и при этом это правило НИКОГДА не будет работать за пределами этой
области, а если будет, то это дыра которую надо затыкать.
а если и не дыра. то посовести всё равно надо проверять, иначе это
несекурно.

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

вопросы?
LinkLeave a comment

Comments:
[User Picture]
From:[info]tzirechnoy
Date:February 28th, 2013 - 04:55 pm
(Link)
Именно поэтому безопасные системы не могут быть развивающимися.