gpt4 book ai didi

python - 评估来自 'untrusted' 用户的算法

转载 作者:太空狗 更新时间:2023-10-30 01:23:24 26 4
gpt4 key购买 nike

我只是想出了一个主意,我想不出一种方法来在后端解决这个问题而不会出现令人生畏的安全问题。

假设我想让用户有机会通过网络服务创建简单的算法并在小列表上测试这些算法,例如range(0, 5) 然后通过另一个网络服务、模板或电子邮件报告结果,这并不重要,困扰我的是评估。

使用 python :

class Algorithm(whatever):
function = whatever.CharField(max_length=75)

用户可能会输入如下内容:

'f(x)=x+(x/5)**0.75'

当然,我可以使用 eval,去除任何内置函数、“x”以外的字符串等,但这仍然可能是一种不幸的做法。

我唯一能想到的就是将任何评估功能移动到 JavaScript 前端。

最佳答案

eval() 是邪恶的,在后端这样做是非常危险的。但是可以使用 python sandbox 安全地完成它.但是,如果沙盒在哪里失败,你就会被拥有。这不是一种非常“纵深防御”的方法。

更好的方法是在客户端评估有效负载……但这是跨站点脚本 (XSS)。防止攻击者利用此问题的一种方法是在客户端设置一个事件处理程序,该事件处理程序在按下按钮时评估表单。如果攻击者可以构建执行 JavaScript 的 GET 或 POST 请求,那么他就可以利用 XSS 漏洞。还要确保设置 x-frame-options: deny 以防止 clickjacking .

关于python - 评估来自 'untrusted' 用户的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13674761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com