离线解锁 CodeCombat 全关卡教程 使用docker安装实现

背景

        暂时还没收入,但是想玩,但官方的有点贵(是真的贵,扛不住)

前期准备

开始

  1. 打开cmd 拉镜像 docker pull operepo/ope-codecombat 下载要一会儿时间,别人已经弄好的镜像

  2. 回到docker Desktop 从images哪儿启动镜像,名字我叫CodeCombat,主机端口设置为9001
    在这里插入图片描述在这里插入图片描述

  3. 把数据文件压缩包复制到启动的容器中。在你下载的 dump.tar.gz 文件夹下,shift+右键打开power shell

docker cp dump.tar.gz CodeCombat:/home/coco/codecombat/data/

        前期准备搞定了

进入容器准备干活

  1. cmd 中 docker exec -it CodeCombat /bin/bash 进入容器
  2. 解压刚刚复制进去的压缩文件
 cd /home/coco/codecombat/data/    
 tar -zxvf dump.tar.gz 
  1. 开启数据库服务
 cd /home/coco/codecombat 
 ./bin/coco-mongodb 
  1. 开启web服务
cd /home/coco 
 sh start.sh 

        一切已就绪

进入游戏

  1. 访问 localhost:9001
  2. 注册独立账号,注意至少是成年人,邮箱随便一个都行
  3. 访问 http://localhost:9001/account/settings 勾选上帝和管理后点最下面的保存

在这里插入图片描述

  1. 回到游戏,刷新,所有关卡已解锁

        ps :每次开启游戏需要先执行数据库服务命令行和web服务命令行 ,会自动记录你的进度

问题

        有些关卡进不去,看报错还像是地图文件缺失,可能是基础镜像有问题,有的文件损坏了,我也是用的别人的镜像,待处理 …

CodeCombat 是一个通过玩游戏来学习编程的网站,也是GitHub上最大的开源CoffeeScript(一种脚本语言,类似JavaScript)项目,构筑在几十个开源项目之上的,有上千程序员和玩家为其编写程序、测试游戏。到目前为止,已经翻译成17种国外语言。       它是一款多人编码游戏,该款游戏的任务就是教会大家如何编程,并且通过游戏来提升开发者的技能水平。因为开源,我们可以为孩子们定制我们希望的样式。人们不需要任何编程知识即可了解程序的运行逻辑,并编出实用的代码。      游戏总共超过9千关,每个步骤都会有语音操作提示(非中文),无论你是新手还是编程精英都可以加入到这款游戏中。最重要的是,你是写代码执行游戏。你要扮演得是一名非常有力量的魔法师,要通过你写代码魔法,让你的人去消灭怪兽(其实是怪物)。看起来像是塔防游戏——《王城保卫战》,但却是一款即时战略游戏。每关都会有对话讲解如何操作(遗憾没有中文)左侧是游戏界面,右侧是代码界面,通过在右侧输入关键语句代码,控制左侧角色的移动和攻击等动作。前几关非常简单,几行“上下左右”和“攻击”的代码即可完成通关。每关结束后都有个回顾,告诉你在上一关学到了什么。当输入错误,比如大小写错误,在代码下方会提示具体的出错信息,玩家可以据此Debug。第二关中,你要先去右边吃蘑菇变强,再去击杀怪物。(点击图片查看具体代码,其实向右移动一步即可迟到蘑菇,代码中是两步)第三关,在击杀第一个怪物后,角色的血也不多了,所以要先去下方喝药瓶。下去喝药瓶,输入代码按回车,角色就会照做。第四关前N关都是编程中最基本的顺序语句,随着关数的提升,像“if…else,then”等判断、循环语句也会逐渐加入,可玩性越来越高。玩家在不知不觉也就具备了编程思维。 标签:编程游戏
### 文件上传绕过%00截断漏洞解决方案 #### 背景介绍 文件上传中的`%00`截断漏洞主要存在于较旧版本的PHP环境中,在这些环境下,如果`magic_quotes_gpc=off`,则可以通过特定手段绕过文件名验证机制。然而,随着技术的发展,现代Web应用框架和服务器端编程语言对此类攻击已经有了较为完善的防护措施。 #### 技术细节分析 对于低于PHP 5.2.4版本的情况,并且当`php.ini`中设置为`magic_quotes_gpc=off`时,可以尝试使用`%00`字符来终止字符串解析[^5]。具体来说: - **GET请求**:浏览器会自动解码URL参数中的特殊字符; - **POST请求**:不会自动解码表单数据中的特殊字符;因此为了实现`%00`的效果,需要将它编码成`%25%30%30`形式发送给服务器,或者直接在Burp Suite这样的工具里手动编辑HTTP报文,把相应的字节改成十六进制表示法下的`00`[^1]。 #### 实际案例说明 在一个典型的场景中,假设存在一个允许用户上传图片的应用程序,该应用程序试图通过检查文件扩展名为`.jpg`或其他图像格式的方式来阻止恶意脚本上传。此时,攻击者可以选择构造如下类型的文件名:“`evil.php.jpg\0.png`”。当服务器接收到这个文件并尝试处理其路径时,遇到第一个出现的NULL(`\0`)就会停止进一步解释剩余部分,最终可能导致只保存了前面的部分——即带有PHP代码的有效载荷被当作合法图片存储下来[^2]。 #### 防护建议 为了避免上述风险,开发者应当采取以下预防措施: - 升级至最新稳定版的开发平台和技术栈; - 启用适当的安配置选项(如开启`magic_quotes_gpc`),尽管这并不是推荐的做法因为更好的实践是在代码层面做更严格的输入过滤; - 应用多层防御原则,比如结合前端JavaScript验证加上服务端逻辑双重确认。 ```python import os.path def validate_filename(filename): allowed_extensions = ['.png', '.jpeg'] # Remove any null bytes from filename to prevent truncation attacks. clean_name = "".join([c for c in filename if ord(c) != 0]) ext = os.path.splitext(clean_name)[1].lower() return ext in allowed_extensions and not ".." in clean_name ```
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中南自动化学院至渝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值