문제

엔티티 데이터 업데이트와 접근 방법에 대한 팀에 대한 논의가 있습니다. 이것은 보안 프레임 워크이므로 여기에 제약과 아이디어가 있습니다.

  1. DB의 모든 테이블에는 GUID 인 PK가 있습니다. 이것은 멀티 노드 클러스터링 솔루션에 필요합니다. 아이디어는 우리가 두 가지 일을 할 수 있기 때문에 API를 통해 고객에게 이것을 엔티티에 노출시키고 싶지 않다는 것입니다.
    1. 작업에 필요한 더 많은 정보를 제공하고 해커에게 시스템에 대한 자세한 정보를 제공하십시오.
    2. 악몽을 지원하는 것은 클라이언트 하드 코드 가이 ID에 대한 하드 코드를 어떤 방식으로, PK 클라이언트를 변경 해야하는 경우에 영향을 미친다는 것입니다.

솔루션은 고유 한 이름을 가진 역할 객체와 같은 항목의 4 가지 키를 노출시키는 것입니다. 영역은 고유성을 함께 보증하지만 이러한 값 중 하나를 업데이트하는 것은 과제이므로 기존 값을 지정하거나 두 가지를 통과해야합니다. 원래와 새 객체의 객체는 업데이트 할 객체를 찾을 수 있습니다. 지저분하고,

또 다른 접근법은 대체 키를 만들고 클라이언트에 노출되도록하는 것이며 원하는 모든 것을 사용할 수 있으며 PK에 묶이지 않기 때문에 상관하지 않습니다.

요즘 모든 사람들은 문제가없는 엔티티의 ID로 PK를 사용하는 것 같습니다. 구식 프로그래밍 일에서 Veterns 팀을 설득하는 방법을 잘 모르겠습니다.

또 다른 문제는 부분 업데이트를 지원하는 방법입니다. 문제는 10 개의 속성, 4 개의 컬렉션 등이있는 엔티티가 있다는 것입니다 ... 이름+realm 콤보와 함께 전체 객체 변경 1 필드를 끌어내는 대신 업데이트 할 속성을 지정합니다. 업데이트를 위해. 게으른로드 컬렉션을로드하지만 부분 업데이트가 의미가 있는지 확실하지 않습니다.

생각?

감사해요!

도움이 되었습니까?

해결책

보안 프레임 워크에 대한 나의 접근 방식은 다음과 같습니다.

  • 데이터베이스에 내부 ID (ID 열, 시퀀스, 데이터베이스 지원에 관계없이 무엇이든 제공하십시오. 결국, 당신은 그것을 필요로하고 레트로 피트는 많은 일입니다.

  • ID를 사용자에게 건네 주어야하는 경우 임의의 숫자를 생성하고 이미 사용되지 않은지 확인하고 내부 ID에 연결 한 다음 사용자에게 건네주십시오. 절대 내부 ID를 나눠주고 절대 크래커로 추측 할 수있는 ID를 사용하십시오.

부분 업데이트는 속성이 많은 객체가 많은 경우에만 이해하기 시작합니다. 10 가지 속성의 경우 "조기 최적화."

다른 팁

클라이언트에 ID를 노출 해야하는 경우 Natural Key를 사용하십시오. 구현하기는 쉽지 않지만 이것이 올바른 방법입니다.

이러한 부분 업데이트에 대한 자세한 내용을 거의 제공 할 수 있습니까? 나는 그것을 얻지 못했다. :/

모든 테이블의 안내를 주요 키로 사용하는 것은 문제를 요구하는 것과 같은 소리입니다. 나는 당신을 정말로 오해하지 않는 한이 접근법이 어디에서나 찍은 것을 보지 못했습니다. 모든 사용자에게 UID를 발행하고 UID와 함께 일하는 것이 어떻습니까?

이 접근법은 모든 회사에서 가장 일반적입니다. UID는 아닙니다 pii 따라서 보안 관점에서와 마찬가지로 합법적으로 괜찮습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top