먼저 프론트엔드와 백엔드 코드의 보안이 보장되어야 하며, XXS나 SQL 인젝션과 같은 공격 취약점을 피해야 합니다. 둘째, 데이터베이스 서버와 웹 서버가 분리되어야 하는데, 이는 부분적으로만 개선될 수는 없습니다. 보안 성능을 향상시킬 뿐만 아니라 웹사이트의 효율성도 향상시킵니다. 또한, 사용자 정보 중 모든 비밀번호는 데이터베이스에 저장되기 전에 특정 암호화 방법을 사용하여 암호화하는 것이 가장 좋습니다. 이렇게 하면 도난당한 경우에도 실제 비밀번호를 알 수 없습니다. 당신이 그것을 채택하기를 바랍니다!
이 질문은 큰 문제입니다... 다음 측면부터 시작하겠습니다.
데이터베이스 권한: 데이터베이스에 연결하기 위해 항상 루트를 사용하지 마세요. 웹 애플리케이션용으로 별도의 계정을 열고 권한을 최소화하세요.
데이터베이스 비밀번호: 취약한 비밀번호를 사용하지 말고 무작위로 생성된 16자 이상의 비밀번호를 사용해 보세요.
웹 서버: 데이터베이스와 동일하게 비밀번호를 최대한 복잡하게 만드세요. 루트 계정을 직접 사용하지 마세요. 필요한 경우에만 루트를 사용하세요.
웹 애플리케이션:
더 나은 DB 라이브러리나 ORM 라이브러리를 선택하고 매개변수화된 SQL 쿼리를 사용하세요. SQL 삽입을 방지하려면 매개변수를 SQL에 직접 입력하지 마세요
사용자(백엔드 관리 사용자 포함)의 비밀번호 정보를 직접 저장하지 마십시오. 솔트로 해싱한 후 저장해야 합니다
가능하다면 HTTPS를 사용해 보세요
HTML을 렌더링할 때 XSS를 방지하기 위해 출력하기 전에 인코딩을 사용해 보세요
사용자가 제어하는 서식 있는 텍스트 HTML을 출력해야 하는 경우 htmlpurifier와 같은 필터를 사용하여 XSS를 방지하세요
HTTP 동사 의미 체계를 따르고, 추가, 삭제 및 수정 작업에 POST/DELETE/PUT을 사용하고, CSRF 공격을 방지하려면 csrf_token을 추가하세요.
당분간 생각해보면 아직 웹 보안에 있어서 주의할 점이 많습니다. LZ가 직접 보안 컨설턴트를 고용하는 것을 추천합니다.
먼저 프론트엔드와 백엔드 코드의 보안이 보장되어야 하며, XXS나 SQL 인젝션과 같은 공격 취약점을 피해야 합니다. 둘째, 데이터베이스 서버와 웹 서버가 분리되어야 하는데, 이는 부분적으로만 개선될 수는 없습니다. 보안 성능을 향상시킬 뿐만 아니라 웹사이트의 효율성도 향상시킵니다. 또한, 사용자 정보 중 모든 비밀번호는 데이터베이스에 저장되기 전에 특정 암호화 방법을 사용하여 암호화하는 것이 가장 좋습니다. 이렇게 하면 도난당한 경우에도 실제 비밀번호를 알 수 없습니다. 당신이 그것을 채택하기를 바랍니다!