본문 바로가기

SQL관련

SQL Injection 예방법을 알아보자 SQL Injection은 악의적인 사용자가 악용할 수 있는 취약점 중 하나로, 사용자가 입력한 데이터를 조작하여 SQL 쿼리문을 실행하는 공격입니다. 프로시저를 작성할 때는 다음과 같은 점에 주의해야합니다. 파라미터의 타입을 명확히 지정합니다. 사용자가 입력한 값의 타입을 명시함으로써 SQL Injection 공격을 막을 수 있습니다. 예를 들어, 파라미터로 들어오는 값이 문자열인 경우 문자열의 길이와 타입을 명시해줄 수 있습니다. 사용자 입력값에 대한 검증을 수행합니다. 사용자 입력값이 허용되지 않는 문자나 특수문자를 포함하고 있는 경우 에러를 반환하도록 처리합니다. 예를 들어, 파라미터로 들어오는 값 중에서 특정 문자나 특수문자가 포함되어 있으면, 해당 값을 거부하고 에러 메시지를 반환합니다. 동적.. 더보기
회원 가입에 대한 입력/수정에 대해 물어보았다. 질문 : 회원 가입하는 insert문이랑 프로시저를 만들어줘 답변 : CREATE TABLE member ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), email VARCHAR(50) UNIQUE, password VARCHAR(100) ); INSERT INTO member (name, email, password) VALUES ('홍길동', 'honggildong@gmail.com', '1234'); 위 INSERT 문은 이름, 이메일, 비밀번호를 입력하는 예시입니다. 이메일은 UNIQUE 제약 조건을 가지도록 설정했습니다. 다음으로, 위 INSERT 문을 프로시저로 변환해보겠습니다. 이를 위해서는 MySQL에서 프로시저를 작성할 수 있는 권한이 필.. 더보기
게시판 테이블 생성에 대한 질문을 해보았다. 질문 : 게시판을 만들고 싶은데, dataase 테이블을 만들꺼야. 회원 가입을 위한 회원정보 테이블을 만들어줘, 자료형, 이름, 설명 등으로 해줘 그리고 게시판 테이블도 만들어줘, 제목, 목록, 작성자 등등 최대한 많은 정보를 담을 수 있는 테이블로, 마지막으로 게시판 테이블에 연계되는 댓글 테이블도 만들어줘, 게시판번호, 댓글, 작성자 등 많은 정보를 담을 수 있는 테이블로 말야. 게시판은 사진과 첨부파일을 추가할 수 있고, 댓글은 대댓글도 작성할 수 있게말이야 답변 : 회원정보 테이블을 만들기 위해서는 다음과 같은 구조를 가진 테이블을 생성할 수 있습니다. CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT.. 더보기