← 목록
기타 2026-05-27 4KB 읽기 4분

요청: 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 처리 안 됨
  • 디버그로 확인 — TCP읽기 후 \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 흐름)

    #시나리오결과
    1POST /api/signup{"ok":true,"msg":"성공"}
    2POST /login-submitHTML 응답, 토큰 64자 추출
    3POST /api/register/tether (body token)테더_등록완료_9999
    4POST /api/register/binance바이낸스_등록완료
    5POST /api/params파라미터_저장완료
    6/wallet?token=사용자명, 등록 ✓, 차트, 게이지 모두 노출
    7잘못된 토큰 POST토큰_무효_로그인필요
    8잘못된 비번 6회1-5 일치하지 않습니다, 6 시도제한
    9GET /api/signup (backward compat)작동 ✓
    10/history /ecosystem /philosophyv1.6/v2/도메인/임계실현율 모두 노출 ✓

    발견 — CrownyTVM 한선씨 함정

    "\r" 리터럴이 진짜 CR(0x0D)로 컴파일 안 됨. 글자() 비교 매치 0회. 결과:

    • 웹서버틀의 HTTP본문()이 항상 빈 문자열 반환
    • \r\n 분리 알고리즘 작성 불가
    우회 패턴 (모든 한선씨 HTTP 서버에 적용):
    • 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 결제 자동화