2014-02-24 6 views
-1

사용자 인증이 필요한 PHP/MYSQL을 사용하여 서버 측 코드를 개발 중입니다.업로드 된 이미지를 안전하게 저장하십시오.

사용자가 새 계정을 만들면 해시를 데이터베이스에 저장하기위한 모든 표준 해시 + 소금 작업을 수행하지만 업로드해야하는 스캔 된 ID로 수행 할 작업을 알지 못합니다.

계정을 만들면 개인 데이터 (이름, 성, 주소 등)의 일부가 물리적 ID 카드 (운전 면허증, ...)의 스캔 사본입니다.) 그리고 나는이 민감한 이미지를 어떻게 적절하게 처리해야하는지에 관심을 기울였다.

여러분이 올바른 방향으로 나를 가리킬 수 있거나 몇 가지 힌트를 주시면 감사하겠습니다.

감사합니다.

편집 :

와우는, 너희들은 굉장하고 빠르다!

ID의 저장은 의무적인데, 나는 어떻게 든 workarround 수 있지만 좋겠어.

내가 제안한대로 소프트웨어에 액세스 할 수있게 해주고 삭제하거나 CD에 저장하려고하거나 제안한대로 저장하려고합니다.

일부 암호로 이진 데이터를 뒤섞어서 생각하고 있지만 좋은 생각인지 확실하지 않습니다.

+0

파일을 올바르게 처리하면 아무런 위험이 없습니다. 나는 단순히 웹 루트 외부에 그들을 저장할 것이다. 보안을 데이터베이스에 저장하기 때문에 자동으로 보안을 얻지는 못합니다. –

+0

은 항상 저장된 파일의 이름을 md5 문자열 (또는 무언가)로 바꿉니다. 따라서 더 이상 업로드 된 파일 이름에 액세스 할 수 없습니다. 원래 이름을 암호화 된 이름으로 dbase에 저장하십시오. 반드시 imagecreate()를 통해 저글링하십시오. 그리고 마임 유형을 확인하십시오 (총알 증명이 아닙니다!) –

+0

@RonnieJespersen : "* 위험 없음 *"같은 것은 없습니다. 보안은 침입자가 성취 할 수있는 목표를 더 어렵게 만듭니다. 누가 달성 할 수있는 최선의 방법은 목표를 너무 어렵게 만드는 것입니다. 목표 달성을 어렵게 만드는 것이 무엇인지에 대한 공격자가 유용한 것을 달성하기 전에 자원 (시간, 돈, 컴퓨팅 파워 등)을 고갈시키는 것입니다. 이를 성취하기 위해서는 공격 대상자를 파악하고 자원을 계량화하고 "유용한 성취"로 간주 될 대상을 정의해야합니다. – eggyal

답변

1

TL; DR 정말 위험합니다. 당신이해야하지 않는 한 그것을하지 마십시오.

내가 너라면, 나는 위협 분석으로 시작할 것입니다. ID 카드 이미지를 시스템에 유지하는 데 발생할 수있는 보안 위험 요소는 무엇입니까? 무엇이 잘못 될 수 있습니까? 너는 무엇을 방어하고 있니?

  1. Badguys은 시스템에 침투 한꺼번에 도용 및 신원 도둑에게 판매 할 수도 있습니다.

  2. 1과 동일하지만 테이블 정보를 도용하여 이미지와 관련시킵니다.

  3. 일부 사용자는 하나 또는 몇 개의 이미지를보기 위해 시스템의 기능을 남용하거나 남용하고 결과적으로 정보를 오용 할 수 있습니다.

  4. 누군가가 도난 또는 위조 된 신분증을 제공하여 사기를 저지를 수 있습니다.

  5. 결제를 처리하는 경우 시스템에서 PCI 감사가 실패하고 지불 처리 액세스가 거부 될 수 있습니다.

매우 민감한 이미지를 보호하기 위해 시스템을 구성 할 때 방어해야 할 위협을 파악해야합니다. 또한이 정보를 볼 수있는 사용자, 인증 된 사용자를 인증하는 방법 및이 정보를 보유하는 기간을 파악해야합니다.

이상 적으로이 정보를 수집하지 않을 것입니다.

수집하는 경우 첫날부터 https : //를 사용하십시오.

수집해야 할 경우 가장 좋은 대안은 신속하게 조사한 다음 안전하게 지우는 것입니다. 따라서 도둑에 대한 위대한 허니팟을 구축하지 마십시오.

당신이 그것을 지켜야 만한다면, 가장 좋은 방법은 즉시 에어 드라이빙 된 저장 매체로 옮기고 온라인 시스템에서 지우는 것입니다. 며칠에 한 번씩 CD-ROM을 구워 파일 캐비닛에 보관할 수 있습니다 (예 : 파일 캐비닛).

이 정보를 온라인에 보관해야하는 경우 웹 루트가 아닌 다른 파일 시스템에 저장하는 웹 프로그램을 작성하고 싶습니다. 누군가가 이미지를보고 싶어 할 때, 당신은 확실히 단순히

https://honeypot.com/imgs/idcards/user2573551.png 

같은 이미지의 URL을 제시하고 디렉토리에서 파일을 제공하지 않습니다. 대신 명시적인 사용자 ID 매개 변수로 사용자 ID를 사용하지 않는 약간의 소프트웨어가 필요합니다. 즉, 당신은 또한 크로스 사이트 또는 저장 - URL 공격의 다양한 종류를 억제 "논스"라는 보안 토큰에 읽을 할 수 있습니다

https://honeypot.com/myId.php 

같은 URL이 야기 될 수있다. WordPress는 당신이 배울 수있는 좋은 nonce 시스템을 가지고 있습니다.

주의하십시오.

+1

airgapped 스토리지가 아니라, 클라이언트 측의 데이터를 비대칭 적으로 암호화하여 서버에 /에 암호문 만 전송/저장할 수있다. 필요한 경우 비밀 키/개인 키를 사용하여 오프라인으로 데이터에 액세스 할 수 있습니다. – eggyal