2010-08-09 11 views
0

가능한 중복은 :
PHP Session Security웹 응용 프로그램을 보호하기위한 기본 원칙은 무엇입니까?

난 그냥 웹 응용 프로그램의 기본 (기본 코드)를 코딩 마친 나는 기본 사용자 시스템을 통합했습니다. 이것은 내 첫 번째 웹 애플 리케이션입니다 그래서 내가 그것을 확보하는 데 사용해야하는 것들이 궁금하니? 나는 이미 mysql_real_escape_string()strip_tags()과 같은 것을 알고 있지만 그 밖의 무엇입니까? 쿠키와 세션을 통해 사용자 이름과 비밀번호를 안전하게 저장하려면 어떻게해야합니까? 모든 팁, 자습서 등을 크게 감사드립니다!

+0

온라인으로 관련 정보가 많이 있습니다. 여기에 상대적인 주제가 하나 있습니다 : http://stackoverflow.com/questions/328/php-session-security. 그리고 다른 : http://stackoverflow.com/questions/2119083/php-tutorial-that-is-security-accuracy-and-maintainability-conscious –

+3

http://stackoverflow.com/questions/72394/what-should-a - 개발자 - 대중 앞에서 - 공개 웹 사이트는 동일한 주제를 다룬 전설적인 질문입니다. – ggg

+0

@ggg 감사합니다! – williamg

답변

2

OWASP에는 가장 일반적인 취약점과 이러한 취약점을 완화하는 방법에 대한 권장 사항에 대한 유용한 가이드가 있습니다. 그들이 다루는 attacksvulnerabilities을 숙지해야합니다.

이 과정을 읽는 데는 시간이 걸릴 수 있지만 너무 많지는 않습니다. 어쩌면 그들의 top 10 security risks에 집중해야합니다.

+0

내가 혼란스러워하는 한 가지는 쿠키에 사용자 이름과 암호를 저장하지 않기 위해 여러 곳에서 (링크 ggg를 포함하여) 읽었습니다. 그런 다음 사용자가 매번 로그인 할 필요가 없도록 저장하는 방법. 아니면 쿠키에 일반 텍스트로 저장하지 마십시오 (md5로 인코딩하면됩니까?) – williamg

+0

대신 세션 ID를 사용하십시오. 세션 ID는 쿠키에 있으며 서버에서는 사용자 이름과 기타 세션 변수를 ID와 연결합니다. 세션 ID에도 보안 위험이 있으므로 세션 수정과 같은 내용도 확인해야합니다. –

+0

하지만 사용자가 브라우저를 닫으면 세션과 데이터 간의 연결이 끊어지지 않습니까? – williamg

1

CWE/SANS Top 25 Most Dangerous Software Errors 많은 도움이되었습니다.

real_escape_string은 MySql 삽입과 만 대결합니다. 또한 사용자가 숫자를 입력해야하는 경우 (예 : index.php?newsid=3과 같은 URL에서 newsid=n을 읽는 경우) $_GET['newsid'] 앞에 (int)을 추가하여 $_GET['newsid']이 정수인지 확인하십시오.

몇 가지 기본적인 것들;) 링크가 도움이되기를 바랍니다.

관련 문제