Mysql, 보안 문제를 발견 될 수 없습니다. 다음에 MySQL 팁에 대 한 참고 23 가지.
1. 해당 되는 경우 클라이언트와 서버-측면 연결 교차 하 고 신뢰할 수 없는 네트워크를 통과 해야, SSH 터널을 사용 하 여 해당 연결에 대 한 통신을 암호화 해야 합니다.
2. 문을 사용 하 여 암호 설정 데이터베이스 시스템에 사용자의 암호, 3 단계, 첫 번째 "Mysql-u 루트" 로그 수정 그리고 "mysql > 업데이트 Mysql.user 암호 설정 = 암호 ('Newpwd') 그리고 마지막으로 "플러시 권한을" 그것에 실행.
3. 공격 도청, 변조, 재생, 서비스 등의 거부에 대 한 감시 될 필요가 있는 가용성 및 내결함성을 포함 하지 마십시오. 모든 연결, 쿼리 및 기타 작업 ACL 액세스 제어 목록에 기반으로 하는 보안 조치를 사용 하 여 수행 됩니다. 또한 SSL 연결에 대 한 일부 지원이 있다.
4. 루트 사용자 이외의 사용자가 사용할 수 없습니다 사용자 테이블에 액세스할 수 MySQL 마스터 데이터베이스;
암호화 된 사용자 암호 암호화 및 사용자 테이블에 저장 되 면 다른 사람이 사용자 이름/암호의 해당 데이터베이스를 사용할 수 있습니다.
5. 사용자 액세스 제어 작업;에 대 한 GRANT 및 REVOKE 문을 사용합니다
6 일반 텍스트 암호를 사용 하지. 하지만 MD5 () 및 SHA1 () 및 다른 단방향 HA 함수를 사용 하 여 설정 암호;
7. 사용 하지 마십시오 단어가 사전에 할 암호;
8. 외부 위험의 50%를 제거 하는 방화벽의 사용을 DMZ 영역;에서 작동, 또는 배치를 방화벽 뒤에 데이터베이스 시스템
9. 인터넷에서 포트를 사용 하 여 Nmap 스캔 3306, 방화벽 또는 라우터;에 설정 해야 신뢰할 수 없는 네트워크에서 데이터베이스 서버의 No. 3306 TCP 포트에 액세스를 허용 하도록 텔넷 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. max_user_connections 변수 사용 하 여 주어진된 계정;에 대 한 연결의 수를 제한 하려면 Mysqld 서비스 프로세스
21 grant 문을 또한 지원 리소스 제어 옵션;
22. 시작 MYSQLD 서비스 프로세스에 대 한 보안 옵션 스위치,-지역-infile = 0 또는 1 0 경우 클라이언트 프로그램은 로컬 부하 데이터를 사용할 수 없습니다, 능력을 키우고의 예는 부여에 Mysql.user에 삽입 (사용자) ' User_name '@host_name'; 사용 하는 경우-스 킵-부여-테이블 시스템, 액세스 제어 모든 사용자 만든 것입니다 하지만 mysqladmin 플러시 권한 또는 mysqladmin를 사용할 수 있습니다 문과 모든 사용자에 게 열려 있을 수 있습니다 데이터베이스-해제 표시 기본적으로 액세스 제어를 설정 하려면 다시 로드를 건너뛸-보기-데이터베이스.
23. 1045 (28000) 오류가 발생 하는 경우 액세스가 거부 되었습니다 사용자에 대 한 '루트' @localhost '으로 비밀 번호를 재설정 해야 (를 사용 하 여 암호: 없음),: 첫 번째- 스 킵-부여-테이블 매개 변수 Mysqld를 시작 하 고 다음 mysql-u 루트 mysql, mysql을 실행 > 업데이트 사용자 암호 설정 = 암호 (이 하 ' 암호')를 사용자 = '루트' mysql > 권한을 제거 하 고 마지막으로 MySQL을 다시 시작.