最近在利用gitbucket用作项目开发中的代码托管工具。简单介绍一下gitbucket:gitbucket是一个仿github界面的代码托管工具。使用scala语言开发,利用jgit开源工具管理和操作git命令,内置了一个轻量级的内存数据库h2数据库(轻量到就一个jar包)。这个项目更新的比较快,目前最近的版本已经到1.11。
在使用1.8版本时,遇到一个XSS漏洞:创建一个项目(不需要太正式),创建README.md文件。README.md文件中添加xss攻击语句:"><script>alert(1)</script><"并上传项目。当用户访问上传的项目时,浏览器将会解析javascript命令:alert(1)。
为了避免被XSS攻击,我们需要在gitbucket把README.md文件的内容传递给用户的浏览器前,将README.md的内容转成html的内容,比如将“"”转成“"”等。
读取README.md的程序文件文件是app/RepositoryViewerController.fileList。fileList方法中有获取README.md文件内容的方法:
StringUtil.convertFromByteArray(JGitUtil.getContent(Git.open(getRepositoryDir(repository.owner, repository.name)), file.id, true).get)
添加上转义方法:
StringUtil.convertFromByteArray(JGitUtil.getContent(Git.open(getRepositoryDir(repository.owner, repository.name)), file.id, true).get) .replace("&", "&").replace(">", ">").replace("<", "<").replace("\"", """)
再次访问之前的项目,README.md显示"><script>alert(1)</script><",而不会执行这段javascript。
珍爱安全,远离XSS
相关推荐
4. 完成编写后,将`README.md`文件提交到版本控制系统(如Git)中,与项目代码一起管理。 总的来说, Typora作为一款开源的Markdown编辑器,不仅在Windows平台上表现出色,而且具有丰富的功能和良好的用户体验,是...
README.md编写教程(基本语法) Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。
# README.md:一份详尽的指南 在软件开发和开源项目中,`README.md` 文件是项目的重要组成部分,它提供了项目的基本信息、安装指南、使用方法、贡献方式等关键信息。`README.md` 使用Markdown语言编写,使得内容既...
const readmeContent = fs.readFileSync('Readme.md', 'utf8'); const htmlContent = marked(readmeContent); // 将生成的HTML写入新的文件 fs.writeFileSync('index.html', htmlContent); ``` 虽然这会生成一个...
这是一个用于微信小程序开发的md文件,希望可以帮助大家。
README.md
readme,matlab处理文件
README.md
spark入门联系wordcount等相关操作文档~ Spark is a fast and general cluster computing system for Big Data. It provides high-level APIs in Scala, Java, Python, and R, and an optimized engine that ...
标题 "cron00:每天00:00使用Python每天生成ReadMe.MD" 提到的是一个使用Python脚本在每天凌晨00:00自动创建或更新名为 "ReadMe.md" 的文件的任务。这个任务可能涉及到定时任务调度、文本处理和版本控制等多个方面。 ...
`readme_styles`项目提供了GitHub项目的最小化`README.rst`(reStructuredText)和`README.md`(Markdown)模板,帮助开发者快速构建专业且规范的项目介绍文档。 首先,我们来详细了解一下`README`文件的重要性。`...
markdown的基本语法使用 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题
从您的Readme.md文件创建漂亮而简单HTML页面 :hammer_and_wrench: 没有配置 :laptop_computer: 代码突出显示 :hundred_points: 表情符号支持 :sparkles: 创建静态文件(仅JS是棱镜) :rainbow_flag_selector:...
在“README.md database coding”的文档中,虽然没有直接提及数据库的具体实现细节,但从标题及描述中我们可以推测这是一份关于使用PHP语言进行数据库操作的文档。PHP 是一种广泛应用于 Web 开发中的服务器端脚本...
生成README.md文件的cli 用法 请确保您已安装( npx默认情况下,由于NPM运5.2.0 ) 在项目的根目录运行以下命令并回答问题: npx @mxttwoods/readme-cli 对所有问题使用默认值( -y ): npx @mxttwoods/readme...
但根据一般实践,`readme.md`可能会提供关于代码库的简要概述,包括所使用的框架(如TensorFlow、PyTorch等)、实现的目标检测算法(如YOLO、Faster R-CNN、Mask R-CNN等)以及代码结构和功能。 `objectdetection_...
当我们谈论"asterisk-1.8.10.1.tar.gz"时,我们实际上在讨论的是Asterisk的一个特定版本,即1.8.10.1,它被封装在一个名为tar.gz的压缩文件中。 首先,我们要理解tar.gz文件的含义。这是一种常见的Linux/Unix系统中...
提供个目录列表安装使用配合Tampermonkey食用最佳Tip: Internet Explorer 8 及更早 IE 版本不支持,本项目是基于Chrome开发调试,其他浏览器可能会存在些问题,请见谅插件功能项目README.md增加目录侧栏导航功能:...
“自述生成器,我使用简单的NodeJS应用程序来构建readme.md文件”表明该项目的核心功能是生成`readme.md`文件,通过Node.js实现。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript...