Hed*_*ide 5 python security eval web-applications
我只是想着一个想法,我想不出一种方法可以在后端解决这个问题,而不会出现令人生畏的安全问题.
假设我想让用户有机会通过网络服务创建简单的算法并在小型列表上测试这些算法,例如,range(0, 5)然后通过另一个Web服务,模板或电子邮件报告结果,这并不重要,这是评估打扰我.
使用python:
class Algorithm(whatever):
function = whatever.CharField(max_length=75)
Run Code Online (Sandbox Code Playgroud)
用户可能会输入以下内容:
'f(x)=x+(x/5)**0.75'
Run Code Online (Sandbox Code Playgroud)
当然我可以使用eval,剥离任何内置插件,除了"x"等字符串,但这仍然可能是不幸的做法.
我唯一能想到的就是将任何评估功能移到JavaScript前端.
eval()是邪恶的,在后端这样做是非常危险的。然而,它可以使用python 沙箱安全地完成。但如果沙箱在哪里失败,你就会被拥有。这不是一种非常“纵深防御”的方法。
更好的方法是评估客户端的有效负载...然而,这是跨站点脚本(XSS)。防止攻击者利用此问题的一种方法是在客户端设置一个事件处理程序,在按下按钮时评估表单。如果攻击者可以构建执行 JavaScript 的 GET 或 POST 请求,那么他就可以利用 XSS 漏洞。还要确保设置x-frame-options: deny为防止点击劫持。
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |