지난 시간에는 바이브 코딩을 이용한 방치형 포인트 수집기의 취약점을 진단하였는데요.
개발 세계에서 무시 못할 부분은 금번 쿠팡 사태에서도 터졌던 ‘개인정보’ 이슈입니다.
구글 로그인만 연동한다면야 문제가 없을 수도 있지만, 만일 상품을 구매한 사용자에게 물건을 배송해야 한다면요?
필수적으로 수취인의 실명과 주소, 전화번호를 받아야 할 겁니다.
문제는 이러한 정보들이 ‘개인정보’라는 점이지요.
꼭꼭 숨겨놓고 보안을 철처히 해도 사실 유능한 해커는 마치 마법같은 기술로 데이터를 털어갈 수 있습니다.
그래서 개인정보가 비록 털릴지라도 그에 따른 ‘안전장치’를 마련해야 하는데요.
개인정보는 법적으로 암호화가 필수입니다. 암호화 처리를 하지 않아 비밀번호나 주요 정보가 그대로 유출될 경우 법령에 따라 몇천만원의 과태료를 물어야 할 수도 있습니다.
그래서 사실 검증된 쇼핑몰 호스팅을 임대받아 안정적인 쇼핑몰 운영을 하는 것이 더 나을 수도 있습니다.
적어도 기술적인 부분은 책임 소지를 지지 않아도 되니까요.
오늘은 바이브 코딩으로 간단한 제품 홈페이지를 만들고 회원가입, 배송지를 입력하여 주문을 받는 부분과 취약점을 보여드리겠습니다.
백앤드도 사용해야 할텐데 AI 코딩으로 이러한 부분이 가능한가요?
네, 물론 가능합니다. 하지만 그만큼 리스크가 큽니다.
먼저 PC에서 작동하는 xampp 웹서버를 설치한 상태에서 진행하겠습니다.
PHP와 MYSQL이 작동하는 환경입니다.
Antigravity 를 켜서 프롬프트를 입력합니다.
스마트 시계를 판매하는 웹사이트를 만들어줘. 상품은 하나로 고정하고 회원가입해서 배송지 정보를 입력해야 구매 가능하게 해줘. 구매는 무통장만 할거니 결제는 연결하지 말고 관리자 페이지에서 주문을 관리하게 만들어줘. mysql과 php를 사용해.
오우~ 그럴싸합니다. 위 프롬프트만으로 이 정도라니 디자인 실력은 알아줘야 한다니까요.

이제 회원가입을 통해 가입을 하면

문제없이 가입이 됩니다.

주문하기 – 구매하기 버튼을 클릭하여 상품을 구매할 수 있습니다.
물론 무통장 입금이라는 가정이기 때문에 관리자가 따로 체크를 해야 합니다.


관리자 페이지까지 만들어 버렸습니다.
금방 주문한 상품이 뜨네요.

무통장 입금을 받는다칠 때 이거 완전 끝난거 아닌가요? 정말 그럴까요?
인터넷은 익명의 세계입니다.
돈, 보상, 명예 갖가지 탐스러운 것이 얽히면 이를 탐내는 어떤 이들은 ‘부정행위’를 하게 마련인데요.
바이브 코딩으로 만든 이 간단한 쇼핑몰 사이트를 진단해보겠습니다.
기본 중의 기본 SQL Injection 을 테스트해본 결과 이 부분은 안전합니다.

수량 조작도 막혀 있고 Antigravity 가 꽤 높은 수준까지 실력이 올라온 것을 확인할 수 있는데요.
공개를 할 수 없지만 ‘세션 하이재킹’ 공격까지 막혀 있었습니다.
그런데 한가지 큰 문제가 있습니다.
바로 서두에 말씀드렸던 개인정보 보안 문제이지요.
현재 회원정보 데이터를 들여다 보면 이름, 이메일 주소, 배송지등이 들어 있는데요.
어.. 이거 심각합니다.
기본적으로 이 데이터를 유능한 해커가 털어갈 수 있다고 가정을 하고 서비스를 해야 하거든요.

코딩중인 Antigravity AI에게 직접 물어보았습니다.
“지금 DB에 저장한 회원정보가 대한민국 법령상 털려도 문제가 없어?”
대한민국 법령, 특히 '개인정보 보호법'과 '정보통신망법' 관점에서 단도직입적으로 말씀드리면,
네, 지금 상태로는 문제가 아주 큽니다.
현재 저장하고 있는 정보(이름, 연락처, 이메일, 주소)는 모두 '개인정보'에 해당하며,
이를 다루는 방식에 있어 법적으로 필수적인 조치들이 대거 누락되어 있기 때문입니다.
3가지 핵심 포인트를 짚어드릴게요.
1. 개인정보 수집 및 이용 동의 미비 (가장 큼!)
대한민국 법상 개인정보를 수집할 때는 반드시 '개인정보 수집 및 이용 동의'를 받아야 합니다.
수집 목적, 항목, 보유 기간, 거부 시 불이익 등을 명시하고 사용자가 '동의함'에 체크하게 해야 합니다.
현재 register.php에는 이 절차가 아예 없습니다.
법을 위반하여 개인정보를 수집한 셈이 됩니다. (조사 시 최대 5,000만원 과태료 대상)
2. 개인정보의 암호화 미비 (보관 시 조치)
법령(개인정보의 안전성 확보조치 기준)에 따르면, 특정 정보는 반드시 암호화하여 저장해야 합니다.
비밀번호: 일방향 암호화(해싱) 필수. (현재 password_hash()를 써서 이 부분은 합격입니다!)
주민등록번호 등: 수집 자체가 원칙적으로 금지이며, 수집 시 암호화 필수. (수집 안 해서 다행입니다.)
연락처, 주소, 이메일: 일정 규모 이상의 서비스라면 암호화가 의무입니다. 암호화 없이(평문으로) DB에 저장되어 있다면, DB가 통째로 털렸을 때 모든 정보가 그대로 노출되므로 보안 조치 위반에 해당합니다.
3. 기술적·관리적 보호 조치 부족
접속 기록(로그) 보관: 개인정보처리자는 로그인 기록, 개인정보 열람 및 수정 기록을 최소 6개월~1년 이상 보관해야 할 의무가 있습니다.
현재는 이런 로그 저장 기능이 없습니다.
HTTPS 통신 미사용: 현재는 로컬 HTTP 환경이지만, 실제 배포 시 HTTPS(SSL/TLS)를 쓰지 않고 개인정보를 전송하면 전송 구간 암호화 미준수로 처벌받을 수 있습니다.
추가로, 이렇게 수집한 개인정보를 제3자에게 유출할 경우 또는 영리목적으로 악용할 경우 5년 이하의 징역 또는 5,000만원 이하의 과태료를 물어야 합니다.
그렇다면 왜 Antigravity 는 본인이 이렇게까지 알면서도 앞과 같이 코드를 작성했을까요?
그것은 여러분이 이해하기 쉽게 코딩을 작성했기 때문입니다.
이 것 저것 법령이나 모든 보안 등을 고려해서 개발하면 개발된 코드를 사용자(바이브 코더)가 이해하기 어려울 뿐더러 토큰도 많아져 자신도 한번에 소화하기 어렵기 때문이거든요.
추가로 아래 프롬프트를 입력해 그나마 좀 나아지긴 하나 아직 이것으로 다 해결되었다고는 보장하기 힘들것 같습니다.
“그래 그러면 https 를 제외한 나머지에 대해 기능을 만들어줘.”
그러자 회원가입시 동의화면이라든가

관리자의 로그인 기록 조회 기능도 구현한 것을 볼수가 있네요.

그렇지만 아직 멀었습니다.
이와 같이 회원 가입 시스템이 있는 홈페이지는 메인페이지에 꼭 들어가야 하는 “개인정보 보호 책임자” 안내가 필수로 들어가야 합니다. 설사 그 부분을 만들었더라도 그 책임자란에 여러분의 이름이 들어가야 한다는 사실이라는 것이지요.
AI가 책임자가 될수는 없기 때문입니다.
이것 저것 하나씩 따지다 보면 ‘인터넷 전자 상거래에 관한 법률’을 상당히 익혀야 합니다.
시중에 나와 있는 쇼핑몰들은 ‘산전수전’을 다 겪은 쇼핑몰입니다.
그러니 ‘산전수전’을 다 겪으며 새로운 쇼핑몰을 개발하느니 차라리 완성된 쇼핑몰에 입점하거나 구매해서 운영하는게 더 낫다는 것이지요. 쇼핑몰 시스템 자체를 안정화해 판매할게 아니라면 말입니다.
‘AI가 자동으로 쇼핑몰을 만들 수 있다’는 맞는것 같아 보이지만, 이런 맹점들을 모두 해결해주지 않습니다.
바이브코딩으로 시작했더라도 안전을 위해 코딩을 배워야 합니다. 필요할 경우 법도 익혀야 합니다.
아무쪼록 바이브코딩에 도전하시는 분들은 이런 점을 감안하여 안전에 유의하시길 바라는 마음으로 이 글을 적습니다.

AI를 접한지는 3년, 그리고 바이브 코딩을 접해본지 1년입니다.
바이브 코딩은 마치 마법과 같이 보일지라도 사실 불완전합니다.
알파고가 바둑을 잘 둔다고 하더라도 맞은 편 상대편이 치트를 써 손으로 바둑알 위치를 몰래 바꾸는 ‘아다사’라는 기술을 쓴다면 과연 알파고가 사람을 이길 수 있을까요?
개발 세계는 사실 해커와 개발자, 보안 전문가가 싸우는 권모와 술수가 난무하는 시대입니다.
바이브 코딩만으로 산출된 많은 결과물들이 허술한 보안, 개인정보 보호 미흡, 법령 미준수 등 사회적 이슈로 인해 어느새 대부분 물갈이되지 않을까 하는 생각이 드는 요즈음입니다.
하나님께서 세상을 창조하고 에덴동산에서의 인간 타락 사건 이후 세계는 무법천지였지요.
창조자 하나님께서 노아와 그의 가족, 일부 동물을 택하시고 모든 사람들을 쓸어버리기도 하셨는데요.
바로 ‘노아의 대홍수’가 그것입니다.
하나님께서 노아에게 말씀하시기를,
“땅은 사람들 때문에 무법천지가 되었고, 그 끝날이 이르렀으니, 내가 반드시 사람과 땅을 함께 멸하겠다.너는 잣나무로 방주 한 척을 만들어라 … ” – 창세기 6장 13-14절 말씀 –
하나님 보시기에 무법은 바로 하나님을 믿지 않는 것입니다.
그 분을 믿기 위해 우리는 말씀으로 오신 예수 그리스도를 마음에 받아 들여 그분의 선하신 뜻대로 살아가야 합니다.
예수 그리스도를 믿으세요!