我目前正试图与串口设备'谈话',我知道我要发送什么,但不知道它意味着什么。我想通过将每个命令作为函数调用来使用反复试验并等待响应。每个命令都定义为
def Testcommand1():
if serial.isOpen() == True:
serial.write(b'\x1d\x10\xff')
print('Testcommand1 to do some specific stuff sent, awaiting response.')
else:
print('ERROR: Serial port is closed')
以下几行(我不在此处)告诉我的电脑听取回复。我正在寻找在命令之间进行更改的最简单方法,以便能够尽可能多地进行通话并设置命令树。我想通过键盘输入,使用
来做到这一点输入(“输入功能/命令名称:”)
然而,在我试图阅读的大部分页面上,每个人都说“是的,这是可能的,但存在安全风险,最好避免它!”。这一切都很好,但我想知道:为什么这是一个风险?我认为通过使用
简单地限制和控制可能的输入可以最大限度地降低风险来自命令文件导入功能
以精确的方式?
答案 0 :(得分:0)
您应该验证该命令是否是您要允许的特定命令列表中的命令。当您eval
用户传入的内容时,就会出现安全风险
当然,如果允许的命令可以执行对您的系统有害的事情,那么这也是一种风险。