문제가 있습니다. URL 매개변수를 통해 데이터를 쿼리할 때 일반적으로 데이터는 id를 통해 쿼리됩니다.
예를 들어 주문 세부정보를 쿼리하려는 경우 id는 주문 세부정보 테이블의 ID입니다.
"http://localhost/index/order/detail/id/3.html"
그러면 다른 사람의 주문 내역을 조회하기 위해 이 ID를 변경할 수 있나요?
주문 세부정보를 작성할 때 이 고객의 주문인지 확인해야 합니까? 매번 판단하기가 번거로우신가요?
또는 주문 번호를 사용하여 문의하시겠습니까?
给我你的怀抱2017-05-16 13:03:46
ID가 백그라운드로 전달되면 데이터베이스 쿼리는 id=id의 조건만 쿼리하는 것이 아닙니다
사용자 로그인의 uid나 세션에 저장된 사용자 계정 등 많은 조건도 가져옵니다
물론 SQL 주입을 방지하기 위한 조치를 취하는 것이 좋습니다. 사람들이 id=1"; 형식으로 SQL에 액세스하면 SQL이 매우 위험해집니다.
仅有的幸福2017-05-16 13:03:46
권한 문제는 백엔드에서 판단해야 합니다. 논리적으로 말하면 프런트엔드는 주문 ID를 서버에 전달해야 하며(여기서 url 매개변수를 전달함) 백엔드는 테이블을 조회하여 데이터를 프런트엔드로 반환합니다. . 권한 문제와 관련하여 백엔드는 프런트 엔드로부터 인터페이스 호출 정보를 받은 후 사용자에게 이 인터페이스를 호출할 권한이 있는지 먼저 결정할 수 있습니다. 그렇다면 데이터는 합리적입니다. 그렇지 않은 경우에는 이러한 방식으로 액세스가 제어되지 않는다고 직접 반환됩니다.
PHPz2017-05-16 13:03:46
주문 세부정보를 보려면 주문 ID와 현재 사용자 ID라는 두 개 이상의 매개변수가 필요합니다. 백엔드는 먼저 이 두 매개변수를 올바르게 수신했는지 확인한 다음 주문 ID를 기반으로 해당 주문 정보를 찾은 다음 현재 사용자 ID를 주문 정보의 주문 사용자 ID와 일치시켜야 합니다. 액세스 권한이 없다는 메시지를 표시합니다.
曾经蜡笔没有小新2017-05-16 13:03:46
1. uuid 등 동일한 ID를 주문 쿼리의 기준으로 사용할 수 없습니다.
2. 주문 테이블에는 현재 주문 데이터가 있는 필드가 포함되어 있습니다.
PHPz2017-05-16 13:03:46
1. 먼저 사용자가 로그인했는지 확인하고 세션을 얻어서 확인합니다.
2. 사용자 ID를 기반으로 사용자에게 주문 세부정보에 대한 액세스 권한이 있는지 확인합니다.