加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 评估“不信任”用户的算法

发布时间:2020-12-16 21:44:17 所属栏目:Python 来源:网络整理
导读:我只是想着一个想法,我想不出一种方法可以在后端解决这个问题,而不会出现令人生畏的安全问题. 假设我想让用户有机会通过网络服务创建简单的算法,并通过小型列表测试这些算法,例如:范围(0,5)然后通过另一个网络服务,模板或电子邮件报告结果,这并不重要,这是
我只是想着一个想法,我想不出一种方法可以在后端解决这个问题,而不会出现令人生畏的安全问题.

假设我想让用户有机会通过网络服务创建简单的算法,并通过小型列表测试这些算法,例如:范围(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:拒绝以防止clickjacking.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读