Victims Web 服务
项目描述
Victims 网络应用程序。
报告问题
如果您在http://victi.ms或代码中发现问题,请创建新的问题
或发送邮件至vicitms@librelist.com
贡献
如果您有一个补丁或想要添加到项目的功能,请随意发送给我们pull request。
pep8 --repeat .
开发
您可以通过安装PyPI软件包并使用提供的入口点来安装和使用服务器。请确保所需的数据库服务可用并/或已配置。
pip install --user victims-web
victims-web-server
开发指南
这是一份关于如何使用提供的docker-compose配置和开发Dockerfile在此代码库中工作的简要指南。注意,在基本目录中提供的Dockerfile不应用于生产,仅供开发使用。
Docker 构建过程
构建镜像
可以构建镜像以提供一个具有所有依赖项的运行环境。
docker build -t local/victims-web .
使用Docker镜像
如上所示构建的Docker镜像将不包含应用程序源代码,但它期望工作目录挂载在/opt/source。
docker run --rm -it -v `pwd`:/opt/source local/victims-web
Docker Compose
《docker-compose.yml》文件定义了在本地机器上运行服务器副本所需的服务。通过 docker-compose 启动服务器将;
启动支持版本的 MongoDB 实例
使用测试数据填充数据库
使用 python -m victims.web 启动 Web 服务器
绑定到本地主机的 5000 端口
启动服务器
这将启动一个与上述描述相同的服务器实例。请注意,这是在 DEBUG 和 TESTING 都启用的情况下启动的。这还将确保如果代码发生变化,代码将自动重新加载。
docker-compose up server
对工作副本执行测试
为了对工作副本代码执行测试,您可以使用 test 服务,具体请参阅 docker-compose.yml 文件。这将启动依赖服务,加载种子数据,然后执行应用程序测试和 pep8。
docker-compose up test
用法
安全的 API 访问
如 /service/submit/archive/java 之类的提交端点由类似于 AWS 使用的实现进行安全保护。认证令牌应在通过 VICTIMS_API_HEADER 配置(默认:X-Victims-Api)配置的 HTTP 头中提供。如果不存在或验证/认证失败,则回退到 BASIC AUTH。
以下是一个使用 curl 的示例
$ curl -v -X PUT -H "X-Victims-Api: $APIKEY:$SIGNATURE" -H "Date: Thu, 22 Aug 2013 15:20:37 GMT" -F archive=@$ARCHIVE https://$VICTIMS_SERVER/service/submit/archive/java?version=VID\&groupId=GID\&artifactId=AID\&cves=CVE-2013-0000,CVE-2013-0001
这也可以使用 BASIC-AUTH 如下完成
curl -v -u $USERNAME:$PASSWORD -X PUT -F archive=@$ARCHIVE_FILE https://$VICTIMS_SERVER/service/submit/archive/java?version=VID\&groupId=GID\&artifactId=AID\&cves=CVE-2013-0000,CVE-2013-0001
API 密钥和客户端密钥
在 victi.ms 上的每个账户默认都分配了一个 API 密钥和密钥。这些可以通过访问 https://victi.ms/account 获取。这些可以使用 https://victi.ms/account_edit 上的表单重新生成。
签名
签名是使用 HTTP 方法、路径、日期 和 MD5十六进制摘要 生成的。
注意
“路径”包括查询字符串参数,例如:/service/submit/archive/java?cves=CVE-0000-0000
MD5校验和包括提交的所有文件的数据(如果有的话)。在校验和添加到字符串之前,校验和按升序排序。
日期应使用 GMT。例如:Thu, 22 Aug 2013 15:20:37 GMT。
以下是一个使用 Python 的参考实现
from hmac import HMAC
def generate_signature(secret, method, path, date, md5sums):
md5sums.sort()
ordered = [method, path, date] + md5sums
string = ''
for content in ordered:
if content is None:
raise ValueError('Required header not found')
string += str(content)
return HMAC(
key=bytes(secret),
msg=string.lower(),
digestmod=sha512
).hexdigest().upper()
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码发行版
构建发行版
victims-web-2.2.1.tar.gz 散列
算法 | 哈希值摘要 | |
---|---|---|
SHA256 | 5841c274ea7441f5e28fc1c08442dac0bf6087db7951a2cafba5c9b2bbaed748 |
|
MD5 | 02210bb46e26bc39678f228a5c853ab1 |
|
BLAKE2b-256 | f0aa7876d63c8f3e3d69867da431087505c9416dd35c1ce99d2f36ae72c599d5 |
victims_web-2.2.1-py2-none-any.whl 的哈希值
算法 | 哈希值摘要 | |
---|---|---|
SHA256 | edfbf9c92ee4049fb4c729439a300db086be977b00ec9f3a9896eef05a135794 |
|
MD5 | ab250f043ed6575cbd77a340519b8d91 |
|
BLAKE2b-256 | 84f7e8a681469b541ce16469c67edc94ee5e7464c73982ce725d90f9f12503da |