Mysql, 보안 문제를 발견 될 수 없습니다. 다음에 MySQL 팁에 대 한 참고 23 가지.
1입니다. 클라이언트와 서버-측면 연결 해야하는 경우 확장 하 고 신뢰할 수 없는 네트워크를 통해 전달, SSH 터널을 사용 하 여 해당 연결에 대 한 통신을 암호화 해야 합니다.
2입니다. 데이터베이스 시스템에 사용자의 암호, 3 단계, 첫 번째 "Mysql-u 루트" 로그를 수정 하려면 암호 설정된 문을 사용 하 여 다음 "mysql > 업데이트 Mysql.user 암호 설정 = 암호 ('Newpwd')", 그것에 "플러시 특권"의 최종 구현입니다.
3입니다. 도청, 변조, 재생, 서비스 등의 거부에 대 한 감시 될 필요가 있는 공격 가용성 및 내결함성을 포함 하지 마십시오. 모든 연결, 쿼리 및 기타 작업 ACL 액세스 제어 목록에 기반으로 하는 보안 조치를 사용 하 여 수행 됩니다. 또한 SSL 연결에 대 한 일부 지원이 있다.
4입니다. 루트 사용자 이외의 모든 사용자가 사용할 수 없습니다 사용자 테이블에 액세스할 수 MySQL 마스터 데이터베이스;
암호화 된 사용자 암호 암호화 및 사용자 테이블에 저장 되 면 다른 사람이 사용자 이름/암호의 해당 데이터베이스를 사용할 수 있습니다.
5입니다. GRANT 및 REVOKE 문을 사용 하 여 사용자 액세스 제어 작업;
6입니다. 일반 텍스트 암호를 사용 하 여 대신 사용 하면 단방향 MD5 () 및 SHA1 () 설정할 암호;
7입니다. 암호; 할 사전에 단어를 사용 하지 마십시오
8입니다. 외부 위험의 50%를 제거 하는 방화벽을 사용 하 여 있도록 DMZ 영역;에서 작동, 또는 배치를 방화벽 뒤에 데이터베이스 시스템
9입니다. 인터넷에서 3306 포트를 스캔 Nmap 사용 하 여 테스트할 수 있습니다 또한 허용 하지 않는 액세스를 데이터베이스 서버의 TCP 포트 번호 3306 신뢰할 수 없는 네트워크에서 방화벽 또는 라우터;에 설정 하는 데 필요한 그래서 텔넷 server_host 3306를 사용 하 여
10입니다. 어디 같은 악의적인 들어오는 불법 인수를 방지 하기 위하여 id = 234, 다른 어디를 입력 id 234를 = 또는 1 = 1 모두 표시 됩니다, "또는" 문자열을 사용 하 여 Web form에 추가 사용 이중 인용 부호, 잘 번호 23%를 대표 하는 동적 URL에 22% % 27 작은따옴표를 나타냅니다; 그리고 MySQL 데이터베이스에 체크 되지 않은 값을 전달 하는 것은 매우 위험;
11입니다. MySQL;에 데이터를 전달할 때 크기를 확인
12입니다. 데이터베이스에 연결 하는 응용 프로그램 필요 일반 사용자 계정을 사용 해야 합니다, 그리고만 열 몇 가지에 대 한 권한을 사용자;
13입니다. 각 프로그래밍 인터페이스에는 특정 '이스케이프 문자' 함수를 사용 하 여 (c C + + PHP Perl 자바 jdbc, 등.);
일반 텍스트, SSL 및 SSH 암호화 방법 데이터 전송;에서 전송 되는 적은 데이터를 사용 하는 MySQL 데이터베이스는 인터넷에 있어야 사용
14입니다. Tcpdump-l-내가 eth0-w-src 또는 DST 포트 3306 같은 전송 된 데이터의 보안을 보려면 tcpdump 및 문자열 도구를 사용 하는 방법 | Strings。 일반 사용자;와 MySQL 데이터베이스 서비스를 시작 하려면
15입니다. 사용 하는 테이블의 조인 기호, 선택 매개 변수-스 킵-심볼릭-링크;
16입니다. MySQL 디렉터리 수에 데이터베이스 서비스를 시작 하는 사용자만 읽고 하 고 쓰기 권한이 파일;
17입니다. 당신은 수 없습니다 지불 프로세스 또는 관리 되지 않는 사용자 슈퍼 권한 Mysqladmin 프로세스는 현재 실행 중인 쿼리 텍스트를 열거할 수 있습니다.; 그리고 슈퍼 권한 클라이언트 연결을 서버 매개 변수 상태 및 제어 복사 데이터베이스 서버를 실행 하는 서버를 변경 하는 데 사용할 수 있습니다.
18. 파일 권한 테이블에 로드 데이터 '/ etc/passwd'의 발생을 방지 하기 위해, 관리자가 아닌 사용자에 게 지급 되지 않습니다 선택한 다음 사용 표시 문제;
19입니다. DNS 서비스 회사의 서비스를 신뢰 하지 않는 경우 호스트 이름에 IP 숫자 주소 테이블; 허용만 설정할 수 있습니다.
20입니다. MYSQLD 서비스 프로세스; 특정된 계정에 대 한 연결의 수를 제한할 수 있도록 max_user_connections 변수를 사용 하 여
21 grant 문을 또한 지원 리소스 제어 옵션;
22입니다. 보안 옵션 스위치는 MYSQLD에 대 한 시작 서비스 프로세스,-로컬 infile = 0 또는 1 0 경우 클라이언트 프로그램은 로컬 부하 데이터를 사용할 수 없습니다, 능력을 키우고의 예는 부여에 Mysql.user에 삽입 (사용자) ' 사용자 _name ' 'host_name'; 사용 하는 경우 @--스 킵-부여-테이블 시스템 액세스 제어 모든 사용자 만든 것입니다 하지만 mysqladmin 플러시 권한 또는 mysqladmin를 사용할 수 있습니다 기본적으로 액세스 제어를 설정 하려면 다시 로드, 표시 데이터베이스 문을 모든 사용자에 게 오픈 하 고 해제할 수 있습니다--skip-쇼-데이터베이스.
23입니다. 오류 1045 (28000) 발생 하는 경우 암호를 다시 설정 해야 합니다 사용자 'root' @ 'localhost' (를 사용 하 여 암호: 없음)에 대 한 액세스가 거부 되었습니다. 사용-스 킵-부여-테이블 매개 변수, MYSQLD를 시작 하 고 다음 mysql-u 루트 mysql mysql 실행 > 업데이트 사용자 암호 설정 = 암호 (' 암호 ') 여기서 사용자 = '루트'; Mysql > 플러시 특권;