baseimage-tutorial-framework/src/demo/sql_injection_fsm.py

27 lines
1004 B
Python

from tfw.fsm_base import FSMBase
class SQLInjectionFSM(FSMBase):
states = [
'start',
'stripped_code',
'sql',
'commented_code',
'sql_with_substitutions',
'sql_output',
'end',
]
transitions = [
{'trigger': 'anchor_webide', 'source': '*', 'dest': 'stripped_code'}, # TODO: delet this
{'trigger': 'anchor_webide', 'source': 'start', 'dest': 'stripped_code'},
{'trigger': 'anchor_login', 'source': 'stripped_code', 'dest': 'sql'},
{'trigger': 'anchor_logger', 'source': 'sql', 'dest': 'commented_code'},
{'trigger': 'anchor_webide', 'source': 'commented_code', 'dest': 'sql_with_substitutions'},
{'trigger': 'anchor_logger', 'source': 'sql_with_substitutions', 'dest': 'sql_output'},
{'trigger': 'anchor_logger', 'source': 'sql_output', 'dest': 'end'},
{'trigger': 'reset', 'source': 'end', 'dest': 'start'},
]
def __init__(self):
super().__init__('start')