php - 사용자에게 액세스 권한이 있는지 확인
仅有的幸福
仅有的幸福 2017-05-16 13:01:46
0
8
790

문제가 있습니다. URL 매개변수를 통해 데이터를 쿼리할 때 일반적으로 데이터는 id를 통해 쿼리됩니다.
예를 들어 주문 세부정보를 쿼리하려는 경우 id는 주문 세부정보 테이블의 ID입니다.

"http://localhost/index/order/detail/id/3.html"

그러면 다른 사람의 주문 내역을 조회하기 위해 이 ID를 변경할 수 있나요?
주문 세부정보를 작성할 때 이 고객의 주문인지 확인해야 합니까? 매번 판단하기가 번거로우신가요?
또는 주문 번호를 사용하여 문의하시겠습니까?

仅有的幸福
仅有的幸福

모든 응답(8)
给我你的怀抱

ID가 백그라운드로 전달되면 데이터베이스 쿼리는 id=id의 조건만 쿼리하는 것이 아닙니다
사용자 로그인의 uid나 세션에 저장된 사용자 계정 등 많은 조건도 가져옵니다

물론 SQL 주입을 방지하기 위한 조치를 취하는 것이 좋습니다. 사람들이 id=1"; 형식으로 SQL에 액세스하면 SQL이 매우 위험해집니다.

仅有的幸福

권한 문제는 백엔드에서 판단해야 합니다. 논리적으로 말하면 프런트엔드는 주문 ID를 서버에 전달해야 하며(여기서 url 매개변수를 전달함) 백엔드는 테이블을 조회하여 데이터를 프런트엔드로 반환합니다. . 권한 문제와 관련하여 백엔드는 프런트 엔드로부터 인터페이스 호출 정보를 받은 후 사용자에게 이 인터페이스를 호출할 권한이 있는지 먼저 결정할 수 있습니다. 그렇다면 데이터는 합리적입니다. 그렇지 않은 경우에는 이러한 방식으로 액세스가 제어되지 않는다고 직접 반환됩니다.

过去多啦不再A梦

실제 순서는 혼란스럽습니다. 요청은 실제로 데이터 테이블의 기본 키 필드가 아니므로 직접 변경해야 합니다.

PHPzhong

주문 세부정보를 보려면 주문 ID와 현재 사용자 ID라는 두 개 이상의 매개변수가 필요합니다. 백엔드는 먼저 이 두 매개변수를 올바르게 수신했는지 확인한 다음 주문 ID를 기반으로 해당 주문 정보를 찾은 다음 현재 사용자 ID를 주문 정보의 주문 사용자 ID와 일치시켜야 합니다. 액세스 권한이 없다는 메시지를 표시합니다.

曾经蜡笔没有小新

1. uuid 등 동일한 ID를 주문 쿼리의 기준으로 사용할 수 없습니다.
2. 주문 테이블에는 현재 주문 데이터가 있는 필드가 포함되어 있습니다.

phpcn_u1582

사용자 UID와 주문 ID의 관계는 &&입니다.

黄舟

주문 확인 시 다음과 같아야 합니다.

으아악
PHPzhong

1. 먼저 사용자가 로그인했는지 확인하고 세션을 얻어서 확인합니다.
2. 사용자 ID를 기반으로 사용자에게 주문 세부정보에 대한 액세스 권한이 있는지 확인합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿