Существует код RBAC, написанный в коде. Но это не работает, и есть проблема с безопасностью.
Let R = {own, read, write, exec}
Это набор правил.
Итак, где-то на 3-й и 4-й строках есть проблемы. Не могли бы вы помочь мне разобраться?
command create(s, o)
create object o
enter own into A[s, o]
end
command assign own right(s, o, r)
if own in A[s, o]
then enter r into A[s, o]
end
command assign right(s1, s2, o, r)
if own in A[s1, o] and
r ≠ write
then enter r into A[s2, o]
end
command transfer right(s1, s2, o, r)
if r in A[s1, o] and
own not in A[s1, o]
then enter r into A[s2, o]
delete r into A[s1, o]
end
Я ожидаю, что это сработает и будет на 100% безопасным. Где проблема в этом? Какую линию мне нужно исправить и почему?