2013-01-09 2 views
1

우리 응용 프로그램은 사용자가 추적하지 않으려는 일부 정보를 데이터베이스의 다른 레코드에 저장합니다. 예를 들어 (바보 같지만) 사용자는 익명으로 자신이 좋아하는 색이 무엇인지 알려 주어야합니다. 각 색상 레코드를 데이터베이스에 새로운 행으로 저장하고 트랜잭션 정보를 추적하려고합니다.익명 정보를 데이터베이스에 저장합니다.

색과 트랜잭션을 별도의 테이블에 저장 한 경우 서버가 해킹 된 경우 행의 순차적 ID를 사용하여 행을 연관시킬 수 있습니다 (색상은 항상 트랜잭션을 갖기 때문에). 행의 생성 시간. 따라서이 문제를 해결하기 위해 색상 표에 대한 순차적 ID 열 또는 색상 표에 대한 업데이트/수정 시간이 없습니다.

이제 색상을 트랜잭션과 연결하는 유일한 방법은 데이터베이스 정보를 실제로 저장하는 데 사용되는 파일을 보는 것입니다. 이것이 어렵고 지루할 수도 있지만 색 테이블 정보가 파일에 순차적으로 저장되기 때문에 여전히 가능하다고 생각합니다.

데이터베이스 정보를 순서가 잘못된 문제로 저장하면 어떻게 될까요? 더 일반적인 질문은 정보를 익명으로 안전하게 저장하는 방법입니다. (하지만 너무 광범위합니다)

물론 답은 데이터베이스가 해킹당하는 것을 허용하지 않지만 좋은 것은 아닙니다.

+0

데이터가 순차적으로 저장된다는 것을 정확하게 가정합니까? – Joe

+0

음, 다른 사람이 할 수 없다면 두 테이블을 어떻게 연관 지으시겠습니까? – Madbreaks

+0

@Joe - 잘 모르겠지만 기회를 놓치고 싶지는 않습니다. 우리는 포스트그레스를 사용하고 있지만 무작위로 저장하는 알려진 방법이 있다면 사용하는 것도 환영합니다. – zsalzbank

답변

2

수백만 개의 행을 미리 생성하고 무작위로 채울 수 있습니다.

+0

아마도 행의 수에 의해 수정 된 현재 시간의 SHA1 + salt를 실행하여 거기에서 순차적으로 검색하여 충돌을 처리합니다 다음 개통. – Phrogz

+0

수정하십시오. 이 스키마는 해시 맵이 항목을 삽입하는 것과 유사합니다. – mcassano

+0

은 천재입니다. – zsalzbank

0

비영리 데이터베이스를 활용하는 것을 고려하십시오. NoSQL.

0

데이터를 분석해야하는 경우 데이터를 이해해야하며 공격자가이를 수행 할 수도 있습니다. 영리한 해결책이 무엇이든 상관없이 여전히 상충이 가능할 것입니다. 관계형 DB 트랜잭션 로그, 언제 어디서 어디서 삽입되었는지, 삭제 된 업데이트 된 내용을 보여줍니다. 따라서 동일한 db를 사용하려는 경우 데이터의 100 % 디커플링을 제공 할 수 없습니다. 일부 HSM을 사용하여 데이터를 암호화 할 수 있으므로 도난당한 데이터를 공격자가 쓸모 없게 만들 수 있습니다. 또는 임의의 지연 또는 일부 일괄 처리를 사용하여 다른 머신에 데이터를 저장할 수 있습니다 (하나 대신 20 개의 레코드를 기다리십시오) ...하지만 까다로울 수 있으며 실패 할 수 있습니다.

+0

필자는 이해되는 데이터가 아니라 데이터베이스의 다른 레코드와 관련이 있다고 걱정하지 않습니다. 이 연관성이 필요하지 않으므로이 문제가 발생할 수있는 모든 방법을 제거하려고 노력 중입니다. DB 로그는 필터링되거나 꺼질 수 있으므로 걱정하지 않아도됩니다. – zsalzbank

관련 문제