Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions test-sites/naver-impersonation-login/components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "base-nova",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/app/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"rtl": false,
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"menuColor": "default",
"menuAccent": "subtle",
"registries": {}
}
18 changes: 18 additions & 0 deletions test-sites/naver-impersonation-login/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";

const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
// Override default ignores of eslint-config-next.
globalIgnores([
// Default ignores of eslint-config-next:
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]),
]);

export default eslintConfig;
29 changes: 29 additions & 0 deletions test-sites/naver-impersonation-login/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
id: naver-impersonation-login
name: "NAVER 사칭 로그인 폼"
source_url: "https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/"
generated_by: "ai-website-cloner-template"
fixture_type: "static-next-clone"
category: "brand-impersonation-login-page"
purpose: "true-positive-regression"
stores_credentials: false
external_requests: false
authentication_enabled: false
search_indexing_disabled: true
created_at: "2026-05-18"
expected_signals:
- "BRAND_IMPERSONATION_FORM"
- "LOGO_ALT_IMPERSONATION"
- "CREDENTIAL_FORM_EXTERNAL"
source_and_asset_notes:
- "Visual structure references the public NAVER login page HTML fetched from nid.naver.com."
- "Local NAVER sprite assets are copied from public ssl.pstatic.net static login sprites for fixture-only visual parity."
- "Local NAVER wordmark SVG is included only as hidden detector coverage for image alt extraction."
- "Logo alt text intentionally includes NAVER for detector coverage."
safety_controls:
- "Form action points to https://example.invalid/linclean-fixture/credential-sink."
- "Primary login button is type=button and form submit is still blocked with event.preventDefault()."
- "No live NAVER authentication endpoint is configured."
- "All recovery, passkey, social login, footer, and language links are disabled anchors or non-submitting buttons."
- "robots.txt disallows all crawlers."
- "Next metadata sets noindex,nofollow."
- "Visible test marker warns not to use real credentials."
6 changes: 6 additions & 0 deletions test-sites/naver-impersonation-login/next-env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
import "./.next/dev/types/routes.d.ts";

// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
8 changes: 8 additions & 0 deletions test-sites/naver-impersonation-login/next.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
/* config options here */
output: "standalone",
};

export default nextConfig;
Loading
Loading