클라이언트가 클라이언트 데이터에 대한 보고서를 로그인하고 볼 수있는 복잡한보고 응용 프로그램이 있습니다. 여러 컨트롤러를 사용하여 데이터베이스 호출이있는 응용 프로그램의 여러 섹션이 있습니다. 클라이언트 A가 헤더 조작을 통해 클라이언트 B의 정보를 얻지 못하게해야합니다.Zend Framework에서 DB로 이동하는 모든 쿼리를 검사하는 방법
시스템에서 인증하고 clientID 및 roleID를 할당합니다. roleID> 1이면 데이터를 호스팅하는 회사에서 일한다는 것을 의미하며 모든 클라이언트 정보를 볼 수 있습니다. 내가 만들 포괄 모두는 기본적으로 다음과 같이 작동 : I "는 같은 코드를 삽입 할 수있는 방법
if($roleID > 1) {
...send query to database
}else {
if(...does this query select a record with clientID other than my $auth->clientID){
do not execute query
}else {
execute query
}
}
문제는 내가이 서버로가는 모든 쿼리에 대해 실행하려는입니다 ... 로드 블록 "응용 프로그램과 DB 사이에? 이미 Zend_Profiler를 사용하여 쿼리를 살펴본 결과 어떻게 든 가능하다는 것을 알았으므로 프로파일 러 코드에서이를 식별 할 수는 없습니다 ...
필자는 언제나 인증 기능을 작성하고 그런 식으로 선택한 쿼리를 전달할 수 있지만, 모든 호출에서 구현하기가 더 쉬울 것이고 미래의 증거가 될 것입니다. 어떤 도움을 주셔서 감사합니다.
나는 ZFdebug 툴바를 사용하는 경향이있다. [데이터베이스 : 각 SQL 쿼리의 전체 목록과 각 시간] http://jokke.dk/software/zfdebug – tawfekov