네트워크 관점에서 MySQL 데이터베이스의 보안을 향상시키는 방법에 대해 이야기해 보세요
MySQL 데이터베이스를 네트워크에 연결할 때 몇 가지 특별한 보안 문제가 발생합니다.
네트워크 연결을 위해 특별히 사용자를 생성하는 것은 나쁜 생각이 아닙니다. 이렇게 하면 필요한 최소한의 권한이 부여되므로 DROP, ALTER 또는 CREATE 권한과 같은 사용자 권한은 부여되지 않습니다. 유형 테이블에서만 SELECT 권한을 부여하고 주문 테이블에서만 INSERT 권한을 부여할 수 있습니다. 또한 이는 최소 권한 원칙을 적용하는 방법에 대한 예입니다.
팁: 이전 콘텐츠에서는 문제를 일으킬 수 있는 문자를 제거하는 PHP의 addlashes() 함수와 Stripslashes() 함수에 대해 이야기했습니다. MySQL 데이터베이스에 데이터를 보내기 전에 이 작업을 수행하고 일반적인 데이터 정리를 수행하는 것이 매우 중요합니다. 숫자 데이터가 실제로 숫자 데이터인지 확인하기 위해 doubleval() 함수를 사용했다는 것을 기억하실 것입니다. 우리가 자주 범하는 실수 중 하나는 이를 잊어버리는 것입니다. 사람들은 종종 addlashes()를 사용하는 것을 기억하지만 숫자 데이터를 확인하는 것을 잊어버립니다.
사용자의 모든 데이터는 자주 확인해야 합니다. HTML 양식이 옵션 상자와 버튼으로 구성되어 있더라도 누군가가 URL을 수정하려고 시도하여 스크립트에 계속 액세스할 수 있습니다. 또한 사용자 데이터의 크기도 확인해야 합니다.
사용자가 입력한 비밀번호나 기밀 데이터를 데이터베이스에 저장해야 하는 경우, SSL(Secure Sockets Layer, 암호화된 소켓 레이어)이 아닌 경우 이러한 데이터는 브라우저에서 전달된다는 점에 유의하세요. 일반 텍스트 서버의 브라우저에. SSL 사용에 대해서는 나중에 이야기하겠습니다.
위험한 구성 요소 제거
MySQL 데이터베이스의 기본 구성에는 일부 불필요한 구성 요소가 있으므로 고려할 수 있습니다. 다음 제안 사항:
1. LOAD DATA LOCAL INFILE 명령을 비활성화합니다.
이 명령을 사용하면 사용자는 로컬 파일을 읽고 다른 운영 체제의 파일에 액세스할 수도 있습니다. 이는 공격자가 중요한 정보를 수집하는 데 도움이 될 수 있습니다. 데이터베이스를 해킹하기 위해 애플리케이션 취약점을 악용합니다. 이 지시문을 비활성화하려면 MySQL 데이터베이스의 my.cnf 파일에 set-variable=local-infile=0을 삽입해야 합니다.
2. 테스트 데이터베이스 삭제
테스트 목적으로 기본 "테스트" 데이터베이스가 있습니다. 이 데이터베이스는 보안 위험이 있으며 익명 사용자가 액세스할 수 있으므로 가능한 한 빨리 mysql> 데이터베이스 테스트 명령을 사용하여 삭제해야 합니다.
3. 기록 파일 삭제
MySQL 서버에는 설치가 잘못되었을 때 문제를 찾는 데 도움이 되는 기록 파일이 있습니다. 기록 파일에는 비밀번호와 같은 민감한 정보가 포함되어 있습니다. 이 정보를 공격자가 획득하면 데이터베이스에 막대한 보안 위험이 발생합니다. 설치가 성공적으로 완료되면 히스토리 파일은 더 이상 사용되지 않으므로 cat /dev/null > ~/.mysql_history 명령을 사용하여 파일 내용을 삭제할 수 있습니다.
[관련 권장 사항]
MySQL 데이터베이스의 보안을 개선하세요(1)
MySQL 데이터베이스의 보안을 개선하세요(2)
MySQL 데이터베이스의 보안을 개선하세요. MySQL 데이터베이스 보안(3)
위 내용은 MySQL 데이터베이스 보안 강화 (4)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!