27 lines
1004 B
Python
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')
|