교육 과정에서 실제 기본 키 (DB 키뿐만 아니라 모든 기본 접근 자)를 사용자에게 노출시키는 것은 잘못된 아이디어라고 들었습니다.
공격자가 자신이 아닌 내용을 읽을 수 있기 때문에 항상 보안 문제라고 생각했습니다.
이제 사용자가 어쨌든 액세스 할 수 있는지 확인해야하므로 그 뒤에 다른 이유가 있습니까?
또한 사용자가 어쨌든 데이터에 액세스해야하므로 외부 세계를위한 공개 키가 있어야합니다. 이제 공개 키는 기본 키와 같은 문제가 있습니까?
어쨌든 왜 그런지에 대한 예의 요청이 있었으므로 여기에 하나가 있습니다. 질문은이 예제에 적용되는 경우뿐만 아니라 원리 자체에 관한 것임을 명심하십시오. 다른 상황에 대한 답변은 명시 적으로 환영합니다.
활동을 처리하고, 여러 UI와 시스템 간 통신을위한 하나 이상의 자동화 된 API가있는 애플리케이션 (Web, Mobile) (예 : 회계 부서는 수행 한 작업에 따라 고객에게 청구하는 금액을 알고 싶어 함). 애플리케이션에는 여러 고객이 있으므로 데이터 분리 (논리적으로 데이터는 동일한 DB에 저장 됨)는 시스템에 있어야합니다. 각 요청은 무엇이든 유효성을 검사합니다.
액티비티는 매우 세분화되어 일부 컨테이너 오브젝트에 함께 있으므로 "태스크"라고합니다.
세 가지 사용 사례 :
- 사용자 A는 사용자 B를 일부 작업으로 보내서 일부 활동을 수행 할 수 있도록 링크 (HTTP)를 보냅니다.
- 사용자 B는 건물 밖으로 나가서 모바일 장치에서 작업을 열어야합니다.
- 계정은 고객에게 작업에 대한 비용을 청구하려고하지만 응용 프로그램의 REST-API를 참조하는 일부 코드로 작업 / 활동을 자동으로로드하는 타사 계정 시스템을 사용합니다.
각 유스 케이스에는 에이전트가 태스크 및 활동에 대해 주소 지정 가능한 식별자가 있어야합니다 (또는 더 쉬워집니다).
ON UPDATE CASCADE
(MySQL의 특정?) 그 위해 만들어진, 문제가있는 경우 보안이 다음 액세스 검사가 백엔드에 있어야 어쨌든 사용자를 신뢰하지 않지만