2017-12-13 5 views
1

저는 제 자신의 게임 패널을 만들었으며 사용자는 리눅스 서버의 사용자와 비밀번호를 데이터베이스에 도입해야했습니다. 이렇게하면 게임 패널이 서버를 관리 할 수 ​​있습니다. 내 문제는 이제 다음과 같습니다.Mysql 데이터베이스에 데이터를 암호화 한 후 PHP로 읽습니다.

사용자가 자신의 리눅스 사용자와 암호를 입력하면 데이터베이스에 일반 텍스트로 저장되고 PHP 스크립트에서 검색됩니다. 그러나 데이터베이스가 침입 당하면 해커가 서버를 침범 할 수 있으며 모든 일을 피해야합니다.

지금은 password_hash($password, PASSWORD_BCRYPT)password_verify을 구현 한 등록 및 로그인 시스템을 사용하고 있습니다. 나는 문제에이 방법을 사용하려했지만 저장된 암호와 일치시키기 위해 사용자 입력이 필요했습니다.

가장 필요한 것은 사용자와 암호를 데이터베이스에 저장하는 것입니다. 해커가 내 데이터베이스에 모든 데이터를 위반하면 해당 사용자에게 쓸모가 없습니다.

저는 Javascript와 BASH로 작업하는 초보 PHP 웹 개발자입니다. 나는 아직도이 들판에서 초보자이다. 그래서 당신이 내 초보자 친화적 인 답변을 제공 할 수 있다면, 나는 당신에게 감사 할 것입니다. (내 첫 번째 질문은 몇 시간 내에 답변을 했으므로 긍정적 인 답변을 얻을 수 있습니다.)

+0

고려 : 서버에 사용자 이름과 암호를 해독 할 수있는 기능이 있고 해커가 서버를 제어 할 수 있다면 해커가 사용자 이름과 암호를 암호 해독 할 수 있음을 논리적으로 따라야합니다. 당신이 설명하는 것은 이론적으로 해결할 수 없습니다. 서버에서 키 자료를 멀리 옮겨야합니다. –

+0

그리고 내 문제에 대한 가장 좋은 대안은 무엇일까요? 이 민감한 데이터를 어떻게, 어디에서 저장해야하며 안전하게 검색해야합니까? 나는 꼭 BULLETPROOF 솔루션이 필요하지 않습니다. 나는 귀하의 웹 사이트를 보호하기 위해 노력하는 것이 아무리 어려울지라도 항상 다른 규모의 위반이있을 것이라는 것을 알고 있습니다. 내가 필요한 것은이 주제에 대한 정보가 부족하기 때문에 좋은 해결책입니다. 나는 무지하게 보일지도 모르지만 Google에서 주제를 검색했지만 모든 소스를 신뢰할 수 없으며 경험 없이는 끔찍한 실수를 저지를 수 있음을 안다. – GMBeniamin

답변

1

요즘은 데이터 암호화에 대한 정보를 얻고 있습니다. 특히 "개인 정보 보호 디자인" 법적으로 GDPR (The EU General Data Protection Regulation)에 의해 요구되는 개념. 특히,

  1. PHP에서 OpenSSL이 기능을 사용하여 MySQL의 기능 AES_ENCRYPT/AES_DECRYPT
  2. 사용 :

    당신이 당신의 DB에 저장하는 것을 준비, 데이터를 암호화 할 수있는 두 가지 방법이 있습니다 PHP를 사용와 MySQL openssl_encryptopenssl_decrypt (그 중에서도 AES-256-CBC 암호화를 제공합니다). 이를 사용하는 방법을 알기 위해서는 함수 문서의 예제를 직접 보거나 StackExchange의 this answer을 확인하십시오. 당신은 기회가 있다면

난 당신을 제안 할 무엇, 당신은 쉽게에게 필요한 것은 AES-256-CBC와 OpenSSL을을 사용하여 데이터를 암호화 제공 Laravel과 encrypter을 사용하는 것입니다.