2012-01-23 4 views
0

백엔드에 관리 패널이있는 웹 사이트를 구축 한 것은 처음이며 보안 문제에 관심이 많아서 무엇을 놓쳤는 지 알고 싶습니다.일반 보안 조언 및 SSL 인증서

세부

  • 관리자 패널은 모든 사용자가 처음 최소화하기 위해 MySQL 데이터베이스에 암호를 저장하는 관리자 패널
  • Blowfist (bcrypt를) 사용하려면 로그인해야합니다
  • 주요 웹 사이트에서 액세스 할 수 없습니다 무지개 표의 위험도
  • 모든 암호는 기호 az, 0-9를 사용하며 8 자입니다.
  • 10은 bcrypt의 비용 요소로 사용됩니다. 무차별 공격을 최소화합니다.
  • 적절한 작업에 대한 제한된 권한을 가진 여러 MySQL 사용자 (예 : 만 해당) 모든 사용자 입력이 mysql_real_escape_string를 통해 이스케이프
  • () +를 htmlentities
  • 서버 측 + 클라이언트 측 입력 유효성 검사는
  • 모든 사용자 입력에 적합한 수준으로 제한됩니다
  • 모든 $ _GET 변수 전에 검증
  • 사용자가 민감한 데이터
를 게시 할 필요가 없습니다 서버 측 세션 - 클라이언트 측 쿠키를 사용하지 않는
  • 관리자 패널을 처리하는

    그리고 그게 전부입니다. 지금까지 내가 어떻게하고 있니? 또한이 문제에 대해 SSL 인증서가 필요합니까? 모든 조언과 제안을 높이 평가하고 미리 감사드립니다!

  • +0

    아래의 위대한 답변에 대한 추가 정보와 마찬가지로 비밀번호는 "길이가 8 자"입니다. 이것은 그것이 그보다 적거나 많을 수 없다는 것을 의미합니까? 패스워드의 길이를 설정하면 훨씬 쉽습니다. 대신 8 ~ 14 자 정도의 범위를 사용하십시오. –

    +0

    @cillosis - 개인적으로 저에게 묻는다면, 20 자 길이의 암호를 만드는데 신경 쓰지 않을 것이지만, 사용자들이 어려움을 겪을 것이라는 것을 알고 있습니다. 8은 허용되는 최소값이며 모든 사용자는 phpmyadmin을 통해 수동으로 관리됩니다. 나는 각 로그인에 대해 역동적으로 생성 된 소금과 함께 복어를 사용하고 있다는 것을 고려할 때 여전히 8 문자가 나쁜가요? – Mortis

    +2

    필자의 관심사는 필연적으로 길이가 고정 된 것만 큼 고정 된 길이가 아닙니다. –

    답변

    1

    예. 특히 클라이언트 이름과 비밀번호와 같은 클라이언트와 서버 간의 통신을 암호화하기 위해 SSL 인증서 (구입 또는 자체 서명)가 필요합니다. 그렇지 않으면 네트워크에 액세스 할 수있는 사람 (특히 무선 네트워크를 사용하는 모든 사용자)이 이러한 자격 증명을 모니터하고 가로 채게됩니다.

    또한 로그인 (적어도!)이 일반 HTTP가 아닌 HTTPS를 통해 이루어져야합니다. 그렇지 않으면 SSL 인증서 설치가 도움이되지 않습니다.

    +1

    고마워요! 자체 서명 인증서는 모든 브라우저에서 쉽게 지원할 수 없기 때문에 구입 한 제품을 선호합니다. 모든 경우가 아니더라도 대부분 사용자가 수동으로 인증 인증서를 설치해야하며 매우 현명하지 않다고 생각합니다. – Mortis

    2

    나는 지금까지 어떻게하고 있습니까?

    당신이 시작했고 도움을 요청합니다. 공정한 소리.

    또한이 문제에 대해 SSL 인증서가 필요합니까?

    귀하의 필요에 따라 다릅니다. 보안은 맥락에서 벗어난 것이 아니므로, 예를 들어 지금까지 한 모든 것을 보호 할만한 가치가 없다면 단지 불필요한 것입니다.

    무엇이 무엇인지에 대한 시작을 알기 원하면 OWASP website에 좋은 소개를 얻을 수 있습니다. 에 질문에 개략적으로 설명하는 포인트가 많이 있습니다.

    귀하의 특정 질문에 대한 답변을 얻으려면이 사이트와 관련이 없습니다. 그래서이 대답은 사실 더 긴 설명입니다.

    +0

    실로! OWASP는 제가 연구를 시작할 때 제가 처음 방문한 장소 중 하나였습니다. 나는 그들이 특별히 시동을 걸었 기 때문에 자신의 치트 시트를 아주 좋아했습니다. – Mortis