Криптографически проверенный классовой AST в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Криптографически проверенный классовой AST в Python

Сообщение Anonymous »

Это, вероятно, нишевой вопрос. Представьте себе, что у нас есть синтаксисное дерево, построенное рекурсивно, используя пользовательские классы Python, например ,::

Код: Выделить всё

class Sentence:
...

class And:
...

class Or:
...

class Not:
...

expr = And(
Sentence("It's sunny"),
Or(
Sentence("It's Raining"),
Not("We're having a picnic")
)
)
< /code>
Я хочу написать функцию рекурсивной проверки для проверки определенных свойств таких выражений во время выполнения. Например, это выражение фактически создается с использованием только фиксированного набора/подмножества этих классов, например, Возможно, это выражение не включает в себя не 
класс. Я хочу сделать это таким образом, чтобы, если я буду пройти, не надеянный экземпляр выражения , сгенерированный кодом Python, я не контролирую (например, рассылание замороженного объекта), результат валидации гарантированно является правильным (если проверка завершается и проходит).
Пример:

>>> expr =
>>> validate(expr)
ValidationError: `And` class failed cryptographic validation. Expression has been tampered with.
< /code>
Предположим, ради аргумента мы можем оценить нашу функцию валидации, чтобы предотвратить доступ к этому ненадежному коду или изменять определенные глобальные переменные /функции, например, Использование ограниченного типа, и в противном случае может гарантировать, что результат этой оценки будет строка или другого безопасного типа. Есть ли способ написать такую ​​функцию проверки? Если это слишком вовлечено, я бы рад за некоторые ссылки.


Подробнее здесь: https://stackoverflow.com/questions/796 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Получение источника AST Clang's AST
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Передача информации между различными ветвями классовой иерархии в C ++?
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Инициализация классовой массивы в классе шаблонов
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Инициализация классовой массивы в классе шаблонов
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Частичный класс не совпадает с автоматической классовой частью
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»