요청: cycle-v2-진입-자율진행
- 날짜: 2026-05-27 13:34:16
- 작업 경로: /Users/ef/crowny-cycle
요청 본문
해보자~!!! (사용자 응원 — v2 마일스톤 자율 진행: POST + CSRF + 폼 토큰 자동화 또는 cycle↔value 연동)
관련 산출
(클로드가 작업 결과를 이어 기록)
산출
v2 — POST + 폼 hidden token + /wallet 통합 페이지
1) POST 전환
- 모든 폼 method=post 로 (5개 폼)
- 라우터에 메서드 분기:
메서드 = HTTP메서드(요청)+데이터 = 본문 if POST else 전체경로 - /api/* 핸들러에서
쿼리값(데이터, ...)통일 — GET 백워드 호환 유지
2) HTTP 본문 추출 (CrownyTVM 함정 우회)
HTTP본문() 결함: \r\n\r\n 패턴에서 \r 처리 안 됨\r 개수 0 (CrownyTVM 한선씨 "\r" 리터럴 = 2자 backslash+r, 진짜 CR 0x0D과 불일치)\r\n\r\n 패턴 매칭 → 실패\n\n 직접 매칭 → 실패 (실제로는 \n\r\n 패턴)Content-Length: N 헤더 파싱 → 실패 (\r 트레일링으로 숫자변환 신뢰 낮음)\n 위치 + 1부터 끝까지 = body. form-urlencoded는 body에 \n 미포함 가정. 안정.3) /login-submit (HTML 응답)
- POST 폼 제출 전용. 검증 후
페이지_로그인성공(토큰)또는페이지_로그인실패(이유)HTML 응답 - 성공 시:
<meta refresh content='2;url=/wallet?token=XXX'>자동 이동 - 실패 시: 사유 + 재시도 링크
4) /wallet — 통합 페이지
- 토큰 검증 → 세션아이디 매핑 → 사용자 정보 로드 (XSS escape 적용)
- 1단: 등록 상태 (테더 ✓ 또는 등록 링크 + 토큰 자동 전파)
- 2단: 플라이휠 비율 + 임계게이지 + 막대차트 시뮬레이션
- 3단: 더 알아보기 (철학/생태계/히스토리/API)
- 토큰 표시 (개발자용 details)
5) 폼 페이지에 hidden token 자동 삽입
- 페이지_테더폼/바이낸스폼/파라미터폼이 경로 인자 받아 토큰 추출
<input type=hidden name=token value='ESC(tok)'>자동 추가- 토큰 없이 접근 시 경고
검증 (POST 흐름)
| # | 시나리오 | 결과 |
|---|---|---|
| 1 | POST /api/signup | {"ok":true,"msg":"성공"} |
| 2 | POST /login-submit | HTML 응답, 토큰 64자 추출 |
| 3 | POST /api/register/tether (body token) | 테더_등록완료_9999 ✓ |
| 4 | POST /api/register/binance | 바이낸스_등록완료 ✓ |
| 5 | POST /api/params | 파라미터_저장완료 ✓ |
| 6 | /wallet?token= | 사용자명, 등록 ✓, 차트, 게이지 모두 노출 |
| 7 | 잘못된 토큰 POST | 토큰_무효_로그인필요 ✓ |
| 8 | 잘못된 비번 6회 | 1-5 일치하지 않습니다, 6 시도제한 ✓ |
| 9 | GET /api/signup (backward compat) | 작동 ✓ |
| 10 | /history /ecosystem /philosophy | v1.6/v2/도메인/임계실현율 모두 노출 ✓ |
발견 — CrownyTVM 한선씨 함정
"\r" 리터럴이 진짜 CR(0x0D)로 컴파일 안 됨. 글자() 비교 매치 0회. 결과:
- 웹서버틀의 HTTP본문()이 항상 빈 문자열 반환
\r\n분리 알고리즘 작성 불가
- HTTP request에서 마지막
\n뒤 = body (form-urlencoded 가정) - 또는 첫 \n 두 번 연속 패턴이 아닌
\n + anyChar + \n패턴 매치 - Content-Length 헤더 파싱 시 trailing
\r트림 필요
feedback_hanseon_cr_literal.md관련 파일
/Users/ef/crowny-cycle/사이클서버.한선(1256줄, v2)
v2.1 잔여
- CSRF 토큰 (현재 세션 토큰만으로 부분 완화)
- HTTPS (gateway TLS 래핑 시 자동 — gateway 세션 영역)
- cycle:9897 ↔ value:9879 데이터 연동 (실 거래 원장)
- gateway 매핑 — cycle.crowny.org 도메인
- 실 바이낸스 읽기전용 + 실 Claude API 결제 자동화