목록hacking study (69)
wonder

회원가입 조건 구현 회원가입을 하기위해서 여러 조건이 필요합니다. 입력폼이 빈칸이 되면 안되는 것 부터 시작해서 아이디는 중복되면 안되고, 비밀번호는 특수기호를 반드시 포함해야하고 글자 수를 지켜야합니다. 그 기능들을 다 if 조건으로 구현해보겠습니다. 빈칸 조건 구현 아무것도 입력안했을 때 또는 하나라도 까먹고 입력안했을 때, 경고 알림창이 뜨고 이전 페이지로 돌아갑니다. POST형식으로 정보들을 받아온 뒤 이름부터 주소 까지 만약 하나라도 비어있다면 입력하지 않았다고 경고창을 띄웁니다. 모두 값을 입력했으면 다음 조건 검사로 넘어갑니다. 이름 조건 구현 그 다음은 순서대로 조건 검사를 실시합니다. 이름이 한글만 허용할 때는 패턴을 만들어주고 특수기호, 영어 대문자, 소문자, 숫자까지 일단 패턴을 다 ..

테이블 구성 원래는 이렇게 지저분했던 테이블 모양을 바꿨습니다. 테이블 구조에 대해서 배웠기 때문에 이렇게 정리해서 배치 할 수 있었습니다. table의 구성에는 tr은 row로 행을 하나 더 만드는 것입니다. th은 head로 게시판으로 쳤을 때 제목, 이름, 날짜 같은 것입니다. td은 내용이 들어가는 cell입니다. 이렇게 있는데 처음에는 뭐가 뭔지 헷갈리실 겁니다. th td th td 로 구성해도 되고 th th td td 로 해도 됩니다. 자기가 원하는대로 상관없습니다. 테이블을 만든다음 테이블 너비는 280으로 줄였고, 시각적으로 보일 수 있도록 border 1px 넣어줘서 모양을 만들었습니다. 그 다음 원래 하나로 되어있던 로그인 버튼을 td colspan="2" 로 두 개의 열을 합쳤습니..

union select란 쉽게 말해 select문을 한번 더 쓸 수 있게 해주는 존재입니다. 두개의 쿼리를 합쳐줍니다. 합치긴 합치는데 어떻게 결과가 나오나? 원래는 select id from table union select idx from table2 라면 idx 칼럼명은 없어지고 데이터만 id 밑에 들어오게 됩니다. SELECT id FROM table1 union select 4; 이런식으로 임의의 숫자 또는 문자를 넣었을 때 테이블에 저장되어 있지 않아도 결과로 뜹니다. 하지만 union select를 사용하려면 조건은 항상 열 개수를 맞춰줘야 합니다. 열 개수를 맞춰 준다면 이렇게 각 열마다 추가가 됩니다. select uid,pwd,name,memo from board union select..

1. 식별&인증 동시 2. 식별&인증 분리 3. 동시 (+해시암호화) 4. 분리 (+해시암호화) 5. 동시 (개행) 4. 식별&인증 분리 (+해시암호화) 2. 식별&인증 분리 와 겹치는 부분이 많습니다. 일단 여기 까지는 2. 식별&인증 분리 와 같구요. 테스트로 결과값 $row를 print_r(또는 echo)로 출력시켜보면 데이터가 모두 나온걸 볼 수 있습니다. 오류가 있을 때 출력시켜보면 문제가 무엇인지 확인할 수 있습니다. $hashpwd 변수는 입력한 비밀번호 $pwd를 hash(SHA256버전)으로 바꿔줍니다. 참고로 hash(md5, $pwd) 도 가능합니다! $dbpwd 변수는 $row의 DB데이터에서 비밀번호만 가져온 것입니다. 즉 DB비밀번호입니다. SHA256 은 새로고침했을 때 다른값..

1. 식별&인증 동시 2. 식별&인증 분리 3. 동시 (+해시암호화) 4. 분리 (+해시암호화) 5. 동시 (개행) 암호화 방법 사실 암호화에 대해서 막히는 부분이 있어서 끙끙 앓았습니다. 암호화에는 어떤 방법이 있는지 먼저 이해해야 할 것 같습니다. 양방향 AES 키의 암호화>>복호화가 가능합니다. 키기 공개될 경우 원문을 해독할 수 있기 때문에 키의 보안은 필수입니다. 그래서 키를 알게되면 사실상 끝났다고 볼 수 있기 때문에 보안에 취약합니다. 단방향 (해시) md5: 128비트 해시입니다. 보안취약 개인정보 암호화에 사용하는 것은 권장하지 않습니다.주로 프로그램이나 파일이 원본과 같은지 확인하는 데에 쓰입니다. SHA-1:160비트 해시입니다. password('비밀번호') 로 사용했었던 건 sha..

로그인 구현 방식에는 1. 식별&인증 동시 2. 식별&인증 분리 3. 동시 (+해시암호화) 4. 분리 (+해시암호화) 5. 동시 (개행) 이 있다고 말씀드렸습니다. 제가 이전에 구현했던 방식으로는 PASSWORD(str) 암호화 방식이라서 1번째 방식으로 분류하겠습니다. 이 방법은 간단하지만 보안에 취약하기 때문에 복구를 못하도록 해시암호화가 꼭 필요합니다. 2. 식별&인증 분리 방법으로 구현해보겠습니다. 항상 세션이 활성화되어있어야 되기 때문에 lib.php에 session_start(); 적어줍니다. 그리고 $connect 로 MYSQL에 연결 되어있음을 변수로 지정했습니다. lib.php를 include 해주구요, 로그인에서 아이디와 패스워드를 포스트 방식으로 가져왔습니다. 패스워드와 함께 불러오는..