사용자 로그인 및 정보의 안전한 데이터베이스를 유지하고 계십니까?

StackOverflow https://stackoverflow.com/questions/3328000

문제

제가 만들고 있는 자선 웹사이트에 로그인 양식을 갖고 싶습니다(친구를 위한 것이며 이동 중에 배우고 있습니다). 사용자 로그인 및 정보용 데이터베이스를 구축하려면 어떤 언어/소프트웨어를 배워야 하는지 알고 싶습니다. ?메모:안전해야 하고 비교적 적당한 프로그래밍 경험이 있는 사람이라면 배우기 쉽습니다.

업데이트:나는 CMS가 로그인 등에 좋은 도구를 제공한다는 것을 이해합니다.하지만 이 모든 일은 나 혼자 하고 싶어요.

도움이 되었습니까?

해결책

당신이 할 수 있는 가장 간단한 일은 데이터베이스에 비밀번호를 입력하기 전에 비밀번호를 해시하고 솔트를 적용하는 것입니다."The Wicked Flea"는 또 다른 질문에 꽤 좋은 대답을 가지고 있습니다. 여기.

기성 CMS를 구매하는 것에 대해 생각해 보셨나요?대부분의 괜찮은 CMS에는 간단한 자선 웹사이트에 필요한 모든 기능이 포함되어 있습니다.또한 로그인 양식 문제에 대한 확실한 솔루션을 제공합니다.

편집하다

어떤 언어를 사용할지에 관해서.당신이 그것에 대해 편안하고 기꺼이 시간과 노력을 쏟는 한 그것은 실제로 그다지 중요하지 않습니다.귀하가 PHP를 배우고자 한다는 것이 귀하의 프로필에 표시됩니다.PHP로 로그인 양식을 작성하는 것이 좋은 출발점이 될 것 같습니다.데이터베이스 백엔드의 경우.다시 말하지만, 그것은 별로 중요하지 않습니다.MS Access를 사용하지 마십시오.대부분의 PHP 개발자(가정)는 MySQL이 일반적으로 PHP 웹 호스트에 포함되어 있기 때문에 MySQL을 사용하는 것 같습니다.

보안에 관해서는 해싱하고 비밀번호에 솔트를 추가하는 것이 가장 쉬운 방법입니다.다음과 같이 할 수 있습니다.

  • 사용자가 가입 링크를 클릭합니다.
  • SSL을 사용하여 가입 양식 가져오기
  • 사용자가 제출 버튼을 클릭하면
  • 해시 비밀번호.소금을 넣다.데이터베이스에 저장합니다.해시된 비밀번호에 솔트를 추가하면 공격자가 무지개 테이블 귀하의 비밀번호를 무차별 대입하여 공격하십시오.구경하다 여기 해싱 비밀번호를 관리하는 기능에 사용됩니다.
  • 사용자에게 특정 규칙에 따라 비밀번호를 생성하도록 강제할 수도 있습니다.예를 들어, 모든 비밀번호는 6자 이상, 최소 1개 이상의 숫자 등을 요구합니다.

사용자가 로그인해야 하면 다음과 유사한 작업을 수행할 수 있습니다.

  • 사용자 이름을 가져와서 삭제하세요.사용자 입력을 절대로 신뢰하지 마십시오.하나님께서 귀하의 웹사이트에 계정을 갖고 싶어 하시는지는 중요하지 않습니다.
  • 계정이 없는 사람이 다음을 통해 액세스할 수 있도록 비밀번호를 피하십시오. SQL 주입.PHP를 사용하여 이 작업을 수행할 수 있습니다. mysql_real_escape_string 기능.
  • 모든 것이 준비되면 데이터베이스를 쿼리하여 반환된 행이 있는지 확인할 수 있습니다.

마지막으로 사용자에게 비밀번호를 일반 텍스트로 이메일로 보내지 마세요.사용자가 비밀번호를 잊어버린 경우 새 비밀번호를 만들도록 허용하면 됩니다.사용자에게 이메일로 링크를 보내면 그렇게 할 수 있습니다.

솔직히 가장 좋은 방법은 이 작업을 완료하고 코드와 함께 SO에 다시 게시하는 것입니다(새 질문).거기에서 우리는 그것을 분석하고 거기서부터 가져올 수 있습니다.

그러한 라인을 따라 뭔가가 귀하의 요구 사항을 충족해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top