2010-04-23 3 views
1

나는 PassPad의 개발자 중 한 명이며, 보안 암호 생성기와 사용자 이름 저장 시스템입니다. 아직 작업 중이지만 보안 로그인/출력 시스템을 구현하는 가장 좋은 방법은 에 대한 몇 가지 질문이 있습니다.웹 응용 프로그램에 로그인/아웃하기위한 좋은 시스템을 구현하는 방법

지금 우리가 계획하고있는 것은 로그인 시스템에 사용자 이름과 세션 키가있는 쿠키를 저장하게하는 것입니다. 이것이 모두 인증 역할을합니다. 서버는 일치시킬 두 서버를 확인합니다. 로그인/아웃시 새로운 키가 생성됩니다.

이것은 보안과 관련된 웹 응용 프로그램입니다. 사용자를기만하게하는 정보는 실제로 저장하지 않지만 보안 지향적이므로 적어도 으로 표시해야합니다. 사용자가 만족할 수있는 방법.

PHP로 로그인/아웃 시스템을 구현하는 더 좋은 방법이 있습니까? 바람직하게는 너무 많은 코딩 시간 또는 서버 리소스를 사용하지 않을 것입니다. brute-force protection과 같이 구현해야 할 것이 있습니까? 나는 어떻게 그것에 대해 갈 것인가?

답변

4

OWASP top 10 for 2010, 특히 A3 : Broken Authentication and session management을 읽었는지 확인하십시오. 이는 https에 대한 요구 사항을 이미 위반했기 때문에 중요합니다. 또한 CSRF에 대해 읽으십시오. 사람들이 귀하의 서비스에서 로그인하거나 로그 오프하도록 강요하는 것이 취약점입니다. .htaccess 디렉토리 목록 해제 : http://passpad.org/actions/

특히 보안 웹 응용 프로그램 인 경우 웹 응용 프로그램 방화벽을 실행하는 것이 좋습니다. mod_security는 무료이며 많은 공격을 막을 것입니다. 또한 wapiti (오픈 소스) 또는 acunetix ($$$)를 사용하여 취약성에 대한 응용 프로그램을 테스트해야하지만 WAF를 사용하지 않도록 설정하여 응용 프로그램을 테스트해야합니다.

무차별적인 보호 측면에서 나는 Gmail의 접근 방식을 정말 좋아한다. 그들이 "열"을 충분히 얻을 때까지 captcha로 그들을 자극하지 마십시오. 시스템에 나쁜 영향을 미치면 열을 축적 할 수 있습니다. 열은 세션이 아닌 IP 주소에 할당됩니다. 예를 들어 사용자가 2 명의 사용자 계정을 등록하는 경우 3 번째 사용자에 대해 capthca를 사용하여 메시지를 표시 할 수 있습니다. 로그인 시도가 3 번 실패하면 메시지를 표시해야합니다. 그들이 captcha를 해결하면 열 값을 낮추거나 0으로 설정하여 그들을 차갑게 만들 수 있습니다. reCpathca를 사용하십시오.

+0

의견을 보내 주셔서 감사합니다. 나는 보통 개발자가 아닌 웹 디자이너이기 때문에이 점이 나에게 조금 새로운 것이다. 우리는 팀에 보안 전문가가 있습니다. https에 대한 요구 사항을 이미 위반 한 적이 있습니까? 그게 우리가 사용하려고 계획하고있는 것입니다. 그래서 내가 그것을 위반한다면 어떻게해야하는지 알 필요가 있습니다. 나는 디렉토리 목록을 해제해야합니다. 감사. 또한 WAF 및 "열"접근에 대한 귀하의 의견에 감사드립니다. 우리는 데이터베이스에 "열"을 저장하는 것이 좋습니다? –

+0

@Brandon Wang https가 전체 세션에 사용되어야하며, 보안되지 않은 연결 (http)을 통해 세션 ID가 전송 될 수는 없습니다. 당신은 데이터베이스에 "열"을 저장해야하는데, 나는 소켓에서 직접 가져온 $ _SERVER [ 'REMOTE_ADDR']을 사용하여 "고유 ID"라는 IP 주소를 만들 것입니다. $ _SERVER [ 'X-Forwarded-For']는 다음과 같습니다. 모든 값을 포함 할 수있는 사용자 제어 변수입니다. – rook

+0

Google과 마찬가지로 로그인 중에 https 만 사용할 수 있습니까? 나는 또한 당신이 "열기"를 의미하는 것을 얻습니다. 나는 그것에 대해 알게 될 것이다. 당신은이 분야에 매우 정통한 것처럼 보입니다. 자를 대가로 PassPad를 도와 주실 생각하십니까? –

관련 문제