2012-06-12 4 views
2

FTP를 통해 파일을 편집 할 수있는 스크립트 (PHP + MySQL)를 만들고 있습니다. 사용자가 로그인하여 서버에 연결할 때 FTP 암호를 외우려고하므로 서버에 투명하게 다시 연결하기 위해 다시 사용할 수 있습니다 (예 : 파일 찾아보기). 보안상의 이유로 데이터베이스에 원시 암호를 저장하고 싶지 않습니다. 데이터베이스의 연결 ID를 참조하여 쿠키에 비밀번호 저장에 대해 생각했습니다. 그러나 이것 역시 충분히 안전하지는 않습니다. 임시 비밀번호 항목을 데이터베이스에 저장하는 방법은 어떻습니까?안전한 방법으로 웹 응용 프로그램에서 ftp 암호를 처리하는 방법

어떤 아이디어가이 문제에 접근합니까?

+0

FTP가 붙어 있습니까? SFTP와 같이 훨씬 더 멋진 것을 사용할 수있는 방법은 없습니다. – sarnold

+0

PHP 세션에서 저장해 보셨습니까? – Ami

+0

@sarnold 아니요, 저는 FTP가 붙어 있지 않습니다. 방금 예를 들어 설명했습니다. –

답변

2

시도해 볼 수 있습니다 asymmetric key system.

  1. 는 사용자
  2. 를 사용하여 암호를 암호화하여 데이터베이스에 사용자가 작업을 수행
  3. 때마다 그것을 저장하기 위해 공개 키 개인 키를 부여 공공/민간 쌍을 생성 그들은 당신이 그들에게
  4. 을 준 개인 키 당신은 암호를 해독 작업을 수행 한 후 메모리에 개인 키를 파괴하는 개인 키를 사용하여 공급

서버에서 암호화/해독하는 것이 더 안전 할뿐입니다. 100 % 완벽하지는 않습니다 (서버를 루트하면 개인 키를 스니핑 할 수 있습니다). 그러나 일방적 인 공격을 막는 좋은 방법입니다. 적어도 개인 키가 손실 될 것이므로 손상된 경우 이전 암호는 취약하지 않습니다.

편집 : sarnold에서 지적한 바와 같이 symmetric key system으로이 작업을 수행 할 수도 있습니다.

+0

대칭 암호화로 동일한 작업을 수행 할 수 있습니다. – sarnold

+0

댓글을 이미 삭제했습니다. 죄송합니다. 모든 사용자에게 동일한 대칭 키를 사용한다는 의미였습니다. 내 아이디어는 각 사용자가 다른 개인 키를 얻을 것이라고했습니다. – Jay

+0

그래서 서버에 성공적으로 연결 한 후에는 사용자가 디렉토리를 변경하려고 할 때마다 개인 키를 입력해야합니까? –

관련 문제