开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 0

codervibe/PHP-Code-Sec

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
main
分支 (1)
main
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
main
分支 (1)
main
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
main
分支 (1)
main
PHP-Code-Sec
/
setup
/
install.php
PHP-Code-Sec
/
setup
/
install.php
install.php 5.14 KB
一键复制 编辑 原始数据 按行查看 历史
codervibe 提交于 2025年11月11日 09:44 +08:00 . feat(security): 将源码复制粘贴到仓库中
<?php
// 安装向导:生成 config/config.inc.php 并初始化数据库
$installed = file_exists(__DIR__ . '/../config/config.inc.php');
// 新增:允许通过 force=1 强制重装;默认已安装显示提示但不重定向首页
$allow_reinstall = isset($_GET['force']) && $_GET['force'] === '1';
$msg = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$host = $_POST['host'] ?? '127.0.0.1';
$port = $_POST['port'] ?? '3306';
$user = $_POST['user'] ?? 'root';
$pass = $_POST['pass'] ?? '';
$db = $_POST['db'] ?? 'phpsec_lab';
try {
$dsn = 'mysql:host=' . $host . ';port=' . $port . ';charset=utf8mb4';
$pdo = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
// 创建数据库
$pdo->exec("CREATE DATABASE IF NOT EXISTS `{$db}` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci");
$pdo->exec("USE `{$db}`");
// 创建表: users, comments
$pdo->exec("CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE,
password VARCHAR(255),
email VARCHAR(255),
is_admin TINYINT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
$pdo->exec("CREATE TABLE IF NOT EXISTS comments (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
content TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
// 初始数据
$pdo->exec("INSERT IGNORE INTO users(username, password, email, is_admin) VALUES
('admin', MD5('admin123'), 'admin@example.com', 1),
('guest', MD5('guest'), 'guest@example.com', 0)");
$pdo->exec("INSERT IGNORE INTO comments(user_id, content) VALUES
(2, '欢迎来到 PHP-Code-Sec!试试注入与XSS吧~'),
(1, '<b>管理员留言</b>: 请勿在生产环境部署该靶场。')");
// 写配置文件
if (!is_dir(__DIR__ . '/../config')) {
mkdir(__DIR__ . '/../config', 0777, true);
}
$configPHP = "<?php\n".
"define('DB_HOST', '" . addslashes($host) . "');\n".
"define('DB_PORT', '" . addslashes($port) . "');\n".
"define('DB_USER', '" . addslashes($user) . "');\n".
"define('DB_PASS', '" . addslashes($pass) . "');\n".
"define('DB_NAME', '" . addslashes($db) . "');\n";
file_put_contents(__DIR__ . '/../config/config.inc.php', $configPHP);
// 目录准备
@mkdir(__DIR__ . '/../uploads', 0777, true);
@mkdir(__DIR__ . '/../data', 0777, true);
@mkdir(__DIR__ . '/../pages', 0777, true);
$msg = '安装成功!已生成数据库与配置文件。<a href="/">返回首页</a>';
} catch (Throwable $e) {
$msg = '<span style="color:#ef4565">安装失败:' . htmlspecialchars($e->getMessage()) . '</span>';
}
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>安装向导 - PHP-Code-Sec</title>
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<header class="nav">
<div class="brand">PHP<span class="accent">-Code</span>-Sec</div>
<div class="links"><span class="status">安装向导</span></div>
</header>
<main class="container">
<div class="hero">
<h1>安装向导</h1>
<p>填写 MySQL 信息并初始化数据库与配置。</p>
</div>
<div class="panel">
<?php if (!empty($msg)) echo '<p>'.$msg.'</p>'; ?>
<?php if (!$installed || $allow_reinstall): ?>
<form method="post">
<div class="grid">
<div class="field"><label>主机</label><input name="host" value="127.0.0.1" /></div>
<div class="field"><label>端口</label><input name="port" value="3306" /></div>
<div class="field"><label>用户名</label><input name="user" value="root" /></div>
<div class="field"><label>密码</label><input name="pass" value="" /></div>
<div class="field"><label>数据库名</label><input name="db" value="phpsec_lab" /></div>
</div>
<div style="margin-top:12px">
<button class="btn btn-primary" type="submit">开始安装</button>
</div>
</form>
<?php if ($installed && $allow_reinstall): ?>
<p class="muted" style="margin-top:12px">注意:当前为强制重装模式(force=1),将覆盖已存在配置。</p>
<?php endif; ?>
<?php else: ?>
<p>检测到系统已安装并存在配置文件。</p>
<p>如需重新安装或覆盖配置,请点击:<a class="btn" href="/setup/install.php?force=1">进入强制重装</a></p>
<p style="margin-top:8px"><a href="/">返回首页</a></p>
<?php endif; ?>
<p class="muted" style="margin-top:12px">注意:本项目用于学习与审计演示,务必在隔离环境中使用。</p>
</div>
</main>
</body>
</html>
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

一个覆盖常见 PHP 代码审计知识点的本地靶场。参考 DVWA / Pikachu 的组织方式,含安装向导与通关教程。
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/codevibe/PHP-Code-Sec.git
git@gitee.com:codevibe/PHP-Code-Sec.git
codevibe
PHP-Code-Sec
PHP-Code-Sec
main
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /