diff --git a/install/install_db.php b/install/install_db.php
index af1399f95..3ef1098be 100644
--- a/install/install_db.php
+++ b/install/install_db.php
@@ -44,6 +44,12 @@ if (preg_match("/[^0-9a-z_]+/i", $admin_id)) {
die('
관리자 아이디는 영문자, 숫자, _ 만 입력하세요.
');
}
+// 관리자 이메일 형식 검증
+$admin_email = trim($admin_email);
+if (!$admin_email || !filter_var($admin_email, FILTER_VALIDATE_EMAIL)) {
+ die('올바른 관리자 E-mail 주소를 입력하세요.
');
+}
+
$g5_install = isset($_POST['g5_install']) ? (int) $_POST['g5_install'] : 0;
$g5_shop_prefix = isset($_POST['g5_shop_prefix']) ? safe_install_string_check($_POST['g5_shop_prefix']) : 'yc5_';
$g5_shop_install = isset($_POST['g5_shop_install']) ? (int) $_POST['g5_shop_install'] : 0;
@@ -83,6 +89,10 @@ if (!$select_db) {
$mysql_set_mode = 'false';
sql_set_charset(G5_DB_CHARSET, $dblink);
+
+// 관리자 입력값 SQL escape — sql_set_charset 이후 적용
+$admin_name = sql_real_escape_string(trim($admin_name), $dblink);
+$admin_email = sql_real_escape_string($admin_email, $dblink);
$result = sql_query(" SELECT @@sql_mode as mode ", true, $dblink);
$row = sql_fetch_array($result);
if($row['mode']) {