3个不稳定版本
0.2.1 | 2022年12月31日 |
---|---|
0.2.0 | 2022年12月30日 |
0.1.0 | 2022年12月29日 |
#1247 in HTTP服务器
39KB
697 行
为Rocket提供简单的CGI(RFC 3875)处理器。
简单的符合标准CGI处理器。这仍然是一个WIP,并且将在安全待办事项得到处理之前保持如此。
用法
只需挂载一个带有CGI处理器的目录。
rocket().mount("/cgi", CGIDir::new("./cgi"))
配置
cgi
数据限制(默认1 MiB)
注意
此CGI处理器将尽可能快地尝试终止脚本。如果进程关闭stdout、打印了HEAD请求的头部行或发送了重定向,都将导致进程被终止。
这也没有实现规范中的几个可选部分。例如,扩展方法(甚至包括PUT & DELETE)都不受支持。
待办事项
- 安全
- 检查文件权限 - 禁止可写文件?
- 检查文件权限 - 禁止setuid位
- 阻止路径遍历
- 忽略点文件/隐藏文件
- 功能
- 添加默认文件类型
- 重定向
- 扩展头部
- 测试
- 测试仅Windows特有的功能(隐藏文件 & 系统临时文件)
依赖
~15–50MB
~801K SLoC