2010-12-26 3 views
0

php/mysql에서 소셜 웹 애플리케이션을 개발 중입니다. 보안 구현 방법에 대한 조언을 듣고 싶습니다. 나는 다음과 같은 것을 계획하고있다. - 프리젠 테이션 레벨에서, 데이터를 읽거나 쓰거나 업데이트 할 때마다 데이터베이스 레벨에서 자격이있는 아이템/콘텐트 만 볼 수 있도록 제한한다. 그 사람이 데이터의 해당 부분과의 상호 작용에 대한 권리를 가지고 있는지 확인합니다. 따라서 각 작업에 대해 데이터베이스 레벨에서 다른보기 수준 &의 보안 계층이 두 개 있습니다. 오버 헤드가 두배가 될까요? 이것은 단지 내부 보안 문제를 처리 당연히소셜 네트워크 웹 응용 프로그램에서 보안을 어떤 수준으로 구현해야합니까?

..

상황을 처리하는 좋은 방법처럼 들리 겠지만 할 이유는 사용자가 방금, eligebility의 많은 다른 수준을 가질 수 없습니다 필요

답변

1

나는 보안이 필요한 애플리케이션이라면 이런 식으로해야한다고 말하고 싶다.

우리는 비슷한 방식으로 작동하는 몇 가지 응용 프로그램을 가지고 있습니다. 우리는 응용 프로그램과 데이터베이스 수준 모두에서 권한을 테스트합니다. 그 중 장점은 똑같은 보안 모델이 적용된 동일한 데이터 스토어를 활용하는 느슨하게 관련된 여러 개의 응용 프로그램을 가질 수 있다는 것입니다.

또 다른 이점은 응용 프로그램이 pwnd 인 경우 데이터베이스를 손상시키는 것이 훨씬 더 어렵다는 것입니다.

우리는 앱이 테이블을 직접 조작 (선택/삭제/등)하지 못하게합니다. 대신 모든 것이 저장 프로 시저를 거칩니다. 모든 proc은 userid (추측 할 수없는)를 취하고 사용자가 요청 된 기능을 수행 할 수 있는지 내부적으로 확인합니다. 그렇지 않으면 우리는 조용히 실패합니다. 부수적 인 이점은 SQL 인젝션에 면역이된다는 것입니다.

데이터베이스가 자체 포함되어 있고 자신의 권한 검사를 실시하는 것 외에도 유효한 수퍼 유저 계정을 획득 할 수 있었을지라도 큰 피해를 입히는 데 많은 시간이 걸립니다. 우리가 db 및 app 사용을 적극적으로 모니터링 할 경우 진행중인 공격을 감지하고 중지하여 모든 노출을 제한 할 수있는 기능이 있습니다.

기억에 남는 사람이 아니라면 편집증 일뿐입니다. 그리고 그들은 거의 항상 있습니다. ;)

관련 문제