계정을 새로 만들 때마다 겪는 익숙한 풍경이 있다. "대문자와 특수문자를 포함해 10자 이상"이라는 안내를 보며 한숨을 쉬고, 예전에 쓰던 비밀번호를 살짝 바꿔 넣고, 며칠 뒤엔 그마저 기억나지 않아 "비밀번호 찾기"를 누른다. 우리는 지금까지 수십 개의 서비스에서 이 과정을 반복해 왔다. 그런데 최근 로그인 화면에서 비밀번호 칸 대신 ==지문이나 얼굴 인...
가끔 이런 문자를 받습니다. "[Web발신] 고객님 앞으로 발송된 택배가 주소지 오류로 반송 예정입니다. 아래에서 확인해주세요." 뒤에는 짧은 링크 하나가 붙어 있죠. 마침 며칠 전 온라인 주문을 한 터라 무심코 손가락이 링크로 향합니다. 바로 그 찰나의 방심을 노리는 것이 ==스미싱==입니다. 스미싱은 문자(SMS)와 낚시(Phishing)를 합친 말입니...
또 비밀번호를 잊었습니다. "영문 대소문자, 숫자, 특수문자 포함 10자 이상"으로 어렵게 만들어 놓고는 정작 본인이 기억하지 못해 '비밀번호 찾기'를 누르는 풍경, 너무 익숙하죠. 그런데 요즘 로그인 화면이 조금씩 달라지고 있습니다. 비밀번호 칸 대신 ==지문이나 얼굴 인식==으로 곧장 들어가지는 서비스가 부쩍 늘었습니다. 그 뒤에 있는 기술이 바로 '패...
사용자 입력을 SQL에 직접 이어붙이면 SQL 인젝션에 노출된다. 결론부터 말하면 mysqli의 prepared statement(준비된 쿼리) 를 쓰면 값과 쿼리 구문이 분리되어 대부분의 인젝션을 원천 차단할 수 있다. 위험한 코드 ```php // 절대 이렇게 쓰지 말 것 $id = $_GET['id']; $sql = "SELECT FROM member...