회원과 게시판 — 실습
비밀번호를 그대로 DB 에 저장. 로그인은 SELECT 비교만. 페이지 옮기면 풀림.
-- v2 의 테이블 (MySQL)
CREATE TABLE mymember (
id VARCHAR(50) PRIMARY KEY,
pwd VARCHAR(20) NOT NULL
);
// com.smhrd.domain.Member
@Data @AllArgsConstructor @NoArgsConstructor
public class Member {
private String id;
private String pwd;
}
// com.smhrd.service.MemberService
@Service
public class MemberService {
@Autowired MemberMapper mapper;
public void signup(Member m) {
// 평문 그대로! (의도적으로 위험)
mapper.insert(m);
}
public Member login(String id, String pwd) {
Member m = mapper.selectOne(id);
if (m != null && m.getPwd().equals(pwd)) {
return m;
}
return null;
}
}
// com.smhrd.controller.LoginController
@Controller
public class LoginController {
@PostMapping("/login")
public String login(@RequestParam String id,
@RequestParam String pwd) {
Member m = service.login(id, pwd);
if (m != null) return "redirect:/";
return "redirect:/login?error";
// 세션 저장 X — 페이지 이동 시 로그인 풀림
}
}
SHOW TABLES; 에 mymember 가 보이는가?Run on Server 로 실행하고 회원가입 → DB 확인 → 로그인 순서로 따라갑니다.
SELECT id, pwd FROM mymember; — 평문이 그대로 보이는가? (의도된 위험)