2012-02-17 4 views
3

PHP 응용 프로그램에서 Amazon 웹 서비스를 사용하고 있습니다. php 웹 서비스에 링크 된 config.php 파일에 비밀 aws 액세스 토큰을 저장하는 것이 안전한가요?비밀 키를 PHP 파일에 저장합니다.

콘텐츠를보기 위해 파일을 다운로드 할 수 없지만 패킷 스니퍼 등을 사용할 수 없으며 키와 암호문을 읽을 수 없습니까?

아마존은 aws creds를 직접 사용하는 대신 토큰 자동 판매기를 사용하여 임시 자격 증명을 만드는 것을 권장하지만, 우리는이를 구현하는 것을 건너 뛰고 싶습니다.

답변

1

config.php 파일이 실행될 때 토큰을 출력하지 않는 한 안전해야합니다. 추가 예방 조치를 취하기 위해 config.php 파일을 웹 사이트의 루트 디렉토리 아래에 두어 사용자가 해당 파일을 실행하려고 시도조차하지 못하게 할 수 있습니다.

PHP가 서버에서 실행되고 토큰을 포함하는 클라이언트로 출력이 보내지지 않으면 해당 파일의 내용이 클라이언트에 전송되지 않습니다. 따라서 내용이 서버를 떠나지 않고 파일을 읽는 방법이 없으며 출력 만 스크립트를 실행합니다.

1

아니요 클라이언트에 콘텐츠를 전달하기 전에 스크립트가 서버 측에서만 실행되므로 불가능합니다.

누군가가 서버 자체를 해킹하여 파일 시스템에서 파일을 훔친 경우에만 위반할 수 있습니다.

+0

대부분의 성공적인 공격이 서버에 있습니다 : 그것은 등 Github에서 이에 대한

더 읽기에 커밋, 웹 서버의 잘못에 의해 취약한 데이터를 노출하는 것은 매우 쉽습니다. – zaph

3

"PHP 파일 다운로드"측면에서 Apache는 이러한 일이 발생하지 않도록 방지하지만 문서 루트 외부에 PHP 파일을 저장해야하므로 처음부터 웹에 액세스 할 수 없습니다.) 필요한 경우 서버 측에서).

"패킷 스니핑"과 관련하여 보안 연결을 사용하면 이러한 문제를 방지 할 수 있습니다. HTTPS를 사용하고 있는지 확인하십시오.

-1

위의 권장 사항 (웹 사이트의 공용 디렉토리 외부에 config를 저장하는 것) 이외에 어디에서나 일반 텍스트로 저장하지 말고 암호/암호를 암호화하는 좋은 방법입니다 (특히 비 php 파일을 사용하여 저장하는 경우) 암호는 .env 또는 *.yml 등). https://blog.fortrabbit.com/how-to-keep-a-secret

+0

안전하게 암호화 키를 저장 하시겠습니까? – zaph

+0

@zaph 암호화 키가 동일한 코드베이스 (분명히 동일한 설정 파일에 있지 않음)에 저장되어 있으므로 암호화 키를 절대적으로 안전하게 저장할 수 없습니다. 이 기법은 실제 암호화보다는 난독 화이지만, 내가 말했듯이, 서버의 설정이 잘못되었을 때 비밀이 쉽게 노출되는 것을 막을 수있다. – elena

관련 문제